apsys commited on
Commit
9a237d2
·
1 Parent(s): b1cb07d

weird update

Browse files
Files changed (2) hide show
  1. app.py +24 -24
  2. src/populate.py +1 -1
app.py CHANGED
@@ -79,6 +79,8 @@ def init_leaderboard(dataframe):
79
  dataframe = pd.DataFrame(columns=columns)
80
  logger.warning("Initializing empty leaderboard")
81
 
 
 
82
  return Leaderboard(
83
  value=dataframe,
84
  datatype=[getattr(GUARDBENCH_COLUMN, col).type for col in DISPLAY_COLS],
@@ -93,6 +95,7 @@ def init_leaderboard(dataframe):
93
  ColumnFilter(GUARDBENCH_COLUMN.model_type.name, type="checkboxgroup", label="Model types"),
94
  ],
95
  interactive=False,
 
96
  )
97
 
98
 
@@ -151,28 +154,24 @@ def submit_results(
151
 
152
  def refresh_data(version=CURRENT_VERSION):
153
  """
154
- Refresh the leaderboard data from HuggingFace.
155
  """
156
- global LEADERBOARD_DF
157
  try:
158
- logger.info(f"Performing scheduled refresh of leaderboard data for version {version}...")
159
- new_df = get_leaderboard_df(version=version)
160
- if new_df is not None and not new_df.empty:
161
- LEADERBOARD_DF = new_df
162
- logger.info("Scheduled refresh of leaderboard data completed")
163
- else:
164
- logger.warning("Refresh returned empty data, keeping existing data")
165
- # If empty, create a dataframe with correct columns
166
- if LEADERBOARD_DF is None or LEADERBOARD_DF.empty:
167
- columns = [getattr(GUARDBENCH_COLUMN, col).name for col in DISPLAY_COLS]
168
- LEADERBOARD_DF = pd.DataFrame(columns=columns)
169
  except Exception as e:
170
  logger.error(f"Error in scheduled refresh: {e}")
171
- # Ensure we have at least an empty dataframe with correct columns
172
- if LEADERBOARD_DF is None or LEADERBOARD_DF.empty:
173
- columns = [getattr(GUARDBENCH_COLUMN, col).name for col in DISPLAY_COLS]
174
- LEADERBOARD_DF = pd.DataFrame(columns=columns)
175
- return LEADERBOARD_DF
176
 
177
 
178
  def update_leaderboards(version):
@@ -300,7 +299,7 @@ with demo:
300
  with tabs:
301
  with gr.TabItem("🏅 Leaderboard", elem_id="guardbench-leaderboard-tab", id=0):
302
  with gr.Row():
303
- refresh_button = gr.Button("Refresh Leaderboard", scale=3)
304
  version_selector = gr.Dropdown(
305
  choices=BENCHMARK_VERSIONS,
306
  label="Benchmark Version",
@@ -314,20 +313,20 @@ with demo:
314
  with gr.Tabs(elem_classes="category-tabs") as category_tabs:
315
  # First tab for average metrics across all categories
316
  with gr.TabItem("📊 Overall Performance", elem_id="overall-tab"):
 
317
  leaderboard = init_leaderboard(LEADERBOARD_DF)
318
 
319
  # Create a tab for each category
320
  for category in CATEGORIES:
321
  with gr.TabItem(f"{category}", elem_id=f"category-{category.lower().replace(' ', '-')}-tab"):
 
322
  category_df = get_category_leaderboard_df(category, version=CURRENT_VERSION)
 
323
  category_leaderboard = init_leaderboard(category_df)
324
 
325
  # Refresh button functionality
326
  refresh_button.click(
327
- fn=lambda: [
328
- init_leaderboard(get_leaderboard_df(version=version_selector.value)),
329
- *[init_leaderboard(get_category_leaderboard_df(category, version=version_selector.value)) for category in CATEGORIES]
330
- ],
331
  inputs=[],
332
  outputs=[leaderboard] + [category_tabs.children[i].children[0] for i in range(1, len(CATEGORIES) + 1)]
333
  )
@@ -486,8 +485,9 @@ with demo:
486
  Last updated: {pd.Timestamp.now().strftime("%Y-%m-%d %H:%M:%S UTC")}
487
  """)
488
 
 
489
  scheduler = BackgroundScheduler()
490
- scheduler.add_job(lambda: refresh_data(version=CURRENT_VERSION), 'interval', minutes=30)
491
  scheduler.start()
492
 
493
  # Launch the app
 
79
  dataframe = pd.DataFrame(columns=columns)
80
  logger.warning("Initializing empty leaderboard")
81
 
82
+ print("\n\n", "dataframe", dataframe, "--------------------------------\n\n")
83
+
84
  return Leaderboard(
85
  value=dataframe,
86
  datatype=[getattr(GUARDBENCH_COLUMN, col).type for col in DISPLAY_COLS],
 
95
  ColumnFilter(GUARDBENCH_COLUMN.model_type.name, type="checkboxgroup", label="Model types"),
96
  ],
97
  interactive=False,
98
+ render=True,
99
  )
100
 
101
 
 
154
 
155
  def refresh_data(version=CURRENT_VERSION):
156
  """
157
+ Refresh the leaderboard data and update all components.
158
  """
 
159
  try:
160
+ logger.info(f"Performing scheduled refresh of leaderboard data...")
161
+ # Get new data
162
+ main_df = get_leaderboard_df(version=version)
163
+ category_dfs = [get_category_leaderboard_df(category, version=version) for category in CATEGORIES]
164
+
165
+ # For Leaderboard components, we need to return just the dataframes
166
+ # The component will handle the update internally
167
+ return dict(
168
+ value=main_df
169
+ ), *[dict(value=df) for df in category_dfs]
170
+
171
  except Exception as e:
172
  logger.error(f"Error in scheduled refresh: {e}")
173
+ return dict(value=leaderboard.value), *[dict(value=tab.children[0].value)
174
+ for tab in category_tabs.children[1:]]
 
 
 
175
 
176
 
177
  def update_leaderboards(version):
 
299
  with tabs:
300
  with gr.TabItem("🏅 Leaderboard", elem_id="guardbench-leaderboard-tab", id=0):
301
  with gr.Row():
302
+ refresh_button = gr.Button("Refresh Leaderboard")
303
  version_selector = gr.Dropdown(
304
  choices=BENCHMARK_VERSIONS,
305
  label="Benchmark Version",
 
313
  with gr.Tabs(elem_classes="category-tabs") as category_tabs:
314
  # First tab for average metrics across all categories
315
  with gr.TabItem("📊 Overall Performance", elem_id="overall-tab"):
316
+ print("LEADERBOARD_DF", LEADERBOARD_DF)
317
  leaderboard = init_leaderboard(LEADERBOARD_DF)
318
 
319
  # Create a tab for each category
320
  for category in CATEGORIES:
321
  with gr.TabItem(f"{category}", elem_id=f"category-{category.lower().replace(' ', '-')}-tab"):
322
+ print("category DF", category)
323
  category_df = get_category_leaderboard_df(category, version=CURRENT_VERSION)
324
+ print("category DF", category_df)
325
  category_leaderboard = init_leaderboard(category_df)
326
 
327
  # Refresh button functionality
328
  refresh_button.click(
329
+ fn=refresh_data,
 
 
 
330
  inputs=[],
331
  outputs=[leaderboard] + [category_tabs.children[i].children[0] for i in range(1, len(CATEGORIES) + 1)]
332
  )
 
485
  Last updated: {pd.Timestamp.now().strftime("%Y-%m-%d %H:%M:%S UTC")}
486
  """)
487
 
488
+ # Set up the scheduler to refresh data periodically
489
  scheduler = BackgroundScheduler()
490
+ scheduler.add_job(refresh_data, 'interval', minutes=30)
491
  scheduler.start()
492
 
493
  # Launch the app
src/populate.py CHANGED
@@ -192,7 +192,7 @@ def get_category_leaderboard_df(category: str, version="v0") -> pd.DataFrame:
192
  "last_updated": leaderboard_data.get("last_updated", datetime.now().isoformat()),
193
  "version": version
194
  }
195
- print(filtered_leaderboard)
196
 
197
  # Convert to DataFrame
198
  return leaderboard_to_dataframe(filtered_leaderboard)
 
192
  "last_updated": leaderboard_data.get("last_updated", datetime.now().isoformat()),
193
  "version": version
194
  }
195
+ # print(filtered_leaderboard)
196
 
197
  # Convert to DataFrame
198
  return leaderboard_to_dataframe(filtered_leaderboard)