Spaces:
Running
Running
File size: 2,521 Bytes
6c858ba 5bbddad 94d9564 6c858ba b343c97 6c858ba 5bbddad 546fcbe 5bbddad 6c858ba b190717 6c858ba b343c97 6c858ba 2e5ce99 6c858ba 94d9564 6c858ba 8cdce17 c638797 6c858ba |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
from datetime import timedelta
import gradio as gr
import pandas as pd
from packaging import version
from chain_data import get_neurons
from wandb_data import get_current_runs, Run
AVERAGE_BENCHMARKING_TIME_WARNING_THRESHOLD = 180 # 3 minutes
ETA_WARNING_THRESHOLD = 43200 # 12 hours
UPDATED_WARNING_THRESHOLD = 1000
VTRUST_WARNING_THRESHOLD = 0.75
def get_latest_version(runs: list[Run]) -> str:
latest_version = version.parse("0.0.0")
for run in runs:
current_version = version.parse(run.version)
if current_version > latest_version:
latest_version = current_version
return str(latest_version)
def colorize(val, color: str) -> str:
return f"<span style='color: {color}'>{val}</span>"
def create_validator_states() -> gr.Dataframe:
data: list[list] = []
runs = sorted(get_current_runs(), key=lambda run: run.uid)
latest_version = get_latest_version(runs)
for run in runs:
if not run.hotkey in get_neurons():
continue
vtrust = get_neurons()[run.hotkey].validator_trust
updated = get_neurons()[run.hotkey].updated
data.append([
run.uid,
run.name,
colorize(run.version, "springgreen" if run.version == latest_version else "red"),
colorize(run.status.name(), run.status.color()),
f"{min(run.total_submissions, len(run.submissions) + len(run.invalid_submissions))}/{run.total_submissions}",
len(run.invalid_submissions),
colorize(f"{timedelta(seconds=int(run.average_benchmarking_time))}", "orange" if run.average_benchmarking_time > AVERAGE_BENCHMARKING_TIME_WARNING_THRESHOLD else "springgreen" if run.average_benchmarking_time > 0 else "gray"),
colorize(f"{timedelta(seconds=run.eta)}", "orange" if run.eta > ETA_WARNING_THRESHOLD else "springgreen" if run.eta > 0 else "gray"),
run.step,
colorize(f"{vtrust:.4f}", "springgreen" if vtrust > VTRUST_WARNING_THRESHOLD else "red"),
colorize(updated, "springgreen" if updated < UPDATED_WARNING_THRESHOLD else "red"),
])
return gr.Dataframe(
pd.DataFrame(data, columns=["UID", "Name", "Version", "Status", "Tested", "Invalid", "Avg. Benchmark Time", "ETA", "Step", "VTrust", "Updated"]),
datatype=["number", "markdown", "markdown", "markdown", "number", "number", "markdown", "markdown", "number", "markdown", "markdown"],
interactive=False,
max_height=800,
row_count=1,
)
|