Spaces:
Running
Running
James McCool
commited on
Commit
·
2b816c4
1
Parent(s):
a591260
Add handbuilder lineup export functionality in app.py by introducing a new export button. This allows users to download saved lineups as a CSV file, enhancing data management and user experience. Additionally, new column definitions for DraftKings and FanDuel handbuilder exports have been added for improved clarity.
Browse files
app.py
CHANGED
@@ -24,6 +24,8 @@ player_roo_format = {'Top_finish': '{:.2%}','Top_5_finish': '{:.2%}', 'Top_10_fi
|
|
24 |
|
25 |
dk_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
26 |
fd_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
|
|
|
|
27 |
dk_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
28 |
fd_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
29 |
|
@@ -328,6 +330,11 @@ def convert_pm_df(array):
|
|
328 |
array = pd.DataFrame(array)
|
329 |
return array.to_csv().encode('utf-8')
|
330 |
|
|
|
|
|
|
|
|
|
|
|
331 |
col1, col2 = st.columns([1, 9])
|
332 |
with col1:
|
333 |
if st.button("Load/Reset Data", key='reset'):
|
@@ -1385,7 +1392,7 @@ with tab4:
|
|
1385 |
)
|
1386 |
|
1387 |
# Optionally, add a button to clear the lineup
|
1388 |
-
clear_col, save_col, blank_col = st.columns([2,2,
|
1389 |
with clear_col:
|
1390 |
if st.button("Clear Lineup", key='clear_lineup'):
|
1391 |
st.session_state['handbuilder_lineup'] = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Team_Total', 'Opp_Total', 'Salary', 'Median', '2x%', 'Own%', 'Slot', 'Order'])
|
@@ -1398,4 +1405,16 @@ with tab4:
|
|
1398 |
else:
|
1399 |
st.session_state['saved_lineups'] = [st.session_state['handbuilder_lineup']['Player'].tolist()]
|
1400 |
print(st.session_state['saved_lineups'])
|
1401 |
-
st.rerun()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
dk_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
26 |
fd_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
27 |
+
dk_hb_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']
|
28 |
+
fd_hb_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']
|
29 |
dk_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
30 |
fd_sd_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
31 |
|
|
|
330 |
array = pd.DataFrame(array)
|
331 |
return array.to_csv().encode('utf-8')
|
332 |
|
333 |
+
@st.cache_data
|
334 |
+
def convert_hb_df(array, column_names):
|
335 |
+
array = pd.DataFrame(array, columns=column_names)
|
336 |
+
return array.to_csv().encode('utf-8')
|
337 |
+
|
338 |
col1, col2 = st.columns([1, 9])
|
339 |
with col1:
|
340 |
if st.button("Load/Reset Data", key='reset'):
|
|
|
1392 |
)
|
1393 |
|
1394 |
# Optionally, add a button to clear the lineup
|
1395 |
+
clear_col, save_col, export_col, blank_col = st.columns([2, 2, 2, 10])
|
1396 |
with clear_col:
|
1397 |
if st.button("Clear Lineup", key='clear_lineup'):
|
1398 |
st.session_state['handbuilder_lineup'] = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Team_Total', 'Opp_Total', 'Salary', 'Median', '2x%', 'Own%', 'Slot', 'Order'])
|
|
|
1405 |
else:
|
1406 |
st.session_state['saved_lineups'] = [st.session_state['handbuilder_lineup']['Player'].tolist()]
|
1407 |
print(st.session_state['saved_lineups'])
|
1408 |
+
st.rerun()
|
1409 |
+
with export_col:
|
1410 |
+
if 'saved_lineups' in st.session_state and st.session_state['saved_lineups']:
|
1411 |
+
# Convert list of lists to numpy array
|
1412 |
+
saved_lineups_array = np.array(st.session_state['saved_lineups'])
|
1413 |
+
st.download_button(
|
1414 |
+
label="Export Handbuilds",
|
1415 |
+
data=convert_hb_df(saved_lineups_array, dk_hb_columns if site_var == 'Draftkings' else fd_hb_columns),
|
1416 |
+
file_name='handbuilds_export.csv',
|
1417 |
+
mime='text/csv',
|
1418 |
+
)
|
1419 |
+
else:
|
1420 |
+
st.write("No saved lineups to export")
|