简体中文 English 繁體中文 日本語 Русский
本文为静态镜像,内容以交互版为准 在交互式文档中心打开 →

ErisPulse.runtime.frame_config 模块


模块概述

ErisPulse 框架配置管理模块

提供默认配置定义及配置完整性管理功能


函数列表

_deep_merge(base: dict[str, Any], override: dict[str, Any])

深度合并两个字典,override 中的值覆盖 base 中的对应值


_iter_leaf_diff(old: dict[str, Any], new: dict[str, Any], prefix: str = '')

递归比较两棵配置字典,返回新增或值变化的叶子键(点分路径)

仅收集 new 中相对 old 发生变化的叶子,用于把整棵配置的持久化 拆分为细粒度叶子写入,避免整棵覆盖导致用户热更新丢失。

内部方法 语义:只增改、不处理删除(本模块的合并语义仅新增/覆盖叶子值)。


_ensure_erispulse_config_structure(config_dict: dict[str, Any])

确保 ErisPulse 配置结构完整,补全缺失的配置项


get_erispulse_config()

获取 ErisPulse 框架配置,自动补全缺失的配置项

默认配置仅在内存中合并返回,不写入配置文件——config.toml 保持最小化, 只包含用户显式设置的键;完整可配置项参考项目内的 config.full.example。 用户显式设置(手动编辑 / update_erispulse_config / set_erispulse_section) 的键不受影响,优先级始终高于内置默认值。

返回值 (完整的): ErisPulse 配置字典


_apply_env_overrides(config: dict[str, Any], root: str = CONFIG_ROOT_KEY)

内部方法 递归对配置字典应用环境变量覆盖

命名规则:ErisPulse.server.port → ERISPULSE_SERVER_PORT (将点路径大写、. 替换为 _)。仅覆盖叶子值,按原值类型做 coerce。


_coerce_env_value(original: Any, env_str: str)

按原值类型把环境变量字符串转换为对应 Python 类型


get_config(section: str | None = None)

获取 ErisPulse 配置


update_erispulse_config(new_config: dict[str, Any])

更新 ErisPulse 配置,自动补全缺失的配置项


set_erispulse_section(path: str, value: Any)

整节替换写入 ErisPulse 配置

与 :func:update_erispulse_config 的深合并语义不同,本函数对目标子路径 整节替换(支持删除子键,如移除绑定、黑名单移除等场景)。 写入失败时抛出异常。

>>> set_erispulse_section("event.overrides.acl", {"roll*": {"allow": ["onebot11:123456"]}})

get_server_config()

获取服务器配置,确保结构完整

返回值: 服务器配置字典


get_logger_config()

获取日志配置,确保结构完整

返回值: 日志配置字典


get_storage_config()

获取存储模块配置

返回值: 存储配置字典


get_event_config()

获取事件系统配置

返回值: 事件系统配置字典


get_framework_config()

获取框架配置

返回值: 框架配置字典


get_i18n_config()

获取国际化配置

返回值: 国际化配置字典


get_master_config()

获取框架主人系统配置

返回值: 框架主人配置字典