Spaces:
Running
Running
James McCool
commited on
Commit
·
4886b47
1
Parent(s):
be18476
Refactor init_DK_seed_frames and init_FD_seed_frames functions in app.py to accept slate_var as a parameter, allowing for dynamic database collection selection based on slate type. Updated related function calls throughout the application to enhance flexibility in data loading for Draftkings and Fanduel simulations.
Browse files
app.py
CHANGED
|
@@ -52,28 +52,40 @@ st.markdown("""
|
|
| 52 |
</style>""", unsafe_allow_html=True)
|
| 53 |
|
| 54 |
@st.cache_data(ttl = 600)
|
| 55 |
-
def init_DK_seed_frames(sharp_split):
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
|
| 66 |
@st.cache_data(ttl = 599)
|
| 67 |
-
def init_FD_seed_frames(sharp_split):
|
| 68 |
-
|
| 69 |
-
collection = db["FD_NHL_seed_frame"]
|
| 70 |
-
cursor = collection.find().limit(sharp_split)
|
| 71 |
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
-
|
| 77 |
|
| 78 |
@st.cache_data(ttl = 599)
|
| 79 |
def init_baselines():
|
|
@@ -167,13 +179,13 @@ with tab1:
|
|
| 167 |
st.cache_data.clear()
|
| 168 |
for key in st.session_state.keys():
|
| 169 |
del st.session_state[key]
|
| 170 |
-
DK_seed = init_DK_seed_frames(10000)
|
| 171 |
-
FD_seed = init_FD_seed_frames(10000)
|
| 172 |
dk_raw, fd_raw, teams_playing_count = init_baselines()
|
| 173 |
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 174 |
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 175 |
|
| 176 |
-
sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', '
|
| 177 |
sim_site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var1')
|
| 178 |
|
| 179 |
contest_var1 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large', 'Custom'))
|
|
@@ -237,17 +249,15 @@ with tab1:
|
|
| 237 |
|
| 238 |
else:
|
| 239 |
if sim_site_var1 == 'Draftkings':
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
column_names = dk_columns
|
| 245 |
elif sim_site_var1 == 'Fanduel':
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
column_names = fd_columns
|
| 251 |
|
| 252 |
st.session_state.maps_dict = {
|
| 253 |
'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
|
|
@@ -628,7 +638,7 @@ with tab2:
|
|
| 628 |
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 629 |
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 630 |
|
| 631 |
-
|
| 632 |
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
| 633 |
sharp_split_var = st.number_input("How many lineups do you want?", value=10000, max_value=500000, min_value=10000, step=10000)
|
| 634 |
lineup_num_var = st.number_input("How many lineups do you want to display?", min_value=1, max_value=500, value=10, step=1)
|
|
@@ -675,20 +685,18 @@ with tab2:
|
|
| 675 |
st.session_state.data_export_display = st.session_state.working_seed[0:lineup_num_var]
|
| 676 |
elif 'working_seed' not in st.session_state:
|
| 677 |
if site_var1 == 'Draftkings':
|
| 678 |
-
|
| 679 |
-
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 680 |
|
| 681 |
-
|
| 682 |
-
|
| 683 |
-
|
| 684 |
|
| 685 |
elif site_var1 == 'Fanduel':
|
| 686 |
-
|
| 687 |
-
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
|
| 688 |
|
| 689 |
-
|
| 690 |
-
|
| 691 |
-
|
| 692 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 693 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 694 |
st.session_state.data_export_display = st.session_state.working_seed[0:lineup_num_var]
|
|
@@ -709,7 +717,7 @@ with tab2:
|
|
| 709 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 710 |
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
|
| 711 |
elif 'working_seed' not in st.session_state:
|
| 712 |
-
if
|
| 713 |
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 714 |
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 715 |
|
|
@@ -726,7 +734,7 @@ with tab2:
|
|
| 726 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 727 |
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
|
| 728 |
elif 'working_seed' not in st.session_state:
|
| 729 |
-
if
|
| 730 |
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
|
| 731 |
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 732 |
|
|
|
|
| 52 |
</style>""", unsafe_allow_html=True)
|
| 53 |
|
| 54 |
@st.cache_data(ttl = 600)
|
| 55 |
+
def init_DK_seed_frames(sharp_split, slate_var):
|
| 56 |
+
|
| 57 |
+
if slate_var == 'Main Slate':
|
| 58 |
+
collection = db['DK_NHL_seed_frame_Main Slate']
|
| 59 |
+
elif slate_var == 'Secondary Slate':
|
| 60 |
+
collection = db['DK_NHL_seed_frame_Secondary Slate']
|
| 61 |
+
elif slate_var == 'Auxiliary Slate':
|
| 62 |
+
collection = db['DK_NHL_seed_frame_Auxiliary Slate']
|
| 63 |
|
| 64 |
+
cursor = collection.find().limit(sharp_split)
|
| 65 |
+
|
| 66 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 67 |
+
raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
| 68 |
+
DK_seed = raw_display.to_numpy()
|
| 69 |
+
|
| 70 |
+
return DK_seed
|
| 71 |
|
| 72 |
@st.cache_data(ttl = 599)
|
| 73 |
+
def init_FD_seed_frames(sharp_split, slate_var):
|
|
|
|
|
|
|
|
|
|
| 74 |
|
| 75 |
+
if slate_var == 'Main Slate':
|
| 76 |
+
collection = db['FD_NHL_seed_frame_Main Slate']
|
| 77 |
+
elif slate_var == 'Secondary Slate':
|
| 78 |
+
collection = db['FD_NHL_seed_frame_Secondary Slate']
|
| 79 |
+
elif slate_var == 'Auxiliary Slate':
|
| 80 |
+
collection = db['FD_NHL_seed_frame_Auxiliary Slate']
|
| 81 |
+
|
| 82 |
+
cursor = collection.find().limit(sharp_split)
|
| 83 |
+
|
| 84 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 85 |
+
raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
| 86 |
+
FD_seed = raw_display.to_numpy()
|
| 87 |
|
| 88 |
+
return FD_seed
|
| 89 |
|
| 90 |
@st.cache_data(ttl = 599)
|
| 91 |
def init_baselines():
|
|
|
|
| 179 |
st.cache_data.clear()
|
| 180 |
for key in st.session_state.keys():
|
| 181 |
del st.session_state[key]
|
| 182 |
+
DK_seed = init_DK_seed_frames(10000, 'Main Slate')
|
| 183 |
+
FD_seed = init_FD_seed_frames(10000, 'Main Slate')
|
| 184 |
dk_raw, fd_raw, teams_playing_count = init_baselines()
|
| 185 |
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 186 |
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 187 |
|
| 188 |
+
sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate', 'Auxiliary Slate'), key='sim_slate_var1')
|
| 189 |
sim_site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var1')
|
| 190 |
|
| 191 |
contest_var1 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large', 'Custom'))
|
|
|
|
| 249 |
|
| 250 |
else:
|
| 251 |
if sim_site_var1 == 'Draftkings':
|
| 252 |
+
st.session_state.working_seed = init_DK_seed_frames(sharp_split, sim_slate_var1)
|
| 253 |
+
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 254 |
+
raw_baselines = dk_raw
|
| 255 |
+
column_names = dk_columns
|
|
|
|
| 256 |
elif sim_site_var1 == 'Fanduel':
|
| 257 |
+
st.session_state.working_seed = init_FD_seed_frames(sharp_split, sim_slate_var1)
|
| 258 |
+
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 259 |
+
raw_baselines = fd_raw
|
| 260 |
+
column_names = fd_columns
|
|
|
|
| 261 |
|
| 262 |
st.session_state.maps_dict = {
|
| 263 |
'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
|
|
|
|
| 638 |
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 639 |
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 640 |
|
| 641 |
+
slate_var2 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate', 'Auxiliary Slate'))
|
| 642 |
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
| 643 |
sharp_split_var = st.number_input("How many lineups do you want?", value=10000, max_value=500000, min_value=10000, step=10000)
|
| 644 |
lineup_num_var = st.number_input("How many lineups do you want to display?", min_value=1, max_value=500, value=10, step=1)
|
|
|
|
| 685 |
st.session_state.data_export_display = st.session_state.working_seed[0:lineup_num_var]
|
| 686 |
elif 'working_seed' not in st.session_state:
|
| 687 |
if site_var1 == 'Draftkings':
|
| 688 |
+
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var, slate_var2)
|
|
|
|
| 689 |
|
| 690 |
+
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 691 |
+
raw_baselines = dk_raw
|
| 692 |
+
column_names = dk_columns
|
| 693 |
|
| 694 |
elif site_var1 == 'Fanduel':
|
| 695 |
+
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var, slate_var2)
|
|
|
|
| 696 |
|
| 697 |
+
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 698 |
+
raw_baselines = fd_raw
|
| 699 |
+
column_names = fd_columns
|
| 700 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 701 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 702 |
st.session_state.data_export_display = st.session_state.working_seed[0:lineup_num_var]
|
|
|
|
| 717 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 718 |
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
|
| 719 |
elif 'working_seed' not in st.session_state:
|
| 720 |
+
if slate_var2 == 'Main Slate':
|
| 721 |
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 722 |
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
| 723 |
|
|
|
|
| 734 |
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 735 |
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
|
| 736 |
elif 'working_seed' not in st.session_state:
|
| 737 |
+
if slate_var2 == 'Main Slate':
|
| 738 |
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
|
| 739 |
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
| 740 |
|