基本结构以及计算降雨栅格

This commit is contained in:
wzy-warehouse
2026-05-05 19:49:12 +08:00
parent 72f54c437c
commit 36bd2dc3fa
32 changed files with 2323 additions and 2 deletions
+65
View File
@@ -0,0 +1,65 @@
"""
配置加载器 - 根据环境自动加载对应配置
"""
import os
from typing import Type
from .base_config import BaseConfig, EnvironmentEnum
from .development import DevelopmentConfig
from .production import ProductionConfig
def get_config_class(environment: str = None) -> Type[BaseConfig]:
"""根据环境获取配置类
Args:
environment: 环境名称 (development/production)
Returns:
对应的配置类
"""
if environment is None:
environment = os.getenv("ENVIRONMENT", "development")
config_map = {
EnvironmentEnum.DEVELOPMENT: DevelopmentConfig,
EnvironmentEnum.PRODUCTION: ProductionConfig,
}
try:
env_enum = EnvironmentEnum(environment)
return config_map[env_enum]
except ValueError:
print(f"警告: 未知环境 '{environment}',使用默认开发环境配置")
return DevelopmentConfig
def load_config(environment: str = None) -> BaseConfig:
"""加载配置
Args:
environment: 环境名称
Returns:
配置实例
"""
config_class = get_config_class(environment)
return config_class()
# 全局配置实例(延迟加载)
_config_instance = None
def get_settings() -> BaseConfig:
"""获取全局配置实例(单例模式)"""
global _config_instance
if _config_instance is None:
environment = os.getenv("ENVIRONMENT", None)
_config_instance = load_config(environment)
return _config_instance
def reload_config(environment: str = None):
"""重新加载配置"""
global _config_instance
_config_instance = load_config(environment)