James McCool commited on
Commit
89a1dc0
·
1 Parent(s): 167d41b

adding dynamic showdown options

Browse files
src/sim_func_hold/showdown_functions.py CHANGED
@@ -5,14 +5,9 @@ from pymongo import MongoClient
5
  from database import db
6
 
7
  @st.cache_data(ttl = 599)
8
- def init_DK_SD_seed_frames(slate, split):
9
- if slate == 'Showdown #1':
10
- collection = db["DK_NFL_SD_seed_frame"]
11
- elif slate == 'Showdown #2':
12
- collection = db["DK_NFL_Secondary_SD_seed_frame"]
13
- elif slate == 'Showdown #3':
14
- collection = db["DK_NFL_Auxiliary_SD_seed_frame"]
15
-
16
  cursor = collection.find().limit(split)
17
 
18
  raw_display = pd.DataFrame(list(cursor))
@@ -22,14 +17,8 @@ def init_DK_SD_seed_frames(slate, split):
22
  return DK_seed
23
 
24
  @st.cache_data(ttl = 599)
25
- def init_FD_SD_seed_frames(slate, split):
26
- if slate == 'Showdown #1':
27
- collection = db[f"FD_NFL_SD_seed_frame"]
28
- elif slate == 'Showdown #2':
29
- collection = db[f"FD_NFL_Secondary_SD_seed_frame"]
30
- elif slate == 'Showdown #3':
31
- collection = db[f"FD_NFL_Auxiliary_SD_seed_frame"]
32
-
33
  cursor = collection.find().limit(split)
34
 
35
  raw_display = pd.DataFrame(list(cursor))
 
5
  from database import db
6
 
7
  @st.cache_data(ttl = 599)
8
+ def init_DK_SD_seed_frames(slate, split, translation_dict):
9
+
10
+ collection = db[translation_dict[slate]]
 
 
 
 
 
11
  cursor = collection.find().limit(split)
12
 
13
  raw_display = pd.DataFrame(list(cursor))
 
17
  return DK_seed
18
 
19
  @st.cache_data(ttl = 599)
20
+ def init_FD_SD_seed_frames(slate, split, translation_dict):
21
+ collection = db[translation_dict[slate]]
 
 
 
 
 
 
22
  cursor = collection.find().limit(split)
23
 
24
  raw_display = pd.DataFrame(list(cursor))
src/streamlit_app.py CHANGED
@@ -20,6 +20,27 @@ fd_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'sal
20
  dk_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
21
  fd_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  st.markdown("""
24
  <style>
25
  /* Tab styling */
@@ -57,14 +78,51 @@ st.markdown("""
57
 
58
  </style>""", unsafe_allow_html=True)
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  if st.button("Load/Reset Data", key='reset2'):
61
  st.cache_data.clear()
62
  for key in st.session_state.keys():
63
  del st.session_state[key]
64
  DK_seed = init_DK_seed_frames('Main Slate', 10000)
65
- DK_sd_seed = init_DK_SD_seed_frames('Main Slate', 10000)
66
  FD_seed = init_FD_seed_frames('Main Slate', 10000)
67
- FD_sd_seed = init_FD_SD_seed_frames('Main Slate', 10000)
68
  dk_raw, fd_raw = init_baselines('Main Slate')
69
  dk_sd_raw, fd_sd_raw = init_SD_baselines('Main Slate')
70
  dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
@@ -557,7 +615,7 @@ if selected_tab == "Showdown Contest Sims":
557
  sim_site_var2 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var2')
558
 
559
  with slate_data_col:
560
- sim_slate_var2 = st.radio("Which data are you loading?", ('Showdown #1', 'Showdown #2', 'Showdown #3'), key='sim_slate_var2')
561
 
562
  with contest_size_col:
563
  contest_var2 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large'), key='contest_var2')
@@ -586,12 +644,12 @@ if selected_tab == "Showdown Contest Sims":
586
 
587
  if 'sd_working_seed' not in st.session_state:
588
  if sim_site_var2 == 'Draftkings':
589
- st.session_state.sd_working_seed = init_DK_SD_seed_frames(sim_slate_var2, sharp_split)
590
  export_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
591
  raw_baselines = dk_raw
592
  column_names = dk_sd_columns
593
  elif sim_site_var2 == 'Fanduel':
594
- st.session_state.sd_working_seed = init_FD_SD_seed_frames(sim_slate_var2, sharp_split)
595
  export_id_dict = dict(zip(fd_raw.Player, fd_raw.player_ID))
596
  raw_baselines = fd_raw
597
  column_names = fd_sd_columns
 
20
  dk_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
21
  fd_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
22
 
23
+ showdown_selections = ['Showdown #1', 'Showdown #2', 'Showdown #3', 'Showdown #4', 'Showdown #5', 'Showdown #6', 'Showdown #7', 'Showdown #8', 'Showdown #9', 'Showdown #10', 'Showdown #11', 'Showdown #12', 'Showdown #13', 'Showdown #14', 'Showdown #15']
24
+ dk_db_showdown_selections = ['DK_NFL_SD_seed_frame_Showdown #1', 'DK_NFL_SD_seed_frame_Showdown #2', 'DK_NFL_SD_seed_frame_Showdown #3', 'DK_NFL_SD_seed_frame_Showdown #4', 'DK_NFL_SD_seed_frame_Showdown #5', 'DK_NFL_SD_seed_frame_Showdown #6',
25
+ 'DK_NFL_SD_seed_frame_Showdown #7', 'DK_NFL_SD_seed_frame_Showdown #8', 'DK_NFL_SD_seed_frame_Showdown #9', 'DK_NFL_SD_seed_frame_Showdown #10', 'DK_NFL_SD_seed_frame_Showdown #11', 'DK_NFL_SD_seed_frame_Showdown #12', 'DK_NFL_SD_seed_frame_Showdown #13',
26
+ 'DK_NFL_SD_seed_frame_Showdown #14', 'DK_NFL_SD_seed_frame_Showdown #15']
27
+ fd_db_showdown_selections = ['FD_NFL_SD_seed_frame_Showdown #1', 'FD_NFL_SD_seed_frame_Showdown #2', 'FD_NFL_SD_seed_frame_Showdown #3', 'FD_NFL_SD_seed_frame_Showdown #4', 'FD_NFL_SD_seed_frame_Showdown #5', 'FD_NFL_SD_seed_frame_Showdown #6',
28
+ 'FD_NFL_SD_seed_frame_Showdown #7', 'FD_NFL_SD_seed_frame_Showdown #8', 'FD_NFL_SD_seed_frame_Showdown #9', 'FD_NFL_SD_seed_frame_Showdown #10', 'FD_NFL_SD_seed_frame_Showdown #11', 'FD_NFL_SD_seed_frame_Showdown #12', 'FD_NFL_SD_seed_frame_Showdown #13',
29
+ 'FD_NFL_SD_seed_frame_Showdown #14', 'FD_NFL_SD_seed_frame_Showdown #15']
30
+
31
+ dk_showdown_db_translation = dict(zip(showdown_selections, dk_db_showdown_selections))
32
+ fd_showdown_db_translation = dict(zip(showdown_selections, fd_db_showdown_selections))
33
+
34
+ # Probably should have done this in a dictionary to start with
35
+ wrong_team_names = ['Denver Broncos', 'Washington Commanders', 'Cincinnati Bengals', 'Arizona Cardinals', 'Los Angeles Rams', 'Pittsburgh Steelers',
36
+ 'Jacksonville Jaguars', 'New England Patriots', 'Tampa Bay Buccaneers', 'San Francisco 49ers', 'Green Bay Packers', 'New York Jets',
37
+ 'Indianapolis Colts', 'Miami Dolphins', 'Detroit Lions', 'Las Vegas Raiders', 'Atlanta Falcons', 'Seattle Seahawks', 'Houston Texans',
38
+ 'New Orleans Saints', 'Carolina Panthers', 'New York Giants', 'Cleveland Browns', 'Tennessee Titans', 'Philadelphia Eagles', 'Dallas Cowboys',
39
+ 'Kansas City Chiefs', 'Los Angeles Chargers', 'Baltimore Ravens', 'Buffalo Bills', 'Minnesota Vikings', 'Chicago Bears']
40
+ right_name_teams = ['Broncos', 'Commanders', 'Bengals', 'Cardinals', 'Rams', 'Steelers', 'Jaguars', 'Patriots', 'Buccaneers', '49ers', 'Packers',
41
+ 'Jets', 'Colts', 'Dolphins', 'Lions', 'Raiders', 'Falcons', 'Seahawks', 'Texans', 'Saints', 'Panthers', 'Giants', 'Browns', 'Titans', 'Eagles', 'Cowboys',
42
+ 'Chiefs', 'Chargers', 'Ravens', 'Bills', 'Vikings', 'Bears']
43
+
44
  st.markdown("""
45
  <style>
46
  /* Tab styling */
 
78
 
79
  </style>""", unsafe_allow_html=True)
80
 
81
+ @st.cache_resource(ttl=60)
82
+ def define_dk_showdown_slates():
83
+ collection = db["DK_SD_NFL_ROO"]
84
+ cursor = collection.find()
85
+ raw_display = pd.DataFrame(list(cursor))
86
+ unique_slates = raw_display['slate'].unique()
87
+
88
+ slate_names = []
89
+
90
+ for slate in unique_slates:
91
+ slate_data = raw_display[raw_display['slate'] == slate]
92
+ slate_name = slate_data.iloc[0]['Team'] + ' vs. ' + slate_data.iloc[0]['Opp']
93
+ slate_names.append(slate_name)
94
+
95
+ slate_name_lookup = dict(zip(slate_names, unique_slates))
96
+ return slate_names, slate_name_lookup
97
+
98
+ @st.cache_resource(ttl=60)
99
+ def define_fd_showdown_slates():
100
+ collection = db["FD_SD_NFL_ROO"]
101
+ cursor = collection.find()
102
+ raw_display = pd.DataFrame(list(cursor))
103
+ unique_slates = raw_display['slate'].unique()
104
+
105
+ slate_names = []
106
+
107
+ for slate in unique_slates:
108
+ slate_data = raw_display[raw_display['slate'] == slate]
109
+ slate_name = slate_data.iloc[0]['Team'] + ' vs. ' + slate_data.iloc[0]['Opp']
110
+ slate_names.append(slate_name)
111
+
112
+ slate_name_lookup = dict(zip(slate_names, unique_slates))
113
+ return slate_names, slate_name_lookup
114
+
115
+ slate_names_dk, slate_name_lookup_dk = define_dk_showdown_slates()
116
+ slate_names_fd, slate_name_lookup_fd = define_fd_showdown_slates()
117
+
118
  if st.button("Load/Reset Data", key='reset2'):
119
  st.cache_data.clear()
120
  for key in st.session_state.keys():
121
  del st.session_state[key]
122
  DK_seed = init_DK_seed_frames('Main Slate', 10000)
123
+ DK_sd_seed = init_DK_SD_seed_frames(slate_names_dk[0], 10000, dk_showdown_db_translation)
124
  FD_seed = init_FD_seed_frames('Main Slate', 10000)
125
+ FD_sd_seed = init_FD_SD_seed_frames(slate_names_fd[0], 10000, fd_showdown_db_translation)
126
  dk_raw, fd_raw = init_baselines('Main Slate')
127
  dk_sd_raw, fd_sd_raw = init_SD_baselines('Main Slate')
128
  dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
 
615
  sim_site_var2 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var2')
616
 
617
  with slate_data_col:
618
+ sim_slate_var2 = st.radio("Which data are you loading?", slate_names_dk if sim_site_var2 == 'Draftkings' else slate_names_fd, key='sim_slate_var2')
619
 
620
  with contest_size_col:
621
  contest_var2 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large'), key='contest_var2')
 
644
 
645
  if 'sd_working_seed' not in st.session_state:
646
  if sim_site_var2 == 'Draftkings':
647
+ st.session_state.sd_working_seed = init_DK_SD_seed_frames(slate_name_lookup_dk[sim_slate_var2], sharp_split, dk_showdown_db_translation)
648
  export_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
649
  raw_baselines = dk_raw
650
  column_names = dk_sd_columns
651
  elif sim_site_var2 == 'Fanduel':
652
+ st.session_state.sd_working_seed = init_FD_SD_seed_frames(slate_name_lookup_fd[sim_slate_var2], sharp_split, fd_showdown_db_translation)
653
  export_id_dict = dict(zip(fd_raw.Player, fd_raw.player_ID))
654
  raw_baselines = fd_raw
655
  column_names = fd_sd_columns