mindformers.tools.register.MindFormerRegister

查看源文件
class mindformers.tools.register.MindFormerRegister

MindFormers的注册接口,提供了接口注册和获取的相关方法。

classmethod get_cls(module_type, class_name=None)

从注册字典中获取类。

参数:
  • module_type (MindFormerModuleType) - MindFormers的模块类型名。

  • class_name (str, 可选) - 类名。默认值: None

返回:

一个注册了的类。

异常:
  • ValueError - 在注册字典中未找到类型是 module_type 的类 class_name

  • ValueError - 在注册字典中未找到 module_type

classmethod get_instance(module_type=MindFormerModuleType.TOOLS, class_name=None, **kwargs)

获取注册字典中类的实例。

参数:
  • module_type (MindFormerModuleType, 可选) - MindFormers的模块类型名。默认值: MindFormerModuleType.TOOLS

  • class_name (str, 可选) - 类名。默认值: None

  • kwargs (Any) - 额外的关键字参数,用于构造类的实例。

返回:

一个类的实例。

异常:
  • ValueError - class_name 不能为 None

  • ValueError - 在注册字典中未找到类型是 module_type 的类 class_name

classmethod get_instance_from_cfg(cfg, module_type=MindFormerModuleType.TOOLS, default_args=None)

通过配置获取注册字典中类的实例。

参数:
  • cfg (dict) - 配置字典。应至少包含键 "type" 。

  • module_type (MindFormerModuleType, 可选) - MindFormers的模块类型名。默认值: MindFormerModuleType.TOOLS

  • default_args (dict, 可选) - 默认的初始化参数。默认值: None

返回:

一个类的实例。

异常:
  • TypeError - cfg 必须为一个配置。

  • KeyError - cfgdefault_args 必须包含键 "type" 。

  • TypeError - default_args 必须为一个字典或为 None

  • ValueError - 在注册字典中未找到类型是 module_type 的类 class_name

classmethod is_exist(module_type, class_name=None)

判断给定的类名是否在当前的类型组中。若 class_name 没有给定,则判断给定的类名是否在当前的注册字典中。

参数:
  • module_type (MindFormerModuleType) - MindFormers的模块类型名。

  • class_name (str, 可选) - 类名。默认值: None

返回:

一个布尔值,表示是否存在。

classmethod register(module_type=MindFormerModuleType.TOOLS, alias=None, legacy=True, search_names=None)

将类注册至注册字典中的装饰器。

参数:
  • module_type (MindFormerModuleType, 可选) - MindFormers的模块类型名。默认值: MindFormerModuleType.TOOLS

  • alias (str, 可选) - 类的别名。默认值: None

  • legacy (bool, 可选) - 是否使用旧类。默认值: True

  • search_names (Union[str, tuple, list, set], 可选) - 类名的搜索名。默认值: None

返回:

包装函数,对注册的类进行装饰。

classmethod register_cls(register_class, module_type=MindFormerModuleType.TOOLS, alias=None, legacy=True, search_names=None)

将类注册至注册字典中的方法。

参数:
  • register_class (type) - 需要被注册的类。

  • module_type (MindFormerModuleType, 可选) - MindFormers的模块类型名。默认值: MindFormerModuleType.TOOLS

  • alias (str, 可选) - 类的别名。默认值: None

  • legacy (bool, 可选) - 是否使用旧类。默认值: True

  • search_names (Union[str, tuple, list, set], 可选) - 类名的搜索名。默认值: None

返回:

类,被注册的类本身。