Spaces:
Sleeping
Sleeping
import os | |
import pandas as pd | |
import streamlit as st | |
from config import DEFAULT_ICON, LEAGUE_NAME | |
KEEPER_DATA_URL = "../../tests/mocks/2023_keepers.csv" | |
def load_data(): | |
data = pd.read_csv(os.path.join(os.path.dirname(__file__), KEEPER_DATA_URL), index_col=0) | |
# Hack to get position, replace with better position from yahoo api in future | |
data["position"] = data["eligible_positions"].apply(lambda x: eval(x)[0]) | |
data.columns = data.columns.str.lower() | |
teams_list = sorted(list(data["team_name"].unique())) | |
return data, teams_list | |
def filtered_keeper_dataframe(data: pd.DataFrame, teams_list: list[str]): | |
teams_selected = st.multiselect("Team:", teams_list) | |
teams_filter = data["team_name"].isin(teams_selected) if teams_selected else data["team_name"].isin(teams_list) | |
filtered_data = data.loc[teams_filter] | |
st.dataframe( | |
filtered_data, | |
hide_index=True, | |
use_container_width=True, | |
column_order=[ | |
"team_name", | |
"name", | |
"position", | |
"keeper_cost", | |
"years_eligible", | |
"eligible", | |
], | |
column_config={}, | |
) | |
def get_keeper_app(): | |
keeper_title = f"{LEAGUE_NAME} Keeper Options" | |
st.set_page_config(page_title=keeper_title, page_icon=DEFAULT_ICON) | |
st.title(keeper_title) | |
data, teams_list = load_data() | |
with st.container(): | |
filtered_keeper_dataframe(data, teams_list) | |
if __name__ == "__main__": | |
get_keeper_app() | |