Shivam commited on
Commit
66dddc0
·
1 Parent(s): 4251f03

New leaderboard method updating script per class

Browse files
Files changed (3) hide show
  1. app.py +6 -2
  2. backends/__init__.py +2 -0
  3. backends/registry.py +21 -1
app.py CHANGED
@@ -4,7 +4,7 @@ import numpy as np
4
  from datetime import datetime, timezone
5
 
6
  from constants import BANNER, INTRODUCTION_TEXT, CITATION_TEXT, ABOUT_TEXT, LEADERBOARD_CSS
7
- from backends import DROPDOWN_CHOICES, FAMILY_IDS, default_family_id
8
  from init import (
9
  eval_lock,
10
  is_model_on_hub,
@@ -77,8 +77,12 @@ def submit_model(model_id: str, family_id: str, progress=gr.Progress()) -> str:
77
  if not model_id:
78
  return styled_error("Please enter a model ID.")
79
 
 
80
  if family_id not in FAMILY_IDS:
81
- return styled_error(f"Unknown model family: {family_id!r}.")
 
 
 
82
 
83
  # Check if already evaluated (one row per model_id)
84
  existing = load_raw_results()
 
4
  from datetime import datetime, timezone
5
 
6
  from constants import BANNER, INTRODUCTION_TEXT, CITATION_TEXT, ABOUT_TEXT, LEADERBOARD_CSS
7
+ from backends import DROPDOWN_CHOICES, FAMILY_IDS, default_family_id, normalize_family_id
8
  from init import (
9
  eval_lock,
10
  is_model_on_hub,
 
77
  if not model_id:
78
  return styled_error("Please enter a model ID.")
79
 
80
+ family_id = normalize_family_id(family_id) or default_family_id()
81
  if family_id not in FAMILY_IDS:
82
+ return styled_error(
83
+ f"Unknown model family: {family_id!r}. "
84
+ f"Use one of: {', '.join(FAMILY_IDS)}."
85
+ )
86
 
87
  # Check if already evaluated (one row per model_id)
88
  existing = load_raw_results()
backends/__init__.py CHANGED
@@ -6,6 +6,7 @@ from .registry import (
6
  FAMILY_META,
7
  build_transcriber,
8
  default_family_id,
 
9
  resolve_label,
10
  )
11
 
@@ -15,5 +16,6 @@ __all__ = [
15
  "FAMILY_META",
16
  "build_transcriber",
17
  "default_family_id",
 
18
  "resolve_label",
19
  ]
 
6
  FAMILY_META,
7
  build_transcriber,
8
  default_family_id,
9
+ normalize_family_id,
10
  resolve_label,
11
  )
12
 
 
16
  "FAMILY_META",
17
  "build_transcriber",
18
  "default_family_id",
19
+ "normalize_family_id",
20
  "resolve_label",
21
  ]
backends/registry.py CHANGED
@@ -30,11 +30,31 @@ FAMILY_META: dict[str, tuple[str, str]] = {
30
 
31
  FAMILY_IDS: tuple[str, ...] = tuple(FAMILY_META.keys())
32
 
 
33
  DROPDOWN_CHOICES: list[tuple[str, str]] = [
34
- (fid, f"{FAMILY_META[fid][0]} — {FAMILY_META[fid][1]}") for fid in FAMILY_IDS
35
  ]
36
 
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  def default_family_id() -> str:
39
  return "auto"
40
 
 
30
 
31
  FAMILY_IDS: tuple[str, ...] = tuple(FAMILY_META.keys())
32
 
33
+ # Gradio Dropdown expects each tuple as (label, value): label is shown; value is passed to Python.
34
  DROPDOWN_CHOICES: list[tuple[str, str]] = [
35
+ (f"{FAMILY_META[fid][0]} — {FAMILY_META[fid][1]}", fid) for fid in FAMILY_IDS
36
  ]
37
 
38
 
39
+ def normalize_family_id(raw: str | None) -> str | None:
40
+ """
41
+ Map UI / API input to a canonical family id.
42
+
43
+ Gradio must receive (label, value) tuples in DROPDOWN_CHOICES; if an old client
44
+ still sends the long label string, map it back to the id when possible.
45
+ """
46
+ if raw is None:
47
+ return None
48
+ s = raw.strip()
49
+ if s in FAMILY_META:
50
+ return s
51
+ for fid, (short, desc) in FAMILY_META.items():
52
+ long_label = f"{short} — {desc}"
53
+ if s == long_label:
54
+ return fid
55
+ return s
56
+
57
+
58
  def default_family_id() -> str:
59
  return "auto"
60