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)
|