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