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

ErisPulse.loaders.bases.loader 模块


模块概述

ErisPulse 基础加载器

定义加载器的抽象基类,提供通用的加载器接口和结构

提示

  1. 所有具体加载器应继承自 BaseLoader
  2. 子类需实现 _process_entry_point 方法
  3. 支持启用/禁用配置管理

函数列表

resolve_min_sdk_version(component_obj: Any, name: str = '')

解析组件声明的运行时最低 SDK 版本(统一读取口径)

解析优先级:get_meta() 声明(:class:~ErisPulse.Core.Bases.ModuleMeta 实例或 dict,模块体系的规范声明位置)> 类属性 min_sdk_version (适配器等无 meta 声明类组件的声明位置)> None(未声明)。


类列表

class BaseLoader(ABC)

基础加载器抽象类

提供通用的加载器接口和配置管理功能

提示 子类需要实现:

  • _get_entry_point_group: 返回 entry-point 组名
  • _process_entry_point: 处理单个 entry-point

内部方法 此类仅供内部使用,不应直接实例化

方法列表

__init__(config_prefix: str)

初始化基础加载器


set_strict_manager(manager: Any)

注入严格模式管理器

内部方法 由初始化协调器调用,确保多个加载器共享同一管理器实例以统一收集违规


_strict()

获取严格模式管理器

返回值 (StrictModeManager): 实例

内部方法 未注入时从配置创建,仅供独立调用/测试使用;正常启动流程总会被注入


_check_sdk_version(name: str, component_type: str, component_obj: Any)

运行时最低 SDK 版本检查(声明读取见 :func:resolve_min_sdk_version)

组件未声明或声明无法解析时放行(后者输出警告); 版本不满足时输出明确错误、按严格模式登记拒绝并返回 False, 由调用方跳过该组件——SDK 过低的组件加载后几乎必然运行异常, 提前拦截可给出可操作的诊断(升级 SDK 或换用兼容版本组件)。

内部方法 供 ModuleLoader / AdapterLoader 在构建组件信息前调用


_get_entry_point_group()

获取 entry-point 组名

返回值 (entry-point): 组名

内部方法 子类必须实现此方法


async _process_entry_point(entry_point: Any, objs: dict[str, Any], enabled_list: list[str], disabled_list: list[str], manager_instance: Any)

处理单个 entry-point

内部方法 子类必须实现此方法


async load(manager_instance: Any)

从 entry-points 加载对象

异常: ImportError - 当加载失败时抛出


_register_config(name: str, enabled: bool = False)

注册配置项


_get_config_status(name: str)

获取配置状态