Spaces:
Running
Running
| import datetime | |
| import streamlit as st | |
| from config import DEFAULT_ICON | |
| from shared_page import common_page_config | |
| from queries.nfl_teams.practice_reports import scrape_all_team_injury_report, CURRENT_SEASON, CURRENT_WEEK | |
| def load_data(): | |
| data = scrape_all_team_injury_report() | |
| teams_list = list(data.Team.unique()) | |
| position_list = list(data.Position.unique()) | |
| status_list = list(data.game_status.unique()) | |
| last_practice_day_list = list(data["Last Practice Day"].unique()) | |
| data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p") | |
| return data, teams_list, position_list, status_list, last_practice_day_list, data_load_time_str | |
| def get_page(): | |
| page_title = f"Team Practice Reports - {CURRENT_SEASON} Week {CURRENT_WEEK}" | |
| st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide") | |
| common_page_config() | |
| st.title(page_title) | |
| if st.button("Refresh Data"): | |
| st.cache_data.clear() | |
| data, teams_list, position_list, status_list, last_practice_day_list, data_load_time_str = load_data() | |
| st.write(f"Data loaded as of: {data_load_time_str} UTC") | |
| teams_selected = st.multiselect("Team:", teams_list, placeholder="Select a team to filter") or teams_list | |
| positions_selected = ( | |
| st.multiselect("Position:", position_list, placeholder="Select a position to filter") or position_list | |
| ) | |
| status_selected = ( | |
| st.multiselect("Game Status:", status_list, placeholder="Select a game status to filter") or status_list | |
| ) | |
| last_practice_day_selected = ( | |
| st.multiselect( | |
| "Last Practice Day:", last_practice_day_list, placeholder="Select a day of last team practice to filter" | |
| ) | |
| or last_practice_day_list | |
| ) | |
| with st.container(): | |
| filtered_data = data[ | |
| ( | |
| data.Team.isin(teams_selected) | |
| & data.Position.isin(positions_selected) | |
| & data.game_status.isin(status_selected) | |
| & data["Last Practice Day"].isin(last_practice_day_selected) | |
| ) | |
| ] | |
| st.dataframe( | |
| filtered_data, | |
| hide_index=True, | |
| height=35 * (len(filtered_data) + 1) + 12, | |
| use_container_width=False, | |
| column_config={}, | |
| ) | |
| if __name__ == "__main__": | |
| get_page() | |