Spaces:
Running
Running
Jon Solow
commited on
Commit
·
f413cfe
1
Parent(s):
8ef2226
Use local file cache to make faster
Browse files
src/pages/50_League_Simulation.py
CHANGED
|
@@ -41,9 +41,14 @@ def show_week_matches(schedule: pd.DataFrame, week: int | str):
|
|
| 41 |
return match_filter_map
|
| 42 |
|
| 43 |
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
|
| 49 |
def get_page():
|
|
@@ -78,8 +83,12 @@ def get_page():
|
|
| 78 |
with st.expander(f"Week {week}"):
|
| 79 |
all_match_filters[week] = show_week_matches(df_schedule, week)
|
| 80 |
|
| 81 |
-
sim_result =
|
| 82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
)
|
| 84 |
|
| 85 |
if len(sim_result):
|
|
@@ -88,7 +97,7 @@ def get_page():
|
|
| 88 |
for match_index, match_winner in filtered_match_dict.items():
|
| 89 |
filtered_sims = filtered_sims[filtered_sims[int(week)][match_index] == match_winner]
|
| 90 |
|
| 91 |
-
st.write(f"Number of Scenarios in filter: {len(filtered_sims)
|
| 92 |
st.dataframe(create_simulate_summary(filtered_sims))
|
| 93 |
|
| 94 |
|
|
|
|
| 41 |
return match_filter_map
|
| 42 |
|
| 43 |
|
| 44 |
+
def get_sim_with_file_cache(league_key, schedule: pd.DataFrame, complete_weeks: int, n_sims: int, n_playoff: int):
|
| 45 |
+
file_name = f"sims_{league_key}_{complete_weeks}.parquet"
|
| 46 |
+
try:
|
| 47 |
+
return pd.read_parquet(file_name)
|
| 48 |
+
except Exception:
|
| 49 |
+
df = run_simulations(schedule, complete_weeks, n_sims, n_playoff)
|
| 50 |
+
df.to_parquet(file_name)
|
| 51 |
+
return df
|
| 52 |
|
| 53 |
|
| 54 |
def get_page():
|
|
|
|
| 83 |
with st.expander(f"Week {week}"):
|
| 84 |
all_match_filters[week] = show_week_matches(df_schedule, week)
|
| 85 |
|
| 86 |
+
sim_result = get_sim_with_file_cache(
|
| 87 |
+
selected_league.league_key,
|
| 88 |
+
df_schedule,
|
| 89 |
+
selected_league.current_week - 1,
|
| 90 |
+
n_sims,
|
| 91 |
+
selected_league.num_playoff_teams,
|
| 92 |
)
|
| 93 |
|
| 94 |
if len(sim_result):
|
|
|
|
| 97 |
for match_index, match_winner in filtered_match_dict.items():
|
| 98 |
filtered_sims = filtered_sims[filtered_sims[int(week)][match_index] == match_winner]
|
| 99 |
|
| 100 |
+
st.write(f"Number of Scenarios included in filter: {len(filtered_sims)} / {n_sims}")
|
| 101 |
st.dataframe(create_simulate_summary(filtered_sims))
|
| 102 |
|
| 103 |
|