Edwin Salguero
Prepare for Streamlit Cloud deployment - Add deployment files, fix clustering chart error, update requirements
6ce20d9
| """ | |
| FRED ML - Configuration Settings | |
| Configuration for FRED API and application settings | |
| """ | |
| import os | |
| from typing import Optional | |
| class Config: | |
| """Configuration class for FRED ML application""" | |
| # FRED API Configuration | |
| FRED_API_KEY: Optional[str] = os.getenv('FRED_API_KEY') | |
| # Application Settings | |
| APP_TITLE = "FRED ML - Economic Analytics Platform" | |
| APP_DESCRIPTION = "Enterprise-grade economic analytics and forecasting platform" | |
| # Data Settings | |
| DEFAULT_START_DATE = "2020-01-01" | |
| DEFAULT_END_DATE = "2024-12-31" | |
| # Analysis Settings | |
| FORECAST_PERIODS = 12 | |
| CONFIDENCE_LEVEL = 0.95 | |
| # UI Settings | |
| THEME_COLOR = "#1f77b4" | |
| SUCCESS_COLOR = "#2ca02c" | |
| WARNING_COLOR = "#ff7f0e" | |
| ERROR_COLOR = "#d62728" | |
| def validate_fred_api_key(cls) -> bool: | |
| """Validate if FRED API key is properly configured""" | |
| if not cls.FRED_API_KEY: | |
| return False | |
| if cls.FRED_API_KEY == 'your-fred-api-key-here': | |
| return False | |
| return True | |
| def get_fred_api_key(cls) -> Optional[str]: | |
| """Get FRED API key with validation""" | |
| if cls.validate_fred_api_key(): | |
| return cls.FRED_API_KEY | |
| return None | |
| def setup_fred_api_key(): | |
| """Helper function to guide users in setting up FRED API key""" | |
| print("=" * 60) | |
| print("FRED ML - API Key Setup") | |
| print("=" * 60) | |
| print() | |
| print("To use real FRED data, you need to:") | |
| print("1. Get a free API key from: https://fred.stlouisfed.org/docs/api/api_key.html") | |
| print("2. Set the environment variable:") | |
| print(" export FRED_API_KEY='your-api-key-here'") | |
| print() | |
| print("Or create a .env file in the project root with:") | |
| print("FRED_API_KEY=your-api-key-here") | |
| print() | |
| print("The application will work with demo data if no API key is provided.") | |
| print("=" * 60) | |
| if __name__ == "__main__": | |
| setup_fred_api_key() |