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"
]