James McCool commited on
Commit
72c894a
·
1 Parent(s): 095a174

Refactor lineup initialization in app.py: remove try-except blocks for lineup creation, ensuring consistent DataFrame initialization for both Draftkings and Fanduel across Regular and Showdown slate types, enhancing code clarity and reliability.

Browse files
Files changed (1) hide show
  1. app.py +49 -32
app.py CHANGED
@@ -253,13 +253,10 @@ salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
253
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
254
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
255
  id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
256
-
257
- try:
258
- dk_lineups = init_DK_lineups('Main Slate')
259
- fd_lineups = init_FD_lineups('Main Slate')
260
- except:
261
- dk_lineups = pd.DataFrame(columns=dk_columns)
262
- fd_lineups = pd.DataFrame(columns=fd_columns)
263
  t_stamp = f"Last Update: " + str(timestamp) + f" CST"
264
 
265
  tab1, tab2 = st.tabs(['Range of Outcomes', 'Optimals'])
@@ -282,13 +279,10 @@ with tab1:
282
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
283
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
284
  id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
285
-
286
- try:
287
- dk_lineups = init_DK_lineups('Main Slate')
288
- fd_lineups = init_FD_lineups('Main Slate')
289
- except:
290
- dk_lineups = pd.DataFrame(columns=dk_columns)
291
- fd_lineups = pd.DataFrame(columns=fd_columns)
292
  t_stamp = f"Last Update: " + str(timestamp) + f" CST"
293
  for key in st.session_state.keys():
294
  del st.session_state[key]
@@ -382,13 +376,10 @@ with tab2:
382
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
383
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
384
  id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
385
-
386
- try:
387
- dk_lineups = init_DK_lineups('Main Slate')
388
- fd_lineups = init_FD_lineups('Main Slate')
389
- except:
390
- dk_lineups = pd.DataFrame(columns=dk_columns)
391
- fd_lineups = pd.DataFrame(columns=fd_columns)
392
  t_stamp = f"Last Update: " + str(timestamp) + f" CST"
393
  for key in st.session_state.keys():
394
  del st.session_state[key]
@@ -404,7 +395,10 @@ with tab2:
404
  lineup_num_var = st.number_input("How many lineups do you want to display?", min_value=1, max_value=1000, value=150, step=1)
405
  with col5:
406
  if site_var1 == 'Draftkings':
407
- column_names = dk_columns
 
 
 
408
 
409
  player_var1 = st.radio("Do you want a frame with specific Players?", ('Full Slate', 'Specific Players'), key='player_var1')
410
  if player_var1 == 'Specific Players':
@@ -413,7 +407,10 @@ with tab2:
413
  player_var2 = dk_raw.Player.values.tolist()
414
 
415
  elif site_var1 == 'Fanduel':
416
- column_names = fd_columns
 
 
 
417
 
418
  player_var1 = st.radio("Do you want a frame with specific Players?", ('Full Slate', 'Specific Players'), key='player_var1')
419
  if player_var1 == 'Specific Players':
@@ -443,9 +440,12 @@ with tab2:
443
  st.session_state.working_seed = st.session_state.working_seed[np.equal.outer(st.session_state.working_seed, player_var2).any(axis=1).all(axis=1)]
444
  elif player_var1 == 'Full Slate':
445
  st.session_state.working_seed = dk_lineups.copy()
446
- st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
447
  elif 'working_seed' not in st.session_state:
448
- st.session_state.working_seed = dk_lineups.copy()
 
 
 
449
  st.session_state.working_seed = st.session_state.working_seed
450
  if player_var1 == 'Specific Players':
451
  st.session_state.working_seed = st.session_state.working_seed[np.equal.outer(st.session_state.working_seed, player_var2).any(axis=1).all(axis=1)]
@@ -462,7 +462,10 @@ with tab2:
462
  st.session_state.working_seed = fd_lineups.copy()
463
  st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
464
  elif 'working_seed' not in st.session_state:
465
- st.session_state.working_seed = fd_lineups.copy()
 
 
 
466
  st.session_state.working_seed = st.session_state.working_seed
467
  if player_var1 == 'Specific Players':
468
  st.session_state.working_seed = st.session_state.working_seed[np.equal.outer(st.session_state.working_seed, player_var2).any(axis=1).all(axis=1)]
@@ -472,20 +475,34 @@ with tab2:
472
 
473
  export_file = st.session_state.data_export_display.copy()
474
  if site_var1 == 'Draftkings':
475
- for col_idx in range(8):
476
- export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict)
 
 
 
 
477
  elif site_var1 == 'Fanduel':
478
- for col_idx in range(9):
479
- export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict)
 
 
 
 
480
 
481
  with st.container():
482
  if st.button("Reset Optimals", key='reset3'):
483
  for key in st.session_state.keys():
484
  del st.session_state[key]
485
  if site_var1 == 'Draftkings':
486
- st.session_state.working_seed = dk_lineups.copy()
 
 
 
487
  elif site_var1 == 'Fanduel':
488
- st.session_state.working_seed = fd_lineups.copy()
 
 
 
489
  if 'data_export_display' in st.session_state:
490
  st.dataframe(st.session_state.data_export_display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(precision=2), height=500, use_container_width = True)
491
  st.download_button(
 
253
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
254
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
255
  id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
256
+ dk_lineups = pd.DataFrame(columns=dk_columns)
257
+ dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
258
+ fd_lineups = pd.DataFrame(columns=fd_columns)
259
+ fd_sd_lineups = pd.DataFrame(columns=fd_sd_columns)
 
 
 
260
  t_stamp = f"Last Update: " + str(timestamp) + f" CST"
261
 
262
  tab1, tab2 = st.tabs(['Range of Outcomes', 'Optimals'])
 
279
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
280
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
281
  id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
282
+ dk_lineups = pd.DataFrame(columns=dk_columns)
283
+ dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
284
+ fd_lineups = pd.DataFrame(columns=fd_columns)
285
+ fd_sd_lineups = pd.DataFrame(columns=fd_sd_columns)
 
 
 
286
  t_stamp = f"Last Update: " + str(timestamp) + f" CST"
287
  for key in st.session_state.keys():
288
  del st.session_state[key]
 
376
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
377
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
378
  id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
379
+ dk_lineups = pd.DataFrame(columns=dk_columns)
380
+ dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
381
+ fd_lineups = pd.DataFrame(columns=fd_columns)
382
+ fd_sd_lineups = pd.DataFrame(columns=fd_sd_columns)
 
 
 
383
  t_stamp = f"Last Update: " + str(timestamp) + f" CST"
384
  for key in st.session_state.keys():
385
  del st.session_state[key]
 
395
  lineup_num_var = st.number_input("How many lineups do you want to display?", min_value=1, max_value=1000, value=150, step=1)
396
  with col5:
397
  if site_var1 == 'Draftkings':
398
+ if slate_type_var1 == 'Regular':
399
+ column_names = dk_columns
400
+ elif slate_type_var1 == 'Showdown':
401
+ column_names = dk_sd_columns
402
 
403
  player_var1 = st.radio("Do you want a frame with specific Players?", ('Full Slate', 'Specific Players'), key='player_var1')
404
  if player_var1 == 'Specific Players':
 
407
  player_var2 = dk_raw.Player.values.tolist()
408
 
409
  elif site_var1 == 'Fanduel':
410
+ if slate_type_var1 == 'Regular':
411
+ column_names = fd_columns
412
+ elif slate_type_var1 == 'Showdown':
413
+ column_names = fd_sd_columns
414
 
415
  player_var1 = st.radio("Do you want a frame with specific Players?", ('Full Slate', 'Specific Players'), key='player_var1')
416
  if player_var1 == 'Specific Players':
 
440
  st.session_state.working_seed = st.session_state.working_seed[np.equal.outer(st.session_state.working_seed, player_var2).any(axis=1).all(axis=1)]
441
  elif player_var1 == 'Full Slate':
442
  st.session_state.working_seed = dk_lineups.copy()
443
+ st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
444
  elif 'working_seed' not in st.session_state:
445
+ if slate_type_var1 == 'Regular':
446
+ st.session_state.working_seed = init_DK_lineups(slate_var1)
447
+ elif slate_type_var1 == 'Showdown':
448
+ st.session_state.working_seed = init_DK_SD_lineups(slate_var1)
449
  st.session_state.working_seed = st.session_state.working_seed
450
  if player_var1 == 'Specific Players':
451
  st.session_state.working_seed = st.session_state.working_seed[np.equal.outer(st.session_state.working_seed, player_var2).any(axis=1).all(axis=1)]
 
462
  st.session_state.working_seed = fd_lineups.copy()
463
  st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
464
  elif 'working_seed' not in st.session_state:
465
+ if slate_type_var1 == 'Regular':
466
+ st.session_state.working_seed = init_FD_lineups(slate_var1)
467
+ elif slate_type_var1 == 'Showdown':
468
+ st.session_state.working_seed = init_FD_SD_lineups(slate_var1)
469
  st.session_state.working_seed = st.session_state.working_seed
470
  if player_var1 == 'Specific Players':
471
  st.session_state.working_seed = st.session_state.working_seed[np.equal.outer(st.session_state.working_seed, player_var2).any(axis=1).all(axis=1)]
 
475
 
476
  export_file = st.session_state.data_export_display.copy()
477
  if site_var1 == 'Draftkings':
478
+ if slate_type_var1 == 'Regular':
479
+ for col_idx in range(8):
480
+ export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict)
481
+ elif slate_type_var1 == 'Showdown':
482
+ for col_idx in range(5):
483
+ export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict_sd)
484
  elif site_var1 == 'Fanduel':
485
+ if slate_type_var1 == 'Regular':
486
+ for col_idx in range(9):
487
+ export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict)
488
+ elif slate_type_var1 == 'Showdown':
489
+ for col_idx in range(5):
490
+ export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict_sd)
491
 
492
  with st.container():
493
  if st.button("Reset Optimals", key='reset3'):
494
  for key in st.session_state.keys():
495
  del st.session_state[key]
496
  if site_var1 == 'Draftkings':
497
+ if slate_type_var1 == 'Regular':
498
+ st.session_state.working_seed = dk_lineups.copy()
499
+ elif slate_type_var1 == 'Showdown':
500
+ st.session_state.working_seed = dk_sd_lineups.copy()
501
  elif site_var1 == 'Fanduel':
502
+ if slate_type_var1 == 'Regular':
503
+ st.session_state.working_seed = fd_lineups.copy()
504
+ elif slate_type_var1 == 'Showdown':
505
+ st.session_state.working_seed = fd_sd_lineups.copy()
506
  if 'data_export_display' in st.session_state:
507
  st.dataframe(st.session_state.data_export_display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(precision=2), height=500, use_container_width = True)
508
  st.download_button(