certflow.config.loader module¶
YAML 配置加载器
支持环境变量替换、文件包含和配置验证.
- class ConfigLoader(config_dir=None)[源代码]¶
基类:
object配置加载器,负责加载和处理YAML配置文件
提供完整的配置文件加载功能,包括环境变量替换、配置文件包含和配置验证. 支持从指定目录加载YAML格式的配置文件,并自动处理配置中的动态内容.
- 参数:
config_dir (Path | None)
- config_dir¶
配置文件所在目录的路径,默认为项目根目录下的config文件夹
- _config¶
内部存储的配置对象,仅在调用load()后有效
示例
>>> from pathlib import Path >>> loader = ConfigLoader(Path("/path/to/config")) >>> config = loader.load("app_config.yaml") >>> print(config.database.host)
- __init__(config_dir=None)[源代码]¶
初始化配置加载器实例
如果不指定配置目录,会自动定位到项目根目录下的config文件夹. 开发环境: 通过当前文件向上查找4级父目录确定. 打包环境: 使用可执行文件所在目录 (sys.frozen).
- 参数:
config_dir (Path | None) -- 配置文件所在目录路径,默认为None时自动使用项目config目录
- load(config_file='config.yaml')[源代码]¶
加载配置文件并进行处理
执行完整的配置加载流程: 读取文件 -> 展开顶层包含 -> 解析YAML -> 处理嵌套包含 -> 替换环境变量 -> 验证配置结构.
- 参数:
config_file (str) -- 配置文件名,默认为"config.yaml"
- 返回:
经过验证的配置对象,包含所有处理后的配置数据
- 返回类型:
- 抛出:
FileNotFoundError -- 指定的配置文件不存在
yaml.YAMLError -- YAML语法错误或格式不正确
ValidationError -- 配置内容不符合定义的数据模型
- property config: RootConfig¶
获取已加载的配置对象
该属性提供对加载后的配置对象的只读访问. 必须先调用load()方法,否则会抛出运行时错误.
- 返回:
已加载的配置对象
- 返回类型:
- 抛出:
RuntimeError -- 配置尚未加载,需要先调用load()方法
- get_config(config_dir=None, reload=False)[源代码]¶
获取全局配置实例(单例模式)
提供便捷的全局配置访问接口,避免在多处重复创建ConfigLoader实例. 首次调用时会自动加载配置,后续调用返回缓存的配置对象.
- 参数:
- 返回:
全局配置对象实例
- 返回类型:
示例
>>> from certflow.config.loader import get_config >>> config = get_config() # 首次调用,自动加载配置 >>> db_config = get_config().database # 使用缓存配置 >>> new_config = get_config(reload=True) # 强制重新加载