James McCool commited on
Commit
5729f79
·
1 Parent(s): 4ec0563

Add support for multiple league data sources in app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -15
app.py CHANGED
@@ -40,17 +40,20 @@ def init_conn():
40
  client = pymongo.MongoClient(uri, retryWrites=True, serverSelectionTimeoutMS=500000)
41
  db = client["League_of_Legends"]
42
 
43
- LOL_Data = st.secrets['LOL_Data']
 
 
44
 
45
  gc = gspread.service_account_from_dict(credentials)
46
  gc2 = gspread.service_account_from_dict(credentials2)
47
 
48
- return gc, gc2, db, LOL_Data
49
 
50
- gcservice_account, gcservice_account2, db, LOL_Data = init_conn()
51
 
52
  percentages_format = {'Exposure': '{:.2%}'}
53
  freq_format = {'Exposure': '{:.2%}', 'Proj Own': '{:.2%}', 'Edge': '{:.2%}'}
 
54
  dk_columns = ['CPT', 'TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
55
  fd_columns = ['CPT', 'TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
56
 
@@ -74,12 +77,25 @@ def init_DK_seed_frames():
74
  return DK_seed
75
 
76
  @st.cache_data(ttl = 599)
77
- def init_baselines():
78
- try:
79
- sh = gcservice_account.open_by_url(LOL_Data)
80
- except:
81
- sh = gcservice_account2.open_by_url(LOL_Data)
 
 
 
 
 
 
 
 
 
 
 
 
82
 
 
83
  worksheet = sh.worksheet('ROO')
84
  load_display = pd.DataFrame(worksheet.get_all_records())
85
  load_display.replace('', np.nan, inplace=True)
@@ -143,7 +159,7 @@ def sim_contest(Sim_size, seed_frame, maps_dict, sharp_split, Contest_Size):
143
  return Sim_Winners
144
 
145
  DK_seed = init_DK_seed_frames()
146
- dk_raw = init_baselines()
147
 
148
  tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
149
  with tab2:
@@ -154,12 +170,12 @@ with tab2:
154
  for key in st.session_state.keys():
155
  del st.session_state[key]
156
  DK_seed = init_DK_seed_frames()
157
- dk_raw = init_baselines()
158
 
159
- slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Other Main Slate'))
160
  site_var1 = st.radio("What site are you working with?", ('Draftkings'))
161
  if site_var1 == 'Draftkings':
162
- raw_baselines = dk_raw
163
  column_names = dk_columns
164
 
165
  team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
@@ -208,11 +224,12 @@ with tab1:
208
  for key in st.session_state.keys():
209
  del st.session_state[key]
210
  DK_seed = init_DK_seed_frames()
211
- dk_raw = init_baselines()
212
- sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Other Main Slate'), key='sim_slate_var1')
 
213
  sim_site_var1 = st.radio("What site are you working with?", ('Draftkings'), key='sim_site_var1')
214
  if sim_site_var1 == 'Draftkings':
215
- raw_baselines = dk_raw
216
  column_names = dk_columns
217
 
218
  contest_var1 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large', 'Custom'))
 
40
  client = pymongo.MongoClient(uri, retryWrites=True, serverSelectionTimeoutMS=500000)
41
  db = client["League_of_Legends"]
42
 
43
+ LCK_Data = st.secrets['LOL_Data']
44
+ LEC_Data = st.secrets['LEC_Data']
45
+ LCS_Data = st.secrets['LCS_Data']
46
 
47
  gc = gspread.service_account_from_dict(credentials)
48
  gc2 = gspread.service_account_from_dict(credentials2)
49
 
50
+ return gc, gc2, db, LCK_Data, LEC_Data, LCS_Data
51
 
52
+ gcservice_account, gcservice_account2, db, LCK_Data, LEC_Data, LCS_Data = init_conn()
53
 
54
  percentages_format = {'Exposure': '{:.2%}'}
55
  freq_format = {'Exposure': '{:.2%}', 'Proj Own': '{:.2%}', 'Edge': '{:.2%}'}
56
+
57
  dk_columns = ['CPT', 'TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
58
  fd_columns = ['CPT', 'TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
59
 
 
77
  return DK_seed
78
 
79
  @st.cache_data(ttl = 599)
80
+ def init_baselines(league_data):
81
+
82
+ if league_data == 'LCK':
83
+ try:
84
+ sh = gcservice_account.open_by_url(LCK_Data)
85
+ except:
86
+ sh = gcservice_account2.open_by_url(LCK_Data)
87
+ elif league_data == 'LEC':
88
+ try:
89
+ sh = gcservice_account.open_by_url(LEC_Data)
90
+ except:
91
+ sh = gcservice_account2.open_by_url(LEC_Data)
92
+ elif league_data == 'LCS':
93
+ try:
94
+ sh = gcservice_account.open_by_url(LCS_Data)
95
+ except:
96
+ sh = gcservice_account2.open_by_url(LCS_Data)
97
 
98
+
99
  worksheet = sh.worksheet('ROO')
100
  load_display = pd.DataFrame(worksheet.get_all_records())
101
  load_display.replace('', np.nan, inplace=True)
 
159
  return Sim_Winners
160
 
161
  DK_seed = init_DK_seed_frames()
162
+ dk_raw = init_baselines('LCK')
163
 
164
  tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
165
  with tab2:
 
170
  for key in st.session_state.keys():
171
  del st.session_state[key]
172
  DK_seed = init_DK_seed_frames()
173
+ dk_raw = init_baselines('LCK')
174
 
175
+ slate_var1 = st.radio("Which data are you loading?", ('LCK', 'LEC', 'LCS'))
176
  site_var1 = st.radio("What site are you working with?", ('Draftkings'))
177
  if site_var1 == 'Draftkings':
178
+ raw_baselines = init_baselines(slate_var1)
179
  column_names = dk_columns
180
 
181
  team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
 
224
  for key in st.session_state.keys():
225
  del st.session_state[key]
226
  DK_seed = init_DK_seed_frames()
227
+ dk_raw = init_baselines('LCK')
228
+ sim_slate_var1 = st.radio("Which data are you loading?", ('LCK', 'LEC', 'LCS'), key='sim_slate_var1')
229
+
230
  sim_site_var1 = st.radio("What site are you working with?", ('Draftkings'), key='sim_site_var1')
231
  if sim_site_var1 == 'Draftkings':
232
+ raw_baselines = init_baselines(sim_slate_var1)
233
  column_names = dk_columns
234
 
235
  contest_var1 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large', 'Custom'))