jasonshaoshun commited on
Commit
0aec7f4
·
1 Parent(s): e27c948
Files changed (2) hide show
  1. app.py +68 -37
  2. requirements.txt +1 -1
app.py CHANGED
@@ -200,50 +200,85 @@ from src.about import TasksMib_Subgraph
200
  # interactive=False,
201
  # )
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  def init_leaderboard_mib_subgraph(dataframe, track):
204
- """Initialize the subgraph leaderboard with grouped column selection."""
205
  if dataframe is None or dataframe.empty:
206
  raise ValueError("Leaderboard DataFrame is empty or None.")
207
 
208
- # Get tasks and models using the new class methods
209
- tasks = TasksMib_Subgraph.get_all_tasks()
210
- models = TasksMib_Subgraph.get_all_models()
211
-
212
- # Create a mapping from selection to actual column names
213
- selection_map = {}
214
 
215
- # Add task mappings - when a task is selected, show all its columns
216
- for task in tasks:
217
- # For each task, find all valid task_model combinations
218
- valid_combos = []
219
- for model in models:
220
- col_name = f"{task}_{model}"
221
- if col_name in dataframe.columns:
222
- valid_combos.append(col_name)
223
- if valid_combos:
224
- selection_map[task] = valid_combos
225
-
226
- # Add model mappings - when a model is selected, show all its columns
227
- for model in models:
228
- # For each model, find all valid task_model combinations
229
- valid_combos = []
230
- for task in tasks:
231
- col_name = f"{task}_{model}"
232
- if col_name in dataframe.columns:
233
- valid_combos.append(col_name)
234
- if valid_combos:
235
- selection_map[model] = valid_combos
236
 
237
  return Leaderboard(
238
  value=dataframe,
239
  datatype=[c.type for c in fields(AutoEvalColumn_mib_subgraph)],
240
  select_columns=SelectColumns(
241
- choices=[tasks, models], # Two groups of choices
242
- labels=["Tasks", "Models"], # Labels for each group
243
- default_selection=[*tasks, *models], # Show everything by default
244
  cant_deselect=["Method"], # Method column always visible
245
- label="Filter by Tasks or Models:",
246
- selection_map=selection_map # Map selections to actual columns
247
  ),
248
  search_columns=["Method"],
249
  hide_columns=[c.name for c in fields(AutoEvalColumn_mib_subgraph) if c.hidden],
@@ -259,10 +294,6 @@ def init_leaderboard_mib_subgraph(dataframe, track):
259
 
260
 
261
 
262
-
263
-
264
-
265
-
266
  def init_leaderboard_mib_causalgraph(dataframe, track):
267
  # print("Debugging column issues:")
268
  # print("\nActual DataFrame columns:")
 
200
  # interactive=False,
201
  # )
202
 
203
+
204
+
205
+ # def init_leaderboard_mib_subgraph(dataframe, track):
206
+ # """Initialize the subgraph leaderboard with grouped column selection."""
207
+ # if dataframe is None or dataframe.empty:
208
+ # raise ValueError("Leaderboard DataFrame is empty or None.")
209
+
210
+ # # Get tasks and models using the new class methods
211
+ # tasks = TasksMib_Subgraph.get_all_tasks()
212
+ # models = TasksMib_Subgraph.get_all_models()
213
+
214
+ # # Create a mapping from selection to actual column names
215
+ # selection_map = {}
216
+
217
+ # # Add task mappings - when a task is selected, show all its columns
218
+ # for task in tasks:
219
+ # # For each task, find all valid task_model combinations
220
+ # valid_combos = []
221
+ # for model in models:
222
+ # col_name = f"{task}_{model}"
223
+ # if col_name in dataframe.columns:
224
+ # valid_combos.append(col_name)
225
+ # if valid_combos:
226
+ # selection_map[task] = valid_combos
227
+
228
+ # # Add model mappings - when a model is selected, show all its columns
229
+ # for model in models:
230
+ # # For each model, find all valid task_model combinations
231
+ # valid_combos = []
232
+ # for task in tasks:
233
+ # col_name = f"{task}_{model}"
234
+ # if col_name in dataframe.columns:
235
+ # valid_combos.append(col_name)
236
+ # if valid_combos:
237
+ # selection_map[model] = valid_combos
238
+
239
+ # return Leaderboard(
240
+ # value=dataframe,
241
+ # datatype=[c.type for c in fields(AutoEvalColumn_mib_subgraph)],
242
+ # select_columns=SelectColumns(
243
+ # choices=[tasks, models], # Two groups of choices
244
+ # labels=["Tasks", "Models"], # Labels for each group
245
+ # default_selection=[*tasks, *models], # Show everything by default
246
+ # cant_deselect=["Method"], # Method column always visible
247
+ # label="Filter by Tasks or Models:",
248
+ # selection_map=selection_map # Map selections to actual columns
249
+ # ),
250
+ # search_columns=["Method"],
251
+ # hide_columns=[c.name for c in fields(AutoEvalColumn_mib_subgraph) if c.hidden],
252
+ # bool_checkboxgroup_label="Hide models",
253
+ # interactive=False,
254
+ # )
255
+
256
+
257
+
258
  def init_leaderboard_mib_subgraph(dataframe, track):
259
+ """Initialize the subgraph leaderboard with grouped column selection for gradio-leaderboard 0.0.13"""
260
  if dataframe is None or dataframe.empty:
261
  raise ValueError("Leaderboard DataFrame is empty or None.")
262
 
263
+ # Get all unique tasks and models
264
+ tasks = [task.value.benchmark for task in TasksMib_Subgraph]
265
+ models = list(set(model for task in TasksMib_Subgraph for model in task.value.models))
 
 
 
266
 
267
+ # Create two selection groups: one for tasks and one for models
268
+ # In 0.0.13, we can only have one SelectColumns, so we'll combine them
269
+ selection_choices = [
270
+ *[f"Task: {task}" for task in tasks], # Prefix with 'Task:' for clarity
271
+ *[f"Model: {model}" for model in models] # Prefix with 'Model:' for clarity
272
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
273
 
274
  return Leaderboard(
275
  value=dataframe,
276
  datatype=[c.type for c in fields(AutoEvalColumn_mib_subgraph)],
277
  select_columns=SelectColumns(
278
+ default_selection=selection_choices, # Show all by default
279
+ choices=selection_choices,
 
280
  cant_deselect=["Method"], # Method column always visible
281
+ label="Select Tasks or Models:",
 
282
  ),
283
  search_columns=["Method"],
284
  hide_columns=[c.name for c in fields(AutoEvalColumn_mib_subgraph) if c.hidden],
 
294
 
295
 
296
 
 
 
 
 
297
  def init_leaderboard_mib_causalgraph(dataframe, track):
298
  # print("Debugging column issues:")
299
  # print("\nActual DataFrame columns:")
requirements.txt CHANGED
@@ -4,7 +4,7 @@ datasets
4
  fastapi==0.112.2
5
  gradio
6
  gradio[oauth]
7
- gradio_leaderboard==0.0.15
8
  gradio_client
9
  huggingface-hub>=0.18.0
10
  matplotlib
 
4
  fastapi==0.112.2
5
  gradio
6
  gradio[oauth]
7
+ gradio_leaderboard==0.0.13
8
  gradio_client
9
  huggingface-hub>=0.18.0
10
  matplotlib