James McCool
commited on
Commit
·
67eb3a1
1
Parent(s):
9d5e50f
Adding exclusions from exposure management, fixing some database query stuff
Browse files- app.py +3 -2
- database_queries.py +1 -1
- 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': '
|
| 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)
|