LucasLima commited on
Commit
f58ec83
·
verified ·
1 Parent(s): 99732d3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -18
app.py CHANGED
@@ -117,38 +117,46 @@ def create_leaderboard_component(dataframe, displayed_cols, hidden_cols=None, ca
117
  if cant_deselect_cols is None:
118
  cant_deselect_cols = [AutoEvalColumn.model_type_symbol.name, AutoEvalColumn.model.name]
119
 
 
120
  all_required_cols = set(displayed_cols) | set(hidden_cols) | set(cant_deselect_cols) | {AutoEvalColumn.model_type.name, AutoEvalColumn.precision.name, AutoEvalColumn.params.name, AutoEvalColumn.still_on_hub.name}
121
  available_cols = [col for col in all_required_cols if col in dataframe.columns]
122
- filtered_df = dataframe[available_cols].copy()
123
 
 
124
  for col in cant_deselect_cols:
125
  if col not in filtered_df.columns:
126
- filtered_df[col] = np.nan
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
 
128
  return Leaderboard(
129
  value=filtered_df,
130
- datatype=[c.type for c in fields(AutoEvalColumn) if c.name in filtered_df.columns],
131
  select_columns=SelectColumns(
132
  default_selection=displayed_cols,
133
  cant_deselect=cant_deselect_cols,
134
  label="Selecionar Colunas para Exibir:",
135
  ),
136
  search_columns=[AutoEvalColumn.model.name, AutoEvalColumn.license.name] if AutoEvalColumn.license.name in filtered_df.columns else [AutoEvalColumn.model.name],
137
- hide_columns=[c for c in hidden_cols if c in filtered_df.columns],
138
- filter_columns=[
139
- ColumnFilter(AutoEvalColumn.model_type.name, type="checkboxgroup", label="Tipos de Modelo") if AutoEvalColumn.model_type.name in filtered_df.columns else None,
140
- ColumnFilter(AutoEvalColumn.precision.name, type="checkboxgroup", label="Precisão") if AutoEvalColumn.precision.name in filtered_df.columns else None,
141
- ColumnFilter(
142
- AutoEvalColumn.params.name,
143
- type="slider",
144
- min=0.01,
145
- max=max(150, filtered_df[AutoEvalColumn.params.name].max() if AutoEvalColumn.params.name in filtered_df.columns and not filtered_df[AutoEvalColumn.params.name].empty else 150),
146
- label="Selecionar número de parâmetros (B)",
147
- ) if AutoEvalColumn.params.name in filtered_df.columns else None,
148
- ColumnFilter(
149
- AutoEvalColumn.still_on_hub.name, type="boolean", label="Deletado/incompleto", default=True
150
- ) if AutoEvalColumn.still_on_hub.name in filtered_df.columns else None,
151
- ],
152
  bool_checkboxgroup_label="Ocultar modelos",
153
  interactive=False,
154
  )
 
117
  if cant_deselect_cols is None:
118
  cant_deselect_cols = [AutoEvalColumn.model_type_symbol.name, AutoEvalColumn.model.name]
119
 
120
+ # Filtrar dataframe para conter apenas as colunas a serem exibidas (ou ocultas/não deselecionáveis)
121
  all_required_cols = set(displayed_cols) | set(hidden_cols) | set(cant_deselect_cols) | {AutoEvalColumn.model_type.name, AutoEvalColumn.precision.name, AutoEvalColumn.params.name, AutoEvalColumn.still_on_hub.name}
122
  available_cols = [col for col in all_required_cols if col in dataframe.columns]
123
+ filtered_df = dataframe[available_cols].copy() # Usar cópia para evitar SettingWithCopyWarning
124
 
125
+ # Garantir que as colunas 'always visible' estejam presentes
126
  for col in cant_deselect_cols:
127
  if col not in filtered_df.columns:
128
+ filtered_df[col] = np.nan # Ou algum valor padrão apropriado
129
+
130
+ # Construir lista de filtros, incluindo None para colunas ausentes
131
+ raw_filter_columns=[
132
+ ColumnFilter(AutoEvalColumn.model_type.name, type="checkboxgroup", label="Tipos de Modelo") if AutoEvalColumn.model_type.name in filtered_df.columns else None,
133
+ ColumnFilter(AutoEvalColumn.precision.name, type="checkboxgroup", label="Precisão") if AutoEvalColumn.precision.name in filtered_df.columns else None,
134
+ ColumnFilter(
135
+ AutoEvalColumn.params.name,
136
+ type="slider",
137
+ min=0.01,
138
+ max=max(150, filtered_df[AutoEvalColumn.params.name].max(skipna=True) if AutoEvalColumn.params.name in filtered_df.columns and not filtered_df[AutoEvalColumn.params.name].dropna().empty else 150), # Ajustar max dinamicamente e ignorar NaN
139
+ label="Selecionar número de parâmetros (B)",
140
+ ) if AutoEvalColumn.params.name in filtered_df.columns else None,
141
+ ColumnFilter(
142
+ AutoEvalColumn.still_on_hub.name, type="boolean", label="Deletado/incompleto", default=True
143
+ ) if AutoEvalColumn.still_on_hub.name in filtered_df.columns else None,
144
+ ]
145
+
146
+ # Filtrar Nones da lista de filtros
147
+ final_filter_columns = [f for f in raw_filter_columns if f is not None]
148
 
149
  return Leaderboard(
150
  value=filtered_df,
151
+ datatype=[c.type for c in fields(AutoEvalColumn) if c.name in filtered_df.columns], # Ajustar datatype às colunas presentes
152
  select_columns=SelectColumns(
153
  default_selection=displayed_cols,
154
  cant_deselect=cant_deselect_cols,
155
  label="Selecionar Colunas para Exibir:",
156
  ),
157
  search_columns=[AutoEvalColumn.model.name, AutoEvalColumn.license.name] if AutoEvalColumn.license.name in filtered_df.columns else [AutoEvalColumn.model.name],
158
+ hide_columns=[c for c in hidden_cols if c in filtered_df.columns], # Ocultar apenas colunas existentes
159
+ filter_columns=final_filter_columns, # Usar a lista filtrada
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  bool_checkboxgroup_label="Ocultar modelos",
161
  interactive=False,
162
  )