File size: 1,520 Bytes
86f5e84
7a18dc2
f18ed57
7a18dc2
2e0b4a6
7a18dc2
f47916d
f18ed57
f47916d
2e0b4a6
7a18dc2
f47916d
f18ed57
e2b52d0
 
7a18dc2
c0c7d17
 
7a18dc2
 
5509410
c0c7d17
 
 
c9e9696
 
 
 
a544bb0
c9e9696
 
 
 
 
 
 
 
 
 
7a18dc2
 
f18ed57
 
2e0b4a6
f18ed57
5509410
 
 
 
 
 
b7f4f75
f18ed57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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"


@st.cache_data
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()