'''Module to create a Dash app that displays visualizations of YNAB data.''' import dash from dash import dcc, html from dash.dependencies import Input, Output, State import dash_bootstrap_components as dbc from visuals.layout import create_layout from visuals.components import update_data, update_dates from datetime import date, timedelta today = date.today() one_year_ago = today - timedelta(days=365) master_data = update_dates(start_date=one_year_ago, end_date=today) data = update_data(master_data) app = dash.Dash(__name__, external_stylesheets=[dbc.themes.DARKLY]) @app.callback( Output("spend_per_day","figure"), Output("spend_per_category","figure"), Output("spend_per_payee","figure"), Output("total_spend","children"), [Input('date-picker-range', 'start_date'), Input('date-picker-range', 'end_date')] ) def update_layout(start_date,end_date): master_data = update_dates(start_date, end_date) data = update_data(master_data) return create_layout(data) app.layout = create_layout(data)