sithuWiki commited on
Commit
d65ab29
·
verified ·
1 Parent(s): b54eee8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -1
app.py CHANGED
@@ -37,7 +37,7 @@ def init_app():
37
 
38
 
39
 
40
- def predict_roi(machine_price, machine_hashrate, machine_power, machine_efficiency, electricity_rate):
41
  """
42
  Real-time prediction:
43
  - Uses latest 90 days from blockchain.com
@@ -57,6 +57,28 @@ def predict_roi(machine_price, machine_hashrate, machine_power, machine_efficien
57
  machine_efficiency = float(machine_efficiency)
58
  electricity_rate = float(electricity_rate)
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  print("User machine specs:")
61
  print(f" Price: {miner_price}")
62
  print(f" Hashrate (TH/s): {miner_hashrate}")
@@ -115,6 +137,7 @@ def predict_roi(machine_price, machine_hashrate, machine_power, machine_efficien
115
  power=machine_power,
116
  efficiency=machine_efficiency,
117
  electricity_rate=electricity_rate,
 
118
  )
119
  print(f"✅ Sequence prepared: {sequence.shape}")
120
 
@@ -289,6 +312,11 @@ def create_interface():
289
  value=30.0,
290
  precision=2,
291
  )
 
 
 
 
 
292
  electricity_rate = gr.Number(
293
  label="Electricity rate (USD/kWh)",
294
  value=0.07, # neutral default
@@ -328,6 +356,7 @@ def create_interface():
328
  machine_power,
329
  machine_efficiency,
330
  electricity_rate,
 
331
  ],
332
  outputs=[miner_info, prediction, conf_plot, price_plot],
333
  )
 
37
 
38
 
39
 
40
+ def predict_roi(machine_price, machine_hashrate, machine_power, machine_efficiency, electricity_rate,machine_release_date):
41
  """
42
  Real-time prediction:
43
  - Uses latest 90 days from blockchain.com
 
57
  machine_efficiency = float(machine_efficiency)
58
  electricity_rate = float(electricity_rate)
59
 
60
+ # ----- parse release date -----
61
+ release_str = None
62
+ if machine_release_date is not None:
63
+ release_str = str(machine_release_date).strip()
64
+ if release_str:
65
+ try:
66
+ # validate format YYYY-MM-DD
67
+ datetime.strptime(release_str, "%Y-%m-%d")
68
+ except ValueError:
69
+ error_msg = """
70
+ <div style='background: #e74c3c; color: white; padding: 20px; border-radius: 10px;'>
71
+ <h3 style='margin: 0;'>❌ Invalid release date</h3>
72
+ <p style='margin: 10px 0 0 0;'>
73
+ Please enter the machine release date in the format <b>YYYY-MM-DD</b>,
74
+ for example <code>2020-05-01</code>.
75
+ </p>
76
+ </div>
77
+ """
78
+ return error_msg, error_msg, None, None
79
+ else:
80
+ release_str = None # empty box -> fall back to S19 Pro default
81
+
82
  print("User machine specs:")
83
  print(f" Price: {miner_price}")
84
  print(f" Hashrate (TH/s): {miner_hashrate}")
 
137
  power=machine_power,
138
  efficiency=machine_efficiency,
139
  electricity_rate=electricity_rate,
140
+ release_date=release_str
141
  )
142
  print(f"✅ Sequence prepared: {sequence.shape}")
143
 
 
312
  value=30.0,
313
  precision=2,
314
  )
315
+ machine_release_date = gr.Textbox(
316
+ label="Machine release date (YYYY-MM-DD)",
317
+ value="2020-05-01", # sensible default
318
+ placeholder="e.g. 2020-05-01",
319
+ )
320
  electricity_rate = gr.Number(
321
  label="Electricity rate (USD/kWh)",
322
  value=0.07, # neutral default
 
356
  machine_power,
357
  machine_efficiency,
358
  electricity_rate,
359
+ machine_release_date
360
  ],
361
  outputs=[miner_info, prediction, conf_plot, price_plot],
362
  )