James McCool commited on
Commit
bbf380a
·
1 Parent(s): fc490c5

Add user interface enhancements in app.py: introduce new selection options for site, sport, game type, contest size, and field strength, along with a clear data reset button, improving user experience and interaction within the application.

Browse files
Files changed (1) hide show
  1. app.py +21 -20
app.py CHANGED
@@ -22,9 +22,27 @@ from global_func.trim_portfolio import trim_portfolio
22
  from global_func.get_portfolio_names import get_portfolio_names
23
 
24
  freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Win%': '{:.2%}'}
 
25
  player_wrong_names_mlb = ['Enrique Hernandez']
26
  player_right_names_mlb = ['Kike Hernandez']
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  tab1, tab2 = st.tabs(["Data Load", "Manage Portfolio"])
29
  with tab1:
30
  if st.button('Clear data', key='reset1'):
@@ -231,7 +249,7 @@ with tab1:
231
  projections['player_names'] = projections['player_names'].map(lambda x: projections_match_dict.get(x, x))
232
  st.session_state['projections_df'] = projections
233
 
234
- if 'Stack' not in st.session_state['portfolio'].columns:
235
  team_dict = dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['team']))
236
  st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].apply(
237
  lambda row: Counter(
@@ -763,27 +781,10 @@ with tab1:
763
 
764
  with tab2:
765
  if 'portfolio' in st.session_state and 'projections_df' in st.session_state:
766
-
 
767
 
768
  excluded_cols = ['salary', 'median', 'Own', 'Finish_percentile', 'Dupes', 'Stack', 'Win%', 'Lineup Edge', 'Weighted Own', 'Geomean']
769
- with st.container():
770
-
771
- col1, col2, col3 = st.columns(3)
772
- with col1:
773
- site_var = st.selectbox("Select Site", ['Draftkings', 'Fanduel'])
774
- if st.button('Reset Portfolio', key='reset_port'):
775
- del st.session_state['working_frame']
776
-
777
- if st.button('Clear data', key='reset3'):
778
- st.session_state.clear()
779
-
780
- with col2:
781
- sport_var = st.selectbox("Select Sport", ['NFL', 'MLB', 'NBA', 'NHL', 'MMA', 'CS2'])
782
- type_var = st.selectbox("Select Game Type", ['Classic', 'Showdown'])
783
-
784
- with col3:
785
- Contest_Size = st.number_input("Enter Contest Size", value=25000, min_value=1, step=1)
786
- strength_var = st.selectbox("Select field strength", ['Average', 'Sharp', 'Weak'])
787
 
788
  if 'working_frame' not in st.session_state:
789
  st.session_state['working_frame'] = st.session_state['origin_portfolio'].copy()
 
22
  from global_func.get_portfolio_names import get_portfolio_names
23
 
24
  freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Win%': '{:.2%}'}
25
+ stacking_sports = ['MLB', 'NHL', 'NFL']
26
  player_wrong_names_mlb = ['Enrique Hernandez']
27
  player_right_names_mlb = ['Kike Hernandez']
28
 
29
+ with st.container():
30
+
31
+ col1, col2, col3 = st.columns(3)
32
+ with col1:
33
+ site_var = st.selectbox("Select Site", ['Draftkings', 'Fanduel'])
34
+
35
+ if st.button('Clear data', key='reset3'):
36
+ st.session_state.clear()
37
+
38
+ with col2:
39
+ sport_var = st.selectbox("Select Sport", ['NFL', 'MLB', 'NBA', 'NHL', 'MMA', 'CS2', 'TENNIS', 'GOLF'])
40
+ type_var = st.selectbox("Select Game Type", ['Classic', 'Showdown'])
41
+
42
+ with col3:
43
+ Contest_Size = st.number_input("Enter Contest Size", value=25000, min_value=1, step=1)
44
+ strength_var = st.selectbox("Select field strength", ['Average', 'Sharp', 'Weak'])
45
+
46
  tab1, tab2 = st.tabs(["Data Load", "Manage Portfolio"])
47
  with tab1:
48
  if st.button('Clear data', key='reset1'):
 
249
  projections['player_names'] = projections['player_names'].map(lambda x: projections_match_dict.get(x, x))
250
  st.session_state['projections_df'] = projections
251
 
252
+ if 'Stack' not in st.session_state['portfolio'].columns and sport_var in stacking_sports:
253
  team_dict = dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['team']))
254
  st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].apply(
255
  lambda row: Counter(
 
781
 
782
  with tab2:
783
  if 'portfolio' in st.session_state and 'projections_df' in st.session_state:
784
+ if st.button('Reset Portfolio', key='reset_port'):
785
+ del st.session_state['working_frame']
786
 
787
  excluded_cols = ['salary', 'median', 'Own', 'Finish_percentile', 'Dupes', 'Stack', 'Win%', 'Lineup Edge', 'Weighted Own', 'Geomean']
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
788
 
789
  if 'working_frame' not in st.session_state:
790
  st.session_state['working_frame'] = st.session_state['origin_portfolio'].copy()