James McCool commited on
Commit
67eb3a1
·
1 Parent(s): 9d5e50f

Adding exclusions from exposure management, fixing some database query stuff

Browse files
Files changed (3) hide show
  1. app.py +3 -2
  2. database_queries.py +1 -1
  3. global_func/exposure_spread.py +3 -1
app.py CHANGED
@@ -2545,6 +2545,7 @@ if selected_tab == 'Manage Portfolio':
2545
  ignore_stacks = []
2546
  remove_teams_exposure = st.multiselect("Removed/Locked teams?", options=sorted(list(set(st.session_state['projections_df']['team'].unique()))), default=[])
2547
  specific_replacements = st.multiselect("Specific Replacements?", options=sorted(list(set(get_portfolio_names(st.session_state['working_frame'])))), default=[])
 
2548
  specific_columns = st.multiselect("Specific Positions?", options=sorted(list(st.session_state['player_columns'])), default=[])
2549
  submitted_col, export_col = st.columns(2)
2550
  st.info("Portfolio Button applies to your overall Portfolio, Export button applies to your Custom Export")
@@ -2556,7 +2557,7 @@ if selected_tab == 'Manage Portfolio':
2556
  st.session_state['settings_base'] = False
2557
  # Prepare DataFrame for exposure_spread to avoid categorical issues
2558
  working_frame_prepared = prepare_dataframe_for_exposure_spread(st.session_state['working_frame'], st.session_state['player_columns'])
2559
- parsed_frame = exposure_spread(working_frame_prepared, st.session_state['exposure_player'], exposure_target, comp_salary_below, comp_salary_above, ignore_stacks, remove_teams_exposure, specific_replacements, specific_columns, st.session_state['portfolio_inc_proj'], sport_var, type_var, salary_max, stacking_sports)
2560
 
2561
  # Use consolidated calculation function
2562
  parsed_frame = calculate_lineup_metrics(
@@ -2593,7 +2594,7 @@ if selected_tab == 'Manage Portfolio':
2593
  st.session_state['settings_base'] = False
2594
  # Prepare DataFrame for exposure_spread to avoid categorical issues
2595
  export_base_prepared = prepare_dataframe_for_exposure_spread(st.session_state['export_base'], st.session_state['player_columns'])
2596
- parsed_frame = exposure_spread(export_base_prepared, st.session_state['exposure_player'], exposure_target, comp_salary_below, comp_salary_above, ignore_stacks, remove_teams_exposure, specific_replacements, specific_columns, st.session_state['portfolio_inc_proj'], sport_var, type_var, salary_max, stacking_sports)
2597
 
2598
  # Use consolidated calculation function for export
2599
  parsed_frame = calculate_lineup_metrics(
 
2545
  ignore_stacks = []
2546
  remove_teams_exposure = st.multiselect("Removed/Locked teams?", options=sorted(list(set(st.session_state['projections_df']['team'].unique()))), default=[])
2547
  specific_replacements = st.multiselect("Specific Replacements?", options=sorted(list(set(get_portfolio_names(st.session_state['working_frame'])))), default=[])
2548
+ specific_exclusions = st.multiselect("Specific exclusions?", options=sorted(list(set(get_portfolio_names(st.session_state['working_frame'])))), default=[])
2549
  specific_columns = st.multiselect("Specific Positions?", options=sorted(list(st.session_state['player_columns'])), default=[])
2550
  submitted_col, export_col = st.columns(2)
2551
  st.info("Portfolio Button applies to your overall Portfolio, Export button applies to your Custom Export")
 
2557
  st.session_state['settings_base'] = False
2558
  # Prepare DataFrame for exposure_spread to avoid categorical issues
2559
  working_frame_prepared = prepare_dataframe_for_exposure_spread(st.session_state['working_frame'], st.session_state['player_columns'])
2560
+ parsed_frame = exposure_spread(working_frame_prepared, st.session_state['exposure_player'], exposure_target, comp_salary_below, comp_salary_above, ignore_stacks, remove_teams_exposure, specific_replacements, specific_exclusions, specific_columns, st.session_state['portfolio_inc_proj'], sport_var, type_var, salary_max, stacking_sports)
2561
 
2562
  # Use consolidated calculation function
2563
  parsed_frame = calculate_lineup_metrics(
 
2594
  st.session_state['settings_base'] = False
2595
  # Prepare DataFrame for exposure_spread to avoid categorical issues
2596
  export_base_prepared = prepare_dataframe_for_exposure_spread(st.session_state['export_base'], st.session_state['player_columns'])
2597
+ parsed_frame = exposure_spread(export_base_prepared, st.session_state['exposure_player'], exposure_target, comp_salary_below, comp_salary_above, ignore_stacks, remove_teams_exposure, specific_replacements, specific_exclusions, specific_columns, st.session_state['portfolio_inc_proj'], sport_var, type_var, salary_max, stacking_sports)
2598
 
2599
  # Use consolidated calculation function for export
2600
  parsed_frame = calculate_lineup_metrics(
database_queries.py CHANGED
@@ -93,7 +93,7 @@ def init_nfl_baselines(type_var: str, site_var: str, slate_var: str):
93
  fd_sd_roo_raw = fd_sd_roo_raw.drop(columns=['player_id', 'slate'])
94
 
95
  dk_sd_roo_raw = dk_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
96
- fd_sd_roo_raw = fd_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain_ownership'})
97
 
98
  dk_roo_raw = None
99
  fd_roo_raw = None
 
93
  fd_sd_roo_raw = fd_sd_roo_raw.drop(columns=['player_id', 'slate'])
94
 
95
  dk_sd_roo_raw = dk_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
96
+ fd_sd_roo_raw = fd_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
97
 
98
  dk_roo_raw = None
99
  fd_roo_raw = None
global_func/exposure_spread.py CHANGED
@@ -173,7 +173,9 @@ def check_salary_eligibility(current_lineup_salary, current_player, new_player,
173
  salary_diff = calculate_salary_difference(current_player, new_player, column_name, projections_df, type_var)
174
  return current_lineup_salary + salary_diff <= salary_max
175
 
176
- def exposure_spread(working_frame, exposure_player, exposure_target, comp_salary_below, comp_salary_above, ignore_stacks, remove_teams, specific_replacements, specific_columns, projections_df, sport_var, type_var, salary_max, stacking_sports):
 
 
177
  comparable_players = projections_df[projections_df['player_names'] == exposure_player]
178
 
179
  comparable_players = comparable_players.reset_index(drop=True)
 
173
  salary_diff = calculate_salary_difference(current_player, new_player, column_name, projections_df, type_var)
174
  return current_lineup_salary + salary_diff <= salary_max
175
 
176
+ def exposure_spread(working_frame, exposure_player, exposure_target, comp_salary_below, comp_salary_above, ignore_stacks, remove_teams, specific_replacements, specific_exclusions, specific_columns, projections_df, sport_var, type_var, salary_max, stacking_sports):
177
+ if specific_exclusions != []:
178
+ projections_df = projections_df[~projections_df['player_names'].isin(specific_exclusions)]
179
  comparable_players = projections_df[projections_df['player_names'] == exposure_player]
180
 
181
  comparable_players = comparable_players.reset_index(drop=True)