finemargins / app /data_loader.py
ashish-doing's picture
deploy: full sync to HF
1977937
Raw
History Blame Contribute Delete
1.02 kB
"""
app/data_loader.py
Single source of data loading for all pages. Streamlit caches everything.
"""
import streamlit as st
import pandas as pd
import json
import pickle
from pathlib import Path
BASE = Path(__file__).parent.parent
@st.cache_data
def load_penalties():
return pd.read_parquet(BASE / "data/processed/penalty_shap.parquet")
@st.cache_data
def load_late_shots():
return pd.read_parquet(BASE / "data/processed/late_shot_probs.parquet")
@st.cache_data
def load_player_profiles():
return pd.read_parquet(BASE / "data/processed/player_profiles.parquet")
@st.cache_data
def load_metrics():
with open(BASE / "pipeline/model_artifacts/metrics.json", encoding="utf-8") as f:
return json.load(f)
@st.cache_resource
def load_models():
with open(BASE / "pipeline/model_artifacts/models.pkl", "rb") as f:
return pickle.load(f)
@st.cache_data
def load_scenarios():
with open(BASE / "ibm_layer/officiating_scenarios.json", encoding="utf-8") as f:
return json.load(f)