openajaj / startup_progress.py
Jindrich3's picture
Super-squash branch 'main' using huggingface_hub
5eb8692
raw
history blame contribute delete
836 Bytes
"""
startup_progress.py — Shared state for startup benchmark progress.
Used by web.py (writer) and startup.py (reader) to show live progress
on the loading page while models are being tested.
"""
import threading
_lock = threading.Lock()
# Current phase: "init", "benchmark", "ready"
phase: str = "init"
total: int = 0
# model -> {"status": "testing"|"ok"|"fail", "detail": str}
_models: dict[str, dict] = {}
def update(model: str, status: str, detail: str = ""):
"""Record a model's benchmark status. Thread-safe."""
with _lock:
_models[model] = {"status": status, "detail": detail}
def snapshot() -> dict:
"""Return current progress snapshot for the loading page."""
with _lock:
return {
"phase": phase,
"total": total,
"models": dict(_models),
}