Update app.py
Browse files
app.py
CHANGED
@@ -110,8 +110,8 @@ def load_leaderboard_data(csv_file_path):
|
|
110 |
return pd.DataFrame(columns=UGI_COLS + WRITING_STYLE_COLS + ANIME_RATING_COLS + ADDITIONAL_COLS)
|
111 |
|
112 |
# Update the leaderboard table based on the search query and parameter range filters
|
113 |
-
def update_table(df
|
114 |
-
|
115 |
|
116 |
# Apply model size filter
|
117 |
if param_ranges:
|
@@ -136,18 +136,19 @@ def update_table(df: pd.DataFrame, query: str, param_ranges: list, is_foundation
|
|
136 |
elif param_range == 'Closed':
|
137 |
size_mask |= filtered_df['Total Params'].isna()
|
138 |
filtered_df = filtered_df[size_mask]
|
|
|
139 |
|
140 |
-
# Apply foundation model filter
|
141 |
if is_foundation:
|
142 |
-
|
143 |
|
144 |
if query:
|
145 |
escaped_query = re.escape(query)
|
146 |
-
|
147 |
|
148 |
-
|
149 |
-
|
150 |
-
|
|
|
151 |
|
152 |
# Add selected additional columns
|
153 |
columns = columns + [col for col in additional_cols if col in ADDITIONAL_COLS]
|
@@ -339,19 +340,23 @@ with GraInter:
|
|
339 |
""")
|
340 |
|
341 |
def update_all_tables(query, param_ranges, is_foundation, w10_range, additional_cols):
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
arp_df = leaderboard_df.sort_values(by='Score π', ascending=False)
|
348 |
-
arp_df_na = arp_df[arp_df[['Dif', 'Cor']].isna().any(axis=1)]
|
349 |
-
arp_df = arp_df[~arp_df[['Dif', 'Cor']].isna().any(axis=1)]
|
350 |
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
|
356 |
# Update the event handlers
|
357 |
inputs = [search_bar, filter_columns_size, model_type, w10_range, additional_columns]
|
@@ -382,7 +387,7 @@ with GraInter:
|
|
382 |
outputs=[leaderboard_table_ugi, leaderboard_table_ws, leaderboard_table_arp, leaderboard_table_arp_na]
|
383 |
)
|
384 |
|
385 |
-
w10_range.
|
386 |
fn=update_all_tables,
|
387 |
inputs=[search_bar, filter_columns_size, model_type, w10_range, additional_columns],
|
388 |
outputs=[leaderboard_table_ugi, leaderboard_table_ws, leaderboard_table_arp, leaderboard_table_arp_na]
|
|
|
110 |
return pd.DataFrame(columns=UGI_COLS + WRITING_STYLE_COLS + ANIME_RATING_COLS + ADDITIONAL_COLS)
|
111 |
|
112 |
# Update the leaderboard table based on the search query and parameter range filters
|
113 |
+
def update_table(df, query, param_ranges, is_foundation, columns, w10_range, additional_cols):
|
114 |
+
mask = pd.Series(True, index=df.index)
|
115 |
|
116 |
# Apply model size filter
|
117 |
if param_ranges:
|
|
|
136 |
elif param_range == 'Closed':
|
137 |
size_mask |= filtered_df['Total Params'].isna()
|
138 |
filtered_df = filtered_df[size_mask]
|
139 |
+
mask &= size_mask
|
140 |
|
|
|
141 |
if is_foundation:
|
142 |
+
mask &= df['Foundation'] == 1
|
143 |
|
144 |
if query:
|
145 |
escaped_query = re.escape(query)
|
146 |
+
mask &= df['Model'].str.contains(escaped_query, case=False, na=False, regex=True)
|
147 |
|
148 |
+
if 'W/10 π' in df.columns:
|
149 |
+
mask &= (df['W/10 π'] >= w10_range[0]) & (df['W/10 π'] <= w10_range[1])
|
150 |
+
|
151 |
+
filtered_df = df[mask]
|
152 |
|
153 |
# Add selected additional columns
|
154 |
columns = columns + [col for col in additional_cols if col in ADDITIONAL_COLS]
|
|
|
340 |
""")
|
341 |
|
342 |
def update_all_tables(query, param_ranges, is_foundation, w10_range, additional_cols):
|
343 |
+
try:
|
344 |
+
ugi_table = update_table(leaderboard_df, query, param_ranges, is_foundation, UGI_COLS, w10_range, additional_cols)
|
345 |
+
ws_df = leaderboard_df.sort_values(by='Reg+MyScore π', ascending=False)
|
346 |
+
ws_table = update_table(ws_df, query, param_ranges, is_foundation, WRITING_STYLE_COLS, w10_range, additional_cols)
|
|
|
|
|
|
|
|
|
347 |
|
348 |
+
arp_df = leaderboard_df.sort_values(by='Score π', ascending=False)
|
349 |
+
arp_df_na = arp_df[arp_df[['Dif', 'Cor']].isna().any(axis=1)]
|
350 |
+
arp_df = arp_df[~arp_df[['Dif', 'Cor']].isna().any(axis=1)]
|
351 |
+
|
352 |
+
arp_table = update_table(arp_df, query, param_ranges, is_foundation, ANIME_RATING_COLS, w10_range, additional_cols)
|
353 |
+
arp_na_table = update_table(arp_df_na, query, param_ranges, is_foundation, ANIME_RATING_COLS, w10_range, additional_cols).fillna('NA')
|
354 |
+
|
355 |
+
return ugi_table, ws_table, arp_table, arp_na_table
|
356 |
+
except Exception as e:
|
357 |
+
print(f"Error in update_all_tables: {e}")
|
358 |
+
# Return the original tables or empty tables
|
359 |
+
return leaderboard_df[UGI_COLS], leaderboard_df[WRITING_STYLE_COLS], leaderboard_df[ANIME_RATING_COLS], leaderboard_df[ANIME_RATING_COLS]
|
360 |
|
361 |
# Update the event handlers
|
362 |
inputs = [search_bar, filter_columns_size, model_type, w10_range, additional_columns]
|
|
|
387 |
outputs=[leaderboard_table_ugi, leaderboard_table_ws, leaderboard_table_arp, leaderboard_table_arp_na]
|
388 |
)
|
389 |
|
390 |
+
w10_range.release(
|
391 |
fn=update_all_tables,
|
392 |
inputs=[search_bar, filter_columns_size, model_type, w10_range, additional_columns],
|
393 |
outputs=[leaderboard_table_ugi, leaderboard_table_ws, leaderboard_table_arp, leaderboard_table_arp_na]
|