File size: 2,140 Bytes
50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 8e4018d 50dc6d1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
"""
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"
] |