""" Configuration settings for the application """ import os from pathlib import Path # Base directories BASE_DIR = Path(__file__).parent DATA_DIR = BASE_DIR / "data" CACHE_DIR = BASE_DIR / "cache" LOGS_DIR = BASE_DIR / "logs" # Create directories if they don't exist DATA_DIR.mkdir(exist_ok=True) CACHE_DIR.mkdir(exist_ok=True) LOGS_DIR.mkdir(exist_ok=True) # Application settings APP_NAME = "Dashboard App" APP_VERSION = "1.0.0" DEBUG = os.getenv("DEBUG", "False").lower() == "true" # Streamlit configuration STREAMLIT_CONFIG = { "page_title": APP_NAME, "page_icon": "📊", "layout": "wide", "initial_sidebar_state": "expanded" } # Logging configuration LOGGING_CONFIG = { "level": "DEBUG" if DEBUG else "INFO", "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s", "file_path": LOGS_DIR / "app.log" } # Dashboard settings DASHBOARD_CONFIG = { "default_chart_type": "Line Chart", "refresh_interval": 300, # 5 minutes "max_data_points": 10000, "enable_caching": True } # File upload settings UPLOAD_CONFIG = { "max_file_size": 200, # MB "allowed_extensions": [".csv", ".xlsx", ".json", ".pkl"], "upload_dir": DATA_DIR / "uploads" } # API settings (if needed) API_CONFIG = { "timeout": 30, "max_retries": 3, "base_url": os.getenv("API_BASE_URL", "") } # Database settings (if needed) DATABASE_CONFIG = { "url": os.getenv("DATABASE_URL", ""), "pool_size": 5, "max_overflow": 10 } # Security settings SECURITY_CONFIG = { "secret_key": os.getenv("SECRET_KEY", "your-secret-key-here"), "session_timeout": 3600, # 1 hour "max_login_attempts": 5 } # Feature flags FEATURES = { "enable_dashboard": True, "enable_analytics": False, "enable_user_management": False, "enable_api": False } # Export all configurations __all__ = [ "BASE_DIR", "DATA_DIR", "CACHE_DIR", "LOGS_DIR", "APP_NAME", "APP_VERSION", "DEBUG", "STREAMLIT_CONFIG", "LOGGING_CONFIG", "DASHBOARD_CONFIG", "UPLOAD_CONFIG", "API_CONFIG", "DATABASE_CONFIG", "SECURITY_CONFIG", "FEATURES" ]