James McCool commited on
Commit
40e191a
·
1 Parent(s): a7fac7f

Refactor player filtering logic in app.py to utilize dynamic player column selection. Updated include and remove masks to improve accuracy in filtering lineups based on user-defined criteria, enhancing overall functionality and maintainability.

Browse files
Files changed (1) hide show
  1. app.py +26 -10
app.py CHANGED
@@ -1315,37 +1315,53 @@ with tab2:
1315
  if reg_submitted:
1316
  st.session_state['settings_base'] = False
1317
  parsed_frame = st.session_state['working_frame'].copy()
 
 
 
1318
 
1319
- # Filter rows that contain ALL conditional_include_players AND NONE of conditional_remove_players
1320
  if conditional_include_players:
1321
- include_mask = parsed_frame['player_names'].apply(lambda x: all(player in x for player in conditional_include_players))
 
 
1322
  else:
1323
- include_mask = True
1324
 
1325
  if conditional_remove_players:
1326
- remove_mask = parsed_frame['player_names'].apply(lambda x: not any(player in x for player in conditional_remove_players))
 
 
1327
  else:
1328
- remove_mask = True
1329
 
1330
  parsed_frame = parsed_frame[include_mask & remove_mask]
 
1331
  st.session_state['working_frame'] = parsed_frame.sort_values(by='median', ascending=False).reset_index(drop=True)
1332
  st.session_state['export_merge'] = st.session_state['working_frame'].copy()
1333
  elif exp_submitted:
1334
  st.session_state['settings_base'] = False
1335
  parsed_frame = st.session_state['export_base'].copy()
1336
 
1337
- # Filter rows that contain ALL conditional_include_players AND NONE of conditional_remove_players
 
 
 
1338
  if conditional_include_players:
1339
- include_mask = parsed_frame['player_names'].apply(lambda x: all(player in x for player in conditional_include_players))
 
 
1340
  else:
1341
- include_mask = True
1342
 
1343
  if conditional_remove_players:
1344
- remove_mask = parsed_frame['player_names'].apply(lambda x: not any(player in x for player in conditional_remove_players))
 
 
1345
  else:
1346
- remove_mask = True
1347
 
1348
  parsed_frame = parsed_frame[include_mask & remove_mask]
 
1349
  st.session_state['export_base'] = parsed_frame.sort_values(by='median', ascending=False).reset_index(drop=True)
1350
  st.session_state['export_merge'] = st.session_state['export_base'].copy()
1351
 
 
1315
  if reg_submitted:
1316
  st.session_state['settings_base'] = False
1317
  parsed_frame = st.session_state['working_frame'].copy()
1318
+
1319
+ # Get player columns (excluding non-player columns)
1320
+ player_columns = [col for col in parsed_frame.columns if col not in excluded_cols]
1321
 
1322
+ # Create masks similar to lines 1205-1211
1323
  if conditional_include_players:
1324
+ include_mask = parsed_frame[player_columns].apply(
1325
+ lambda row: all(player in list(row) for player in conditional_include_players), axis=1
1326
+ )
1327
  else:
1328
+ include_mask = pd.Series([True] * len(parsed_frame))
1329
 
1330
  if conditional_remove_players:
1331
+ remove_mask = parsed_frame[player_columns].apply(
1332
+ lambda row: not any(player in list(row) for player in conditional_remove_players), axis=1
1333
+ )
1334
  else:
1335
+ remove_mask = pd.Series([True] * len(parsed_frame))
1336
 
1337
  parsed_frame = parsed_frame[include_mask & remove_mask]
1338
+
1339
  st.session_state['working_frame'] = parsed_frame.sort_values(by='median', ascending=False).reset_index(drop=True)
1340
  st.session_state['export_merge'] = st.session_state['working_frame'].copy()
1341
  elif exp_submitted:
1342
  st.session_state['settings_base'] = False
1343
  parsed_frame = st.session_state['export_base'].copy()
1344
 
1345
+ # Get player columns (excluding non-player columns)
1346
+ player_columns = [col for col in parsed_frame.columns if col not in excluded_cols]
1347
+
1348
+ # Create masks similar to lines 1205-1211
1349
  if conditional_include_players:
1350
+ include_mask = parsed_frame[player_columns].apply(
1351
+ lambda row: all(player in list(row) for player in conditional_include_players), axis=1
1352
+ )
1353
  else:
1354
+ include_mask = pd.Series([True] * len(parsed_frame))
1355
 
1356
  if conditional_remove_players:
1357
+ remove_mask = parsed_frame[player_columns].apply(
1358
+ lambda row: not any(player in list(row) for player in conditional_remove_players), axis=1
1359
+ )
1360
  else:
1361
+ remove_mask = pd.Series([True] * len(parsed_frame))
1362
 
1363
  parsed_frame = parsed_frame[include_mask & remove_mask]
1364
+
1365
  st.session_state['export_base'] = parsed_frame.sort_values(by='median', ascending=False).reset_index(drop=True)
1366
  st.session_state['export_merge'] = st.session_state['export_base'].copy()
1367