jasonshaoshun commited on
Commit
c33e0a8
·
1 Parent(s): a3ba9e7
Files changed (1) hide show
  1. app.py +14 -29
app.py CHANGED
@@ -133,7 +133,7 @@ from dataclasses import fields
133
 
134
  class SmartSelectColumns(SelectColumns):
135
  """
136
- Enhanced SelectColumns component with minimal modifications from original.
137
  """
138
  def __init__(
139
  self,
@@ -143,14 +143,17 @@ class SmartSelectColumns(SelectColumns):
143
  label: str = "Select Results:",
144
  **kwargs
145
  ):
146
- """
147
- Initialize SmartSelectColumns.
148
- """
149
- super().__init__(label=label, **kwargs)
 
 
 
 
150
  self.benchmark_keywords = benchmark_keywords or []
151
  self.model_keywords = model_keywords or []
152
- self.initial_selected = initial_selected or []
153
-
154
  def get_filtered_groups(self, columns: List[str]) -> Dict[str, List[str]]:
155
  """Get column groups based on keywords."""
156
  filtered_groups = {}
@@ -172,27 +175,9 @@ class SmartSelectColumns(SelectColumns):
172
  ]
173
  if matching_cols:
174
  filtered_groups[f"Model group for {model}"] = matching_cols
175
-
176
  return filtered_groups
177
 
178
- def update(
179
- self,
180
- value: Union[pd.DataFrame, Dict[str, List[str]], Any]
181
- ) -> Dict:
182
- """Update component, staying close to original SelectColumns behavior."""
183
- if isinstance(value, pd.DataFrame):
184
- columns = list(value.columns)
185
- filtered_cols = self.get_filtered_groups(columns)
186
-
187
- return {
188
- "choices": columns,
189
- "value": self.initial_selected or columns,
190
- "filtered_cols": filtered_cols,
191
- "__type__": "update"
192
- }
193
-
194
- return super().update(value)
195
-
196
 
197
 
198
 
@@ -477,9 +462,11 @@ def init_leaderboard_mib_subgraph(dataframe, track):
477
  benchmark_keywords=benchmark_keywords,
478
  model_keywords=model_keywords,
479
  initial_selected=["Method", "Average"],
480
- label="Select Results:" # Match original label
 
481
  )
482
 
 
483
  # Create Leaderboard
484
  print("\nCreating leaderboard...")
485
  leaderboard = Leaderboard(
@@ -490,8 +477,6 @@ def init_leaderboard_mib_subgraph(dataframe, track):
490
  hide_columns=[],
491
  interactive=False
492
  )
493
- print("Leaderboard created successfully")
494
- print("Leaderboard is", leaderboard)
495
  return leaderboard
496
 
497
 
 
133
 
134
  class SmartSelectColumns(SelectColumns):
135
  """
136
+ Enhanced SelectColumns component following the gradio_leaderboard docs pattern.
137
  """
138
  def __init__(
139
  self,
 
143
  label: str = "Select Results:",
144
  **kwargs
145
  ):
146
+ # Initialize with basic SelectColumns parameters
147
+ default_selection = initial_selected or []
148
+ super().__init__(
149
+ default_selection=default_selection,
150
+ label=label,
151
+ **kwargs
152
+ )
153
+
154
  self.benchmark_keywords = benchmark_keywords or []
155
  self.model_keywords = model_keywords or []
156
+
 
157
  def get_filtered_groups(self, columns: List[str]) -> Dict[str, List[str]]:
158
  """Get column groups based on keywords."""
159
  filtered_groups = {}
 
175
  ]
176
  if matching_cols:
177
  filtered_groups[f"Model group for {model}"] = matching_cols
178
+
179
  return filtered_groups
180
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
 
182
 
183
 
 
462
  benchmark_keywords=benchmark_keywords,
463
  model_keywords=model_keywords,
464
  initial_selected=["Method", "Average"],
465
+ label="Select Results:",
466
+ cant_deselect=["Method"] # Ensure Method column is always shown
467
  )
468
 
469
+
470
  # Create Leaderboard
471
  print("\nCreating leaderboard...")
472
  leaderboard = Leaderboard(
 
477
  hide_columns=[],
478
  interactive=False
479
  )
 
 
480
  return leaderboard
481
 
482