Spaces:
Running
Running
Commit
·
c08520d
1
Parent(s):
678bdbb
Removing Model Type Selection
Browse files- src/app.py +4 -6
- src/components/filters.py +4 -46
- src/components/leaderboard.py +1 -1
src/app.py
CHANGED
@@ -22,8 +22,7 @@ from src.components.header import render_page_header
|
|
22 |
from src.components.filters import (
|
23 |
initialize_session_state,
|
24 |
render_metric_selection,
|
25 |
-
render_task_selection
|
26 |
-
render_model_type_selection
|
27 |
)
|
28 |
from src.components.leaderboard import render_leaderboard_table, render_empty_state
|
29 |
from src.components.tasks import render_task_descriptions
|
@@ -100,17 +99,16 @@ def main():
|
|
100 |
|
101 |
# Continue with other filters
|
102 |
selected_tasks = render_task_selection(df)
|
103 |
-
selected_model_types = render_model_type_selection(df)
|
104 |
|
105 |
# Render leaderboard if selections are valid
|
106 |
-
if selected_tasks
|
107 |
# Load the primary metric data first (always the first in selected_metrics)
|
108 |
primary_metric = selected_metrics[0]
|
109 |
primary_metric_data = load_metric_data(metrics_config[primary_metric]["file"])
|
110 |
primary_df = process_data(primary_metric_data)
|
111 |
|
112 |
# Filter and prepare data for primary metric
|
113 |
-
filtered_df = filter_and_prepare_data(primary_df, selected_tasks, selected_model_types)
|
114 |
|
115 |
# Format data for display
|
116 |
display_df, metric_columns = format_display_dataframe(filtered_df, selected_tasks)
|
@@ -124,7 +122,7 @@ def main():
|
|
124 |
metric_df = process_data(metric_data)
|
125 |
|
126 |
# Process and merge the additional metric data
|
127 |
-
metric_filtered_df = filter_and_prepare_data(metric_df, selected_tasks, selected_model_types)
|
128 |
metric_display_df, _ = format_display_dataframe(metric_filtered_df, selected_tasks)
|
129 |
|
130 |
# Create a meaningful prefix for this metric
|
|
|
22 |
from src.components.filters import (
|
23 |
initialize_session_state,
|
24 |
render_metric_selection,
|
25 |
+
render_task_selection
|
|
|
26 |
)
|
27 |
from src.components.leaderboard import render_leaderboard_table, render_empty_state
|
28 |
from src.components.tasks import render_task_descriptions
|
|
|
99 |
|
100 |
# Continue with other filters
|
101 |
selected_tasks = render_task_selection(df)
|
|
|
102 |
|
103 |
# Render leaderboard if selections are valid
|
104 |
+
if selected_tasks:
|
105 |
# Load the primary metric data first (always the first in selected_metrics)
|
106 |
primary_metric = selected_metrics[0]
|
107 |
primary_metric_data = load_metric_data(metrics_config[primary_metric]["file"])
|
108 |
primary_df = process_data(primary_metric_data)
|
109 |
|
110 |
# Filter and prepare data for primary metric
|
111 |
+
filtered_df = filter_and_prepare_data(primary_df, selected_tasks, st.session_state.selected_model_types)
|
112 |
|
113 |
# Format data for display
|
114 |
display_df, metric_columns = format_display_dataframe(filtered_df, selected_tasks)
|
|
|
122 |
metric_df = process_data(metric_data)
|
123 |
|
124 |
# Process and merge the additional metric data
|
125 |
+
metric_filtered_df = filter_and_prepare_data(metric_df, selected_tasks, st.session_state.selected_model_types)
|
126 |
metric_display_df, _ = format_display_dataframe(metric_filtered_df, selected_tasks)
|
127 |
|
128 |
# Create a meaningful prefix for this metric
|
src/components/filters.py
CHANGED
@@ -18,16 +18,15 @@ def initialize_session_state(df):
|
|
18 |
st.session_state.selected_metrics = [primary_metric]
|
19 |
|
20 |
if 'selected_tasks' not in st.session_state:
|
21 |
-
# Select all tasks by default
|
22 |
st.session_state.selected_tasks = [col for col in df.columns if col not in ['Model Type']]
|
23 |
else:
|
24 |
# Make sure selected_tasks only includes actual tasks from the dataframe
|
25 |
valid_tasks = [col for col in df.columns if col not in ['Model Type']]
|
26 |
st.session_state.selected_tasks = [task for task in st.session_state.selected_tasks if task in valid_tasks]
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
st.session_state.selected_model_types = list(df['Model Type'].unique())
|
31 |
|
32 |
def render_metric_selection():
|
33 |
"""
|
@@ -126,45 +125,4 @@ def render_task_selection(df):
|
|
126 |
st.session_state.selected_tasks.append(task)
|
127 |
st.rerun() # Force UI update
|
128 |
|
129 |
-
return st.session_state.selected_tasks
|
130 |
-
|
131 |
-
def render_model_type_selection(df):
|
132 |
-
"""
|
133 |
-
Render the model type selection component
|
134 |
-
|
135 |
-
Args:
|
136 |
-
df (pandas.DataFrame): The DataFrame with model data
|
137 |
-
|
138 |
-
Returns:
|
139 |
-
list: Selected model types
|
140 |
-
"""
|
141 |
-
st.markdown("### Select Model Types")
|
142 |
-
|
143 |
-
# Get unique model types
|
144 |
-
model_types = df['Model Type'].unique().tolist()
|
145 |
-
|
146 |
-
# Determine number of columns - up to 4 columns max depending on number of model types
|
147 |
-
num_cols = min(len(model_types), 4)
|
148 |
-
|
149 |
-
# Create columns
|
150 |
-
cols = st.columns(num_cols)
|
151 |
-
|
152 |
-
# Add a button for each model type
|
153 |
-
for i, model_type in enumerate(model_types):
|
154 |
-
col_idx = i % num_cols # Determine which column to place the button in
|
155 |
-
|
156 |
-
with cols[col_idx]:
|
157 |
-
is_selected = model_type in st.session_state.selected_model_types
|
158 |
-
button_label = f"✓ {model_type}" if is_selected else model_type
|
159 |
-
button_type = "primary" if is_selected else "secondary"
|
160 |
-
|
161 |
-
if st.button(button_label, key=f"model_type_{model_type}", type=button_type):
|
162 |
-
if is_selected:
|
163 |
-
# Prevent deselecting all model types - ensure at least one remains selected
|
164 |
-
if len(st.session_state.selected_model_types) > 1:
|
165 |
-
st.session_state.selected_model_types.remove(model_type)
|
166 |
-
else:
|
167 |
-
st.session_state.selected_model_types.append(model_type)
|
168 |
-
st.rerun() # Force UI update
|
169 |
-
|
170 |
-
return st.session_state.selected_model_types
|
|
|
18 |
st.session_state.selected_metrics = [primary_metric]
|
19 |
|
20 |
if 'selected_tasks' not in st.session_state:
|
21 |
+
# Select all tasks by default
|
22 |
st.session_state.selected_tasks = [col for col in df.columns if col not in ['Model Type']]
|
23 |
else:
|
24 |
# Make sure selected_tasks only includes actual tasks from the dataframe
|
25 |
valid_tasks = [col for col in df.columns if col not in ['Model Type']]
|
26 |
st.session_state.selected_tasks = [task for task in st.session_state.selected_tasks if task in valid_tasks]
|
27 |
|
28 |
+
# Always select all model types
|
29 |
+
st.session_state.selected_model_types = list(df['Model Type'].unique())
|
|
|
30 |
|
31 |
def render_metric_selection():
|
32 |
"""
|
|
|
125 |
st.session_state.selected_tasks.append(task)
|
126 |
st.rerun() # Force UI update
|
127 |
|
128 |
+
return st.session_state.selected_tasks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/leaderboard.py
CHANGED
@@ -240,6 +240,6 @@ def render_empty_state():
|
|
240 |
"""
|
241 |
st.markdown("""
|
242 |
<div class="warning-box">
|
243 |
-
<strong>No data to display.</strong> Please select at least one task
|
244 |
</div>
|
245 |
""", unsafe_allow_html=True)
|
|
|
240 |
"""
|
241 |
st.markdown("""
|
242 |
<div class="warning-box">
|
243 |
+
<strong>No data to display.</strong> Please select at least one task to view the data.
|
244 |
</div>
|
245 |
""", unsafe_allow_html=True)
|