James McCool
commited on
Commit
·
379368b
1
Parent(s):
5628499
Refactor session state management in app.py to enhance portfolio reset functionality and streamline player summary assignment. Introduce logic to toggle 'settings_base' state during form submissions, ensuring accurate handling of player exposures and improving user experience.
Browse files
app.py
CHANGED
|
@@ -811,8 +811,8 @@ with tab2:
|
|
| 811 |
col1, col2 = st.columns(2)
|
| 812 |
with col1:
|
| 813 |
if st.button('Reset Portfolio', key='reset_port'):
|
|
|
|
| 814 |
st.session_state['working_frame'] = st.session_state['base_frame'].copy()
|
| 815 |
-
st.session_state['player_summary'] = st.session_state['origin_player_exposures'].copy()
|
| 816 |
|
| 817 |
with col2:
|
| 818 |
with st.form(key='contest_size_form'):
|
|
@@ -994,7 +994,9 @@ with tab2:
|
|
| 994 |
stack_remove = st.multiselect("If Specific Stacks, Which to remove?", options=sorted(list(set(stack_dict.values()))), default=[])
|
| 995 |
|
| 996 |
submitted = st.form_submit_button("Submit")
|
|
|
|
| 997 |
if submitted:
|
|
|
|
| 998 |
parsed_frame = st.session_state['working_frame'].copy()
|
| 999 |
parsed_frame = parsed_frame[parsed_frame['Dupes'] <= max_dupes]
|
| 1000 |
parsed_frame = parsed_frame[parsed_frame['salary'] >= min_salary]
|
|
@@ -1030,6 +1032,7 @@ with tab2:
|
|
| 1030 |
|
| 1031 |
submitted = st.form_submit_button("Submit")
|
| 1032 |
if submitted:
|
|
|
|
| 1033 |
parsed_frame = st.session_state['working_frame'].copy()
|
| 1034 |
if player_remove:
|
| 1035 |
# Create mask for lineups that contain any of the removed players
|
|
@@ -1105,6 +1108,7 @@ with tab2:
|
|
| 1105 |
|
| 1106 |
submitted = st.form_submit_button("Trim")
|
| 1107 |
if submitted:
|
|
|
|
| 1108 |
st.write('initiated')
|
| 1109 |
parsed_frame = st.session_state['working_frame'].copy()
|
| 1110 |
|
|
@@ -1118,6 +1122,7 @@ with tab2:
|
|
| 1118 |
lineup_target = st.number_input("Lineups to produce", value=150, min_value=1, step=1)
|
| 1119 |
submitted = st.form_submit_button("Submit")
|
| 1120 |
if submitted:
|
|
|
|
| 1121 |
if preset_choice == 'Small Field (Heavy Own)':
|
| 1122 |
parsed_frame = small_field_preset(st.session_state['working_frame'], lineup_target, excluded_cols, sport_var)
|
| 1123 |
elif preset_choice == 'Large Field (Manage Diversity)':
|
|
@@ -1243,7 +1248,9 @@ with tab2:
|
|
| 1243 |
player_stats = []
|
| 1244 |
player_columns = [col for col in display_frame.columns if col not in excluded_cols]
|
| 1245 |
|
| 1246 |
-
if '
|
|
|
|
|
|
|
| 1247 |
if type_var == 'Showdown':
|
| 1248 |
for player in player_names:
|
| 1249 |
# Create mask for lineups where this player is Captain (first column)
|
|
@@ -1334,7 +1341,8 @@ with tab2:
|
|
| 1334 |
player_summary = pd.DataFrame(player_stats)
|
| 1335 |
player_summary = player_summary.sort_values('Lineup Count', ascending=False)
|
| 1336 |
st.session_state['player_summary'] = player_summary.copy()
|
| 1337 |
-
|
|
|
|
| 1338 |
|
| 1339 |
st.subheader("Player Summary")
|
| 1340 |
st.dataframe(
|
|
|
|
| 811 |
col1, col2 = st.columns(2)
|
| 812 |
with col1:
|
| 813 |
if st.button('Reset Portfolio', key='reset_port'):
|
| 814 |
+
st.session_state['settings_base'] = True
|
| 815 |
st.session_state['working_frame'] = st.session_state['base_frame'].copy()
|
|
|
|
| 816 |
|
| 817 |
with col2:
|
| 818 |
with st.form(key='contest_size_form'):
|
|
|
|
| 994 |
stack_remove = st.multiselect("If Specific Stacks, Which to remove?", options=sorted(list(set(stack_dict.values()))), default=[])
|
| 995 |
|
| 996 |
submitted = st.form_submit_button("Submit")
|
| 997 |
+
|
| 998 |
if submitted:
|
| 999 |
+
st.session_state['settings_base'] = False
|
| 1000 |
parsed_frame = st.session_state['working_frame'].copy()
|
| 1001 |
parsed_frame = parsed_frame[parsed_frame['Dupes'] <= max_dupes]
|
| 1002 |
parsed_frame = parsed_frame[parsed_frame['salary'] >= min_salary]
|
|
|
|
| 1032 |
|
| 1033 |
submitted = st.form_submit_button("Submit")
|
| 1034 |
if submitted:
|
| 1035 |
+
st.session_state['settings_base'] = False
|
| 1036 |
parsed_frame = st.session_state['working_frame'].copy()
|
| 1037 |
if player_remove:
|
| 1038 |
# Create mask for lineups that contain any of the removed players
|
|
|
|
| 1108 |
|
| 1109 |
submitted = st.form_submit_button("Trim")
|
| 1110 |
if submitted:
|
| 1111 |
+
st.session_state['settings_base'] = False
|
| 1112 |
st.write('initiated')
|
| 1113 |
parsed_frame = st.session_state['working_frame'].copy()
|
| 1114 |
|
|
|
|
| 1122 |
lineup_target = st.number_input("Lineups to produce", value=150, min_value=1, step=1)
|
| 1123 |
submitted = st.form_submit_button("Submit")
|
| 1124 |
if submitted:
|
| 1125 |
+
st.session_state['settings_base'] = False
|
| 1126 |
if preset_choice == 'Small Field (Heavy Own)':
|
| 1127 |
parsed_frame = small_field_preset(st.session_state['working_frame'], lineup_target, excluded_cols, sport_var)
|
| 1128 |
elif preset_choice == 'Large Field (Manage Diversity)':
|
|
|
|
| 1248 |
player_stats = []
|
| 1249 |
player_columns = [col for col in display_frame.columns if col not in excluded_cols]
|
| 1250 |
|
| 1251 |
+
if st.session_state['settings_base'] and 'origin_player_exposures' in st.session_state:
|
| 1252 |
+
st.session_state['player_summary'] = st.session_state['origin_player_exposures']
|
| 1253 |
+
else:
|
| 1254 |
if type_var == 'Showdown':
|
| 1255 |
for player in player_names:
|
| 1256 |
# Create mask for lineups where this player is Captain (first column)
|
|
|
|
| 1341 |
player_summary = pd.DataFrame(player_stats)
|
| 1342 |
player_summary = player_summary.sort_values('Lineup Count', ascending=False)
|
| 1343 |
st.session_state['player_summary'] = player_summary.copy()
|
| 1344 |
+
if 'origin_player_exposures' not in st.session_state:
|
| 1345 |
+
st.session_state['origin_player_exposures'] = player_summary.copy()
|
| 1346 |
|
| 1347 |
st.subheader("Player Summary")
|
| 1348 |
st.dataframe(
|