DontPlanToEnd commited on
Commit
0f00687
Β·
verified Β·
1 Parent(s): e6838c5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -9
app.py CHANGED
@@ -65,6 +65,8 @@ def load_leaderboard_data(csv_file_path):
65
  numeric_columns = df.select_dtypes(include=[np.number]).columns
66
  for col in numeric_columns:
67
  df[col] = df[col].apply(lambda x: None if pd.isna(x) else round(x, 3))
 
 
68
 
69
  return df
70
  except Exception as e:
@@ -460,9 +462,20 @@ columnDefs = [
460
  "wrapHeaderText": True,
461
  "autoHeaderHeight": True
462
  },
463
- create_numeric_column("UGI πŸ†", width=120, sort="desc", sortIndex=0, filterParams={
464
- "defaultOption": "greaterThanOrEqual"
465
- }),
 
 
 
 
 
 
 
 
 
 
 
466
  create_numeric_column("W/10 πŸ‘", width=130, filterParams={
467
  "defaultOption": "greaterThanOrEqual",
468
  "filterOptions": ['equals', 'notEqual', 'greaterThan', 'greaterThanOrEqual', 'lessThan', 'lessThanOrEqual', 'inRange']
@@ -660,8 +673,8 @@ dashGridOptions = {
660
  "suppressCellFocus": True,
661
  "getRowId": "params => params.data.Model_Display",
662
  "pinnedTopRowData": [],
663
- "sortingOrder": ['desc', 'asc'],
664
  "suppressMaintainUnsortedOrder": True,
 
665
  "rowBuffer": 10,
666
  "maxBlocksInCache": 2,
667
  "onGridReady": {
@@ -911,10 +924,10 @@ def debug_callback(value):
911
  @app.callback(
912
  [Output('leaderboard-grid', 'rowData'),
913
  Output('model-type-filter', 'value'),
914
- Output('pinned-models-store', 'data')], # Add this output
915
  [Input('model-type-filter', 'value'),
916
  Input('na-model-filter', 'value'),
917
- Input('leaderboard-grid', 'pinnedTopRowData')], # Add this input
918
  prevent_initial_call=False
919
  )
920
  def update_grid(selected_types, show_na, pinned_rows):
@@ -926,6 +939,9 @@ def update_grid(selected_types, show_na, pinned_rows):
926
 
927
  filtered_df = df.copy()
928
 
 
 
 
929
  # Get pinned model IDs
930
  pinned_models = []
931
  if pinned_rows:
@@ -958,7 +974,7 @@ def update_grid(selected_types, show_na, pinned_rows):
958
  if show_na is None or not show_na:
959
  filtered_df = filtered_df[~has_na]
960
 
961
- # Sort by UGI
962
  filtered_df = filtered_df.sort_values('UGI πŸ†', ascending=False)
963
 
964
  records = filtered_df.to_dict('records')
@@ -970,12 +986,12 @@ def update_grid(selected_types, show_na, pinned_rows):
970
  [Input('additional-columns-filter', 'value')]
971
  )
972
  def update_columns(additional_columns):
973
- # Start with base columns up to UGI
974
  current_columns = columnDefs[:7] # Include up to UGI column
975
 
976
  # Add UGI category columns if selected
977
  if 'ugi_categories' in additional_columns:
978
- current_columns.extend(ugi_category_columns)
979
 
980
  # Add remaining base columns (W/10, NatInt, Coding, Political Lean)
981
  current_columns.extend(columnDefs[7:11])
 
65
  numeric_columns = df.select_dtypes(include=[np.number]).columns
66
  for col in numeric_columns:
67
  df[col] = df[col].apply(lambda x: None if pd.isna(x) else round(x, 3))
68
+
69
+ df = df.sort_values('UGI πŸ†', ascending=False)
70
 
71
  return df
72
  except Exception as e:
 
462
  "wrapHeaderText": True,
463
  "autoHeaderHeight": True
464
  },
465
+ {
466
+ "field": "UGI πŸ†",
467
+ "width": 120,
468
+ "filter": "agNumberColumnFilter",
469
+ "filterParams": {
470
+ "defaultOption": "greaterThanOrEqual"
471
+ },
472
+ "headerClass": "ag-left-aligned-header wrap-text",
473
+ "cellClass": "ag-left-aligned-cell",
474
+ "wrapHeaderText": True,
475
+ "autoHeaderHeight": True,
476
+ "suppressSizeToFit": True,
477
+ "sortingOrder": ['desc', 'asc']
478
+ },
479
  create_numeric_column("W/10 πŸ‘", width=130, filterParams={
480
  "defaultOption": "greaterThanOrEqual",
481
  "filterOptions": ['equals', 'notEqual', 'greaterThan', 'greaterThanOrEqual', 'lessThan', 'lessThanOrEqual', 'inRange']
 
673
  "suppressCellFocus": True,
674
  "getRowId": "params => params.data.Model_Display",
675
  "pinnedTopRowData": [],
 
676
  "suppressMaintainUnsortedOrder": True,
677
+ "suppressMultiSort": True,
678
  "rowBuffer": 10,
679
  "maxBlocksInCache": 2,
680
  "onGridReady": {
 
924
  @app.callback(
925
  [Output('leaderboard-grid', 'rowData'),
926
  Output('model-type-filter', 'value'),
927
+ Output('pinned-models-store', 'data')],
928
  [Input('model-type-filter', 'value'),
929
  Input('na-model-filter', 'value'),
930
+ Input('leaderboard-grid', 'pinnedTopRowData')],
931
  prevent_initial_call=False
932
  )
933
  def update_grid(selected_types, show_na, pinned_rows):
 
939
 
940
  filtered_df = df.copy()
941
 
942
+ # Sort by UGI initially
943
+ filtered_df = filtered_df.sort_values('UGI πŸ†', ascending=False)
944
+
945
  # Get pinned model IDs
946
  pinned_models = []
947
  if pinned_rows:
 
974
  if show_na is None or not show_na:
975
  filtered_df = filtered_df[~has_na]
976
 
977
+ # Always sort by UGI descending
978
  filtered_df = filtered_df.sort_values('UGI πŸ†', ascending=False)
979
 
980
  records = filtered_df.to_dict('records')
 
986
  [Input('additional-columns-filter', 'value')]
987
  )
988
  def update_columns(additional_columns):
989
+ # Start with base columns up to UGI column
990
  current_columns = columnDefs[:7] # Include up to UGI column
991
 
992
  # Add UGI category columns if selected
993
  if 'ugi_categories' in additional_columns:
994
+ current_columns.extend(ugi_category_columns) # Use the pre-defined ugi_category_columns
995
 
996
  # Add remaining base columns (W/10, NatInt, Coding, Political Lean)
997
  current_columns.extend(columnDefs[7:11])