Artur Słomowski commited on
Commit
c8c7c16
·
1 Parent(s): b18be2e

use pills instead of multiselect

Browse files
Files changed (2) hide show
  1. .gitignore +1 -0
  2. app.py +35 -8
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ venv
app.py CHANGED
@@ -244,20 +244,47 @@ with tab1:
244
  # Filter data based on selected providers
245
  data = data[data["Model"].apply(lambda x: x.split('/')[0].lower()).isin(selected_providers)]
246
 
247
- # Dodanie filtra widocznych kolumn poza expander
248
- base_columns = ["Model", "Params", AVERAGE_COLUMN_NAME, IMPLICATURES_AVERAGE_COLUMN_NAME,
249
- SENTIMENT_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, TRICKY_QUESTIONS_COLUMN_NAME]
250
- default_columns = base_columns.copy()
251
- selected_columns = st.multiselect("Visible columns", base_columns, default=default_columns)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
 
253
  # Display data
254
  styled_df_show = style_dataframe(data)
255
  styled_df_show = styler(styled_df_show)
256
 
257
- # Dostosowanie column_config do wybranych kolumn
258
  column_config = {}
259
 
260
- # Ustawiamy konfigurację dla wszystkich kolumn
261
  if "Model" in styled_df_show.columns:
262
  column_config["Model"] = st.column_config.TextColumn("Model", help="Model name", width="large") if "Model" in selected_columns else None
263
 
@@ -271,7 +298,7 @@ with tab1:
271
  column_config[IMPLICATURES_AVERAGE_COLUMN_NAME] = st.column_config.NumberColumn(IMPLICATURES_AVERAGE_COLUMN_NAME) if IMPLICATURES_AVERAGE_COLUMN_NAME in selected_columns else None
272
 
273
  if RESULTS_COLUMN_NAME in styled_df_show.columns:
274
- # Results pokazujemy tylko jeśli Average jest wybrane
275
  column_config[RESULTS_COLUMN_NAME] = st.column_config.BarChartColumn(
276
  "Bar chart of results", help="Summary of the results of each task",
277
  y_min=0, y_max=5) if AVERAGE_COLUMN_NAME in selected_columns else None
 
244
  # Filter data based on selected providers
245
  data = data[data["Model"].apply(lambda x: x.split('/')[0].lower()).isin(selected_providers)]
246
 
247
+
248
+ # Define all possible columns
249
+ all_columns = {
250
+ "Model": "Model",
251
+ "Params": "Params",
252
+ AVERAGE_COLUMN_NAME: "Average",
253
+ IMPLICATURES_AVERAGE_COLUMN_NAME: "Impl. Avg",
254
+ SENTIMENT_COLUMN_NAME: "Sentiment",
255
+ UNDERSTANDING_COLUMN_NAME: "Understanding",
256
+ PHRASEOLOGY_COLUMN_NAME: "Phraseology",
257
+ TRICKY_QUESTIONS_COLUMN_NAME: "Tricky Questions"
258
+ }
259
+
260
+ # By default, all columns are selected
261
+ default_columns = list(all_columns.keys())
262
+
263
+ # Use pills to select visible columns in multi-selection mode
264
+ selected_column_labels = st.pills(
265
+ label="Visible columns",
266
+ options=list(all_columns.values()),
267
+ default=list(all_columns.values()), # Set all columns as default
268
+ selection_mode="multi", # Enable multi-selection mode
269
+ key="visible_columns_pills"
270
+ )
271
+
272
+ # Map selected labels back to column names
273
+ reverse_mapping = {v: k for k, v in all_columns.items()}
274
+ selected_columns = [reverse_mapping[label] for label in selected_column_labels]
275
+
276
+ # If nothing is selected, show all columns
277
+ if not selected_columns:
278
+ selected_columns = default_columns
279
 
280
  # Display data
281
  styled_df_show = style_dataframe(data)
282
  styled_df_show = styler(styled_df_show)
283
 
284
+ # Customize column_config based on selected columns
285
  column_config = {}
286
 
287
+ # Set configuration for all columns
288
  if "Model" in styled_df_show.columns:
289
  column_config["Model"] = st.column_config.TextColumn("Model", help="Model name", width="large") if "Model" in selected_columns else None
290
 
 
298
  column_config[IMPLICATURES_AVERAGE_COLUMN_NAME] = st.column_config.NumberColumn(IMPLICATURES_AVERAGE_COLUMN_NAME) if IMPLICATURES_AVERAGE_COLUMN_NAME in selected_columns else None
299
 
300
  if RESULTS_COLUMN_NAME in styled_df_show.columns:
301
+ # Show Results only if Average is selected
302
  column_config[RESULTS_COLUMN_NAME] = st.column_config.BarChartColumn(
303
  "Bar chart of results", help="Summary of the results of each task",
304
  y_min=0, y_max=5) if AVERAGE_COLUMN_NAME in selected_columns else None