基本结构以及计算降雨栅格
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user