import os import requests import streamlit as st from dotenv import load_dotenv from services.dashboard import render_dashboard from services.errors import ( render_db_error, render_error, render_processing_error, ) st.set_page_config( page_title="Financial Volatility Forecaster Report", page_icon=":bar_chart:", layout="wide", menu_items={"About": "https://github.com/yezdata/financial_volatility_forecaster"}, ) load_dotenv() API_URL = os.getenv("API_URL") def main(): try: with st.spinner("Fetching data from Financial Volatility Forecaster API..."): response = requests.get(f"{API_URL}/report", timeout=10) if response.status_code == 200: render_dashboard(response.json()) elif response.status_code == 501: render_db_error() elif response.status_code == 500: render_processing_error() else: render_error(response.status_code) except requests.exceptions.ConnectionError: st.error("Could not connect to the Financial Volatility Forecaster API.") if __name__ == "__main__": main()