You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.3 KiB

"""
应用配置模块
"""
import os
from typing import Optional
from pydantic_settings import BaseSettings
from pydantic import Field
class Settings(BaseSettings):
"""应用配置类"""
# 应用配置
APP_NAME: str = "AmazingData金融数据服务平台"
APP_VERSION: str = "1.0.0"
DEBUG: bool = Field(default=True, env="DEBUG")
# 数据库配置 - 使用SQLite简化演示
DATABASE_URL: str = Field(
default="sqlite:///./amazing_data.db",
env="DATABASE_URL"
)
# Redis配置
REDIS_URL: str = Field(
default="redis://localhost:6379/0",
env="REDIS_URL"
)
# JWT配置
SECRET_KEY: str = Field(
default="your-secret-key-change-in-production",
env="SECRET_KEY"
)
ACCESS_TOKEN_EXPIRE_HOURS: int = Field(default=24, env="ACCESS_TOKEN_EXPIRE_HOURS")
ALGORITHM: str = "HS256"
# 缓存配置
CACHE_DEFAULT_PERIOD: str = "daily"
CACHE_DEFAULT_DAYS: int = 365
CACHE_AUTO_CLEANUP_DAYS: int = 7
CACHE_BATCH_SIZE: int = 100
CACHE_MISSING_THRESHOLD: float = 0.1
# 实时数据配置
REALTIME_SUBSCRIBE_INTERVAL: int = 1000
class Config:
env_file = ".env"
case_sensitive = True
# 全局配置实例
settings = Settings()