AlexNijjar commited on
Commit
8c8c629
β€’
1 Parent(s): 98b751c
Files changed (1) hide show
  1. app.py +28 -12
app.py CHANGED
@@ -45,13 +45,19 @@ class State:
45
 
46
  # enum
47
  class Status(Enum):
48
- IN_PROGRESS = "In Progress"
49
- DONE = "Done"
50
- BROKEN = "Broken"
51
 
52
- def get_alt_time_text(self):
53
  return "∞" if self == Status.BROKEN else "N/A"
54
 
 
 
 
 
 
 
55
 
56
  wandb_api = wandb.Api()
57
  demo = gr.Blocks(css=".typewriter {font-family: 'JMH Typewriter', sans-serif;}")
@@ -123,6 +129,15 @@ def fetch_wandb_data():
123
  data = dict(sorted(data.items()))
124
 
125
 
 
 
 
 
 
 
 
 
 
126
  def refresh():
127
  fetch_wandb_data()
128
  demo.clear()
@@ -131,6 +146,7 @@ def refresh():
131
  with demo:
132
  with gr.Accordion(f"Validator States (Last updated: {now.strftime('%Y-%m-%d %I:%M:%S %p')} EST)"):
133
  elements: list[tuple] = []
 
134
 
135
  for source_validator_uid, state in data.items():
136
  status = Status.IN_PROGRESS
@@ -144,26 +160,26 @@ def refresh():
144
  eta_date = now + time_left
145
  eta_time = eta_date.strftime("%Y-%m-%d %I:%M:%S %p") if eta > 0 else status.get_alt_time_text()
146
 
 
 
147
  elements.append((
148
  source_validator_uid,
149
  HOTKEYS_TO_KNOWN_VALIDATORS.get(state.hotkey, state.hotkey),
150
- state.version,
151
- status.value,
152
  state.benchmarks + state.invalid,
153
  state.submissions,
154
  state.invalid,
155
- f"{timedelta(seconds=int(state.average_benchmark_time))}" if state.average_benchmark_time else status.get_alt_time_text(),
156
- eta_time,
157
- time_left if eta > 0 else status.get_alt_time_text(),
158
  ))
159
 
160
  gr.components.Dataframe(
161
  elements,
162
  headers=["UID", "Name", "Version", "Status", "Tested", "Submissions", "Invalid", "Avg. Benchmark Time", "ETA (Eastern Time)", "ETA Remaining"],
163
- datatype=["number", "markdown", "markdown", "markdown", "number", "number", "number", "number", "markdown", "markdown"],
164
  elem_id="state-table",
165
- interactive=False,
166
- visible=True,
167
  )
168
 
169
 
 
45
 
46
  # enum
47
  class Status(Enum):
48
+ IN_PROGRESS = ("In Progress", "orange")
49
+ DONE = ("Done", "springgreen")
50
+ BROKEN = ("Broken", "red")
51
 
52
+ def get_alt_time_text(self) -> str:
53
  return "∞" if self == Status.BROKEN else "N/A"
54
 
55
+ def name(self):
56
+ return self.value[0]
57
+
58
+ def color(self):
59
+ return self.value[1]
60
+
61
 
62
  wandb_api = wandb.Api()
63
  demo = gr.Blocks(css=".typewriter {font-family: 'JMH Typewriter', sans-serif;}")
 
129
  data = dict(sorted(data.items()))
130
 
131
 
132
+ def get_latest_version() -> str:
133
+ latest_version = "0.0.0"
134
+ for source_validator_uid, state in data.items():
135
+ version = state.version
136
+ if version > latest_version:
137
+ latest_version = version
138
+ return latest_version
139
+
140
+
141
  def refresh():
142
  fetch_wandb_data()
143
  demo.clear()
 
146
  with demo:
147
  with gr.Accordion(f"Validator States (Last updated: {now.strftime('%Y-%m-%d %I:%M:%S %p')} EST)"):
148
  elements: list[tuple] = []
149
+ latest_version = get_latest_version()
150
 
151
  for source_validator_uid, state in data.items():
152
  status = Status.IN_PROGRESS
 
160
  eta_date = now + time_left
161
  eta_time = eta_date.strftime("%Y-%m-%d %I:%M:%S %p") if eta > 0 else status.get_alt_time_text()
162
 
163
+ average_time_text = f"{timedelta(seconds=int(state.average_benchmark_time))}" if state.average_benchmark_time else status.get_alt_time_text(),
164
+
165
  elements.append((
166
  source_validator_uid,
167
  HOTKEYS_TO_KNOWN_VALIDATORS.get(state.hotkey, state.hotkey),
168
+ f"<span style='color: {'springgreen' if state.version == latest_version else 'red'}'>{state.version}</span>",
169
+ f"<span style='color: {status.color()}'>{status.name()}</span>",
170
  state.benchmarks + state.invalid,
171
  state.submissions,
172
  state.invalid,
173
+ f"<span style='color: {'orange' if state.average_benchmark_time > 600 else 'springgreen'}'>{average_time_text[0]}</span>",
174
+ f"<span style='color: {'orange' if eta > 43200 else 'springgreen'}'>{eta_time}</span>",
175
+ f"<span style='color: {'orange' if eta > 43200 else 'springgreen'}'>{time_left if eta > 0 else status.get_alt_time_text()}</span>"
176
  ))
177
 
178
  gr.components.Dataframe(
179
  elements,
180
  headers=["UID", "Name", "Version", "Status", "Tested", "Submissions", "Invalid", "Avg. Benchmark Time", "ETA (Eastern Time)", "ETA Remaining"],
181
+ datatype=["number", "markdown", "markdown", "markdown", "number", "number", "number", "markdown", "markdown", "markdown"],
182
  elem_id="state-table",
 
 
183
  )
184
 
185