|
""" |
|
Configuration settings for the application |
|
""" |
|
import os |
|
from pathlib import Path |
|
|
|
|
|
BASE_DIR = Path(__file__).parent |
|
DATA_DIR = BASE_DIR / "data" |
|
CACHE_DIR = BASE_DIR / "cache" |
|
LOGS_DIR = BASE_DIR / "logs" |
|
|
|
|
|
DATA_DIR.mkdir(exist_ok=True) |
|
CACHE_DIR.mkdir(exist_ok=True) |
|
LOGS_DIR.mkdir(exist_ok=True) |
|
|
|
|
|
APP_NAME = "Dashboard App" |
|
APP_VERSION = "1.0.0" |
|
DEBUG = os.getenv("DEBUG", "False").lower() == "true" |
|
|
|
|
|
STREAMLIT_CONFIG = { |
|
"page_title": APP_NAME, |
|
"page_icon": "π", |
|
"layout": "wide", |
|
"initial_sidebar_state": "expanded" |
|
} |
|
|
|
|
|
LOGGING_CONFIG = { |
|
"level": "DEBUG" if DEBUG else "INFO", |
|
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s", |
|
"file_path": LOGS_DIR / "app.log" |
|
} |
|
|
|
|
|
DASHBOARD_CONFIG = { |
|
"default_chart_type": "Line Chart", |
|
"refresh_interval": 300, |
|
"max_data_points": 10000, |
|
"enable_caching": True |
|
} |
|
|
|
|
|
UPLOAD_CONFIG = { |
|
"max_file_size": 200, |
|
"allowed_extensions": [".csv", ".xlsx", ".json", ".pkl"], |
|
"upload_dir": DATA_DIR / "uploads" |
|
} |
|
|
|
|
|
API_CONFIG = { |
|
"timeout": 30, |
|
"max_retries": 3, |
|
"base_url": os.getenv("API_BASE_URL", "") |
|
} |
|
|
|
|
|
DATABASE_CONFIG = { |
|
"url": os.getenv("DATABASE_URL", ""), |
|
"pool_size": 5, |
|
"max_overflow": 10 |
|
} |
|
|
|
|
|
SECURITY_CONFIG = { |
|
"secret_key": os.getenv("SECRET_KEY", "your-secret-key-here"), |
|
"session_timeout": 3600, |
|
"max_login_attempts": 5 |
|
} |
|
|
|
|
|
FEATURES = { |
|
"enable_dashboard": True, |
|
"enable_analytics": False, |
|
"enable_user_management": False, |
|
"enable_api": False |
|
} |
|
|
|
|
|
__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" |
|
] |