AlexNijjar
commited on
Commit
β’
114b3d6
1
Parent(s):
2c9c38b
Expand area and check if winner is present
Browse files
app.py
CHANGED
@@ -31,21 +31,11 @@ HOTKEYS_TO_KNOWN_VALIDATORS: dict[str, str] = {
|
|
31 |
|
32 |
WANDB_RUN_PATH = os.environ["WANDB_RUN_PATH"]
|
33 |
|
34 |
-
REFRESH_RATE = 60 * 5
|
|
|
35 |
ETA_WARNING_THRESHOLD = 43200 # 12 hours
|
36 |
|
37 |
|
38 |
-
@dataclass
|
39 |
-
class State:
|
40 |
-
hotkey: str
|
41 |
-
version: str
|
42 |
-
submissions: int
|
43 |
-
benchmarks: int
|
44 |
-
invalid: int
|
45 |
-
average_benchmark_time: float
|
46 |
-
|
47 |
-
|
48 |
-
# enum
|
49 |
class Status(Enum):
|
50 |
IN_PROGRESS = ("In Progress", "orange")
|
51 |
DONE = ("Done", "springgreen")
|
@@ -61,8 +51,19 @@ class Status(Enum):
|
|
61 |
return self.value[1]
|
62 |
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
wandb_api = wandb.Api()
|
65 |
-
demo = gr.Blocks(css=".typewriter {font-family: 'JMH Typewriter', sans-serif;}")
|
66 |
data: dict[int, State] = {}
|
67 |
|
68 |
|
@@ -101,6 +102,7 @@ def fetch_wandb_data():
|
|
101 |
submissions: set[int] = set()
|
102 |
benchmarks: set[int] = set()
|
103 |
invalid: list[int] = []
|
|
|
104 |
average_benchmark_time = 0.0
|
105 |
|
106 |
for key, value in run.summary.items():
|
@@ -115,11 +117,22 @@ def fetch_wandb_data():
|
|
115 |
submissions.add(int(submission_key))
|
116 |
|
117 |
elif key == "benchmarks":
|
|
|
|
|
|
|
118 |
for benchmark_key, benchmark_value in value.items():
|
119 |
benchmarks.add(int(benchmark_key))
|
120 |
|
121 |
source_validator_uid = run.config["uid"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
data[source_validator_uid] = State(
|
|
|
123 |
hotkey=run.config["hotkey"],
|
124 |
version=run.tags[1][8:],
|
125 |
submissions=len(submissions),
|
@@ -151,30 +164,24 @@ def refresh():
|
|
151 |
latest_version = get_latest_version()
|
152 |
|
153 |
for source_validator_uid, state in data.items():
|
154 |
-
status = Status.IN_PROGRESS
|
155 |
-
if state.benchmarks + state.invalid == state.submissions:
|
156 |
-
status = Status.DONE
|
157 |
-
elif not state.submissions or (not state.average_benchmark_time and state.benchmarks):
|
158 |
-
status = Status.BROKEN
|
159 |
-
|
160 |
eta = int(state.average_benchmark_time * (state.submissions - (state.benchmarks + state.invalid)))
|
161 |
time_left = timedelta(seconds=eta)
|
162 |
eta_date = now + time_left
|
163 |
-
eta_time = eta_date.strftime("%Y-%m-%d %I:%M:%S %p") if eta > 0 else status.get_alt_time_text()
|
164 |
|
165 |
-
average_time_text = f"{timedelta(seconds=int(state.average_benchmark_time))}" if state.average_benchmark_time else status.get_alt_time_text(),
|
166 |
|
167 |
elements.append((
|
168 |
source_validator_uid,
|
169 |
HOTKEYS_TO_KNOWN_VALIDATORS.get(state.hotkey, state.hotkey),
|
170 |
f"<span style='color: {'springgreen' if state.version == latest_version else 'red'}'>{state.version}</span>",
|
171 |
-
f"<span style='color: {status.color()}'>{status.name()}</span>",
|
172 |
state.benchmarks + state.invalid,
|
173 |
state.submissions,
|
174 |
state.invalid,
|
175 |
-
f"<span style='color: {'orange' if state.average_benchmark_time >
|
176 |
f"<span style='color: {'orange' if eta > ETA_WARNING_THRESHOLD else 'springgreen'}'>{eta_time}</span>",
|
177 |
-
f"<span style='color: {'orange' if eta > ETA_WARNING_THRESHOLD else 'springgreen'}'>{time_left if eta > 0 else status.get_alt_time_text()}</span>"
|
178 |
))
|
179 |
|
180 |
gr.components.Dataframe(
|
|
|
31 |
|
32 |
WANDB_RUN_PATH = os.environ["WANDB_RUN_PATH"]
|
33 |
|
34 |
+
REFRESH_RATE = 60 * 5 # 5 minutes
|
35 |
+
AVERAGE_BENCHMARK_TIME_WARNING_THRESHOLD = 600 # 10 minutes
|
36 |
ETA_WARNING_THRESHOLD = 43200 # 12 hours
|
37 |
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
class Status(Enum):
|
40 |
IN_PROGRESS = ("In Progress", "orange")
|
41 |
DONE = ("Done", "springgreen")
|
|
|
51 |
return self.value[1]
|
52 |
|
53 |
|
54 |
+
@dataclass
|
55 |
+
class State:
|
56 |
+
status: Status
|
57 |
+
hotkey: str
|
58 |
+
version: str
|
59 |
+
submissions: int
|
60 |
+
benchmarks: int
|
61 |
+
invalid: int
|
62 |
+
average_benchmark_time: float
|
63 |
+
|
64 |
+
|
65 |
wandb_api = wandb.Api()
|
66 |
+
demo = gr.Blocks(css=".typewriter {font-family: 'JMH Typewriter', sans-serif;}", fill_height=True, fill_width=True)
|
67 |
data: dict[int, State] = {}
|
68 |
|
69 |
|
|
|
102 |
submissions: set[int] = set()
|
103 |
benchmarks: set[int] = set()
|
104 |
invalid: list[int] = []
|
105 |
+
completed = False
|
106 |
average_benchmark_time = 0.0
|
107 |
|
108 |
for key, value in run.summary.items():
|
|
|
117 |
submissions.add(int(submission_key))
|
118 |
|
119 |
elif key == "benchmarks":
|
120 |
+
if any("winner" in benchmark for benchmark in dict(value).values()):
|
121 |
+
completed = True
|
122 |
+
|
123 |
for benchmark_key, benchmark_value in value.items():
|
124 |
benchmarks.add(int(benchmark_key))
|
125 |
|
126 |
source_validator_uid = run.config["uid"]
|
127 |
+
|
128 |
+
status = Status.IN_PROGRESS
|
129 |
+
if completed:
|
130 |
+
status = Status.DONE
|
131 |
+
elif not submissions or (not average_benchmark_time and benchmarks):
|
132 |
+
status = Status.BROKEN
|
133 |
+
|
134 |
data[source_validator_uid] = State(
|
135 |
+
status=status,
|
136 |
hotkey=run.config["hotkey"],
|
137 |
version=run.tags[1][8:],
|
138 |
submissions=len(submissions),
|
|
|
164 |
latest_version = get_latest_version()
|
165 |
|
166 |
for source_validator_uid, state in data.items():
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
eta = int(state.average_benchmark_time * (state.submissions - (state.benchmarks + state.invalid)))
|
168 |
time_left = timedelta(seconds=eta)
|
169 |
eta_date = now + time_left
|
170 |
+
eta_time = eta_date.strftime("%Y-%m-%d %I:%M:%S %p") if eta > 0 and state.status == Status.IN_PROGRESS else state.status.get_alt_time_text()
|
171 |
|
172 |
+
average_time_text = f"{timedelta(seconds=int(state.average_benchmark_time))}" if state.average_benchmark_time else state.status.get_alt_time_text(),
|
173 |
|
174 |
elements.append((
|
175 |
source_validator_uid,
|
176 |
HOTKEYS_TO_KNOWN_VALIDATORS.get(state.hotkey, state.hotkey),
|
177 |
f"<span style='color: {'springgreen' if state.version == latest_version else 'red'}'>{state.version}</span>",
|
178 |
+
f"<span style='color: {state.status.color()}'>{state.status.name()}</span>",
|
179 |
state.benchmarks + state.invalid,
|
180 |
state.submissions,
|
181 |
state.invalid,
|
182 |
+
f"<span style='color: {'orange' if state.average_benchmark_time > AVERAGE_BENCHMARK_TIME_WARNING_THRESHOLD else 'springgreen'}'>{average_time_text[0]}</span>",
|
183 |
f"<span style='color: {'orange' if eta > ETA_WARNING_THRESHOLD else 'springgreen'}'>{eta_time}</span>",
|
184 |
+
f"<span style='color: {'orange' if eta > ETA_WARNING_THRESHOLD else 'springgreen'}'>{time_left if eta > 0 and state.status == Status.IN_PROGRESS else state.status.get_alt_time_text()}</span>"
|
185 |
))
|
186 |
|
187 |
gr.components.Dataframe(
|