DontPlanToEnd commited on
Commit
890d28f
Β·
verified Β·
1 Parent(s): 81870c0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -21
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: pd.DataFrame, query: str, param_ranges: list, is_foundation: bool, columns: list, w10_range: tuple, additional_cols: list) -> pd.DataFrame:
114
- filtered_df = df.copy()
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
- filtered_df = filtered_df[filtered_df['Foundation'] == 1]
143
 
144
  if query:
145
  escaped_query = re.escape(query)
146
- filtered_df = filtered_df[filtered_df['Model'].str.contains(escaped_query, case=False, na=False, regex=True)]
147
 
148
- # Apply W/10 filtering
149
- if 'W/10 πŸ‘' in filtered_df.columns:
150
- filtered_df = filtered_df[(filtered_df['W/10 πŸ‘'] >= w10_range[0]) & (filtered_df['W/10 πŸ‘'] <= w10_range[1])]
 
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
- ugi_table = update_table(leaderboard_df, query, param_ranges, is_foundation, UGI_COLS, w10_range, additional_cols)
343
-
344
- ws_df = leaderboard_df.sort_values(by='Reg+MyScore πŸ†', ascending=False)
345
- ws_table = update_table(ws_df, query, param_ranges, is_foundation, WRITING_STYLE_COLS, w10_range, additional_cols)
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
- arp_table = update_table(arp_df, query, param_ranges, is_foundation, ANIME_RATING_COLS, w10_range, additional_cols)
352
- arp_na_table = update_table(arp_df_na, query, param_ranges, is_foundation, ANIME_RATING_COLS, w10_range, additional_cols).fillna('NA')
353
-
354
- return ugi_table, ws_table, arp_table, arp_na_table
 
 
 
 
 
 
 
 
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.change(
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]