CatsCanWrite commited on
Commit
8b7b4a8
·
1 Parent(s): 87b3a45

i'm just going to stumble through this for a bit

Browse files
Files changed (2) hide show
  1. app.py +3 -4
  2. utils.py +32 -20
app.py CHANGED
@@ -9,10 +9,9 @@ with gr.Blocks() as demo:
9
 
10
  # ---------- Leaderboard Tab ----------
11
  with gr.Tab("Leaderboard"):
12
- leaderboard_df = gr.Dataframe(
13
- value=empty_leaderboard(),
14
- label="Rankings",
15
- interactive=False,
16
  )
17
  refresh_btn = gr.Button("Refresh")
18
  refresh_btn.click(fn=load_leaderboard, outputs=leaderboard_df)
 
9
 
10
  # ---------- Leaderboard Tab ----------
11
  with gr.Tab("Leaderboard"):
12
+ gr.Markdown("### Results")
13
+ leaderboard_df = gr.HTML(
14
+ value=empty_leaderboard().to_html(),
 
15
  )
16
  refresh_btn = gr.Button("Refresh")
17
  refresh_btn.click(fn=load_leaderboard, outputs=leaderboard_df)
utils.py CHANGED
@@ -50,10 +50,10 @@ def _is_rate_limited(client_ip: str) -> bool:
50
  return False
51
 
52
 
53
- def load_leaderboard() -> pd.DataFrame:
54
  """Load the latest scores from the scores dataset."""
55
  if not HF_TOKEN:
56
- return empty_leaderboard()
57
 
58
  try:
59
  from datasets import load_dataset
@@ -78,20 +78,7 @@ def load_leaderboard() -> pd.DataFrame:
78
  df = df.sort_values("overall_score", ascending=False).reset_index(drop=True)
79
  df.insert(0, "Rank", range(1, len(df) + 1))
80
 
81
- # Format percentages
82
- for col in ["overall_score", "meter_score", "verse_score", "focus_score"]:
83
- if col in df.columns:
84
- df[col] = df[col].apply(
85
- lambda x: f"{x * 100:.1f}%" if pd.notna(x) else "N/A"
86
- )
87
-
88
- # Format dates
89
- if "evaluated_at" in df.columns:
90
- df["evaluated_at"] = pd.to_datetime(df["evaluated_at"], errors="coerce")
91
- df["evaluated_at"] = df["evaluated_at"].dt.strftime("%Y-%m-%d %H:%M")
92
-
93
- # Rename to human-readable names
94
- df.rename(columns=col_map, inplace=True)
95
  def color_score(val):
96
  if val >= 0.9:
97
  return "background-color: #4CAF50; color: white;" # green
@@ -102,16 +89,41 @@ def load_leaderboard() -> pd.DataFrame:
102
  else:
103
  return "background-color: #F44336; color: white;" # red
104
 
105
- df = df.style.map(color_score, subset=["overall_score", "meter_score", "verse_score", "focus_score"])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
 
107
  # Ensure column order matches empty leaderboard
108
  final_cols = [c for c in empty_leaderboard().columns if c in df.columns]
109
  df = df[final_cols]
110
-
111
- return df
 
 
 
 
 
 
 
 
 
 
 
112
  except Exception as e:
113
  print(f"Could not load scores dataset: {e}")
114
- return empty_leaderboard()
115
 
116
 
117
 
 
50
  return False
51
 
52
 
53
+ def load_leaderboard() -> str:
54
  """Load the latest scores from the scores dataset."""
55
  if not HF_TOKEN:
56
+ return empty_leaderboard().to_html()
57
 
58
  try:
59
  from datasets import load_dataset
 
78
  df = df.sort_values("overall_score", ascending=False).reset_index(drop=True)
79
  df.insert(0, "Rank", range(1, len(df) + 1))
80
 
81
+ # Apply coloring
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  def color_score(val):
83
  if val >= 0.9:
84
  return "background-color: #4CAF50; color: white;" # green
 
89
  else:
90
  return "background-color: #F44336; color: white;" # red
91
 
92
+
93
+ # # Format percentages
94
+ # for col in ["overall_score", "meter_score", "verse_score", "focus_score"]:
95
+ # if col in df.columns:
96
+ # df[col] = df[col].apply(
97
+ # lambda x: f"{x * 100:.1f}%" if pd.notna(x) else "N/A"
98
+ # )
99
+
100
+ # Format dates
101
+ if "evaluated_at" in df.columns:
102
+ df["evaluated_at"] = pd.to_datetime(df["evaluated_at"], errors="coerce")
103
+ df["evaluated_at"] = df["evaluated_at"].dt.strftime("%Y-%m-%d %H:%M")
104
+
105
+ # Rename to human-readable names
106
+ df.rename(columns=col_map, inplace=True)
107
 
108
  # Ensure column order matches empty leaderboard
109
  final_cols = [c for c in empty_leaderboard().columns if c in df.columns]
110
  df = df[final_cols]
111
+ styled = (
112
+ df.style
113
+ .map(color_score, subset=["Overall", "Meter", "Verse", "Focus"])
114
+ .format({
115
+ "Overall": "{:.1%}",
116
+ "Meter": "{:.1%}",
117
+ "Verse": "{:.1%}",
118
+ "Focus": "{:.1%}",
119
+ })
120
+ .hide(axis="index")
121
+ )
122
+
123
+ return styled.to_html()
124
  except Exception as e:
125
  print(f"Could not load scores dataset: {e}")
126
+ return empty_leaderboard().to_html()
127
 
128
 
129