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 - cfg 或 default_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
。
- 返回:
类,被注册的类本身。