核心

可注册元类

class ltp.core.registrable.Registrable(name, bases, ns, *, alias=False)[source]

Bases: type

可注册元类

给基类提供以下功能

  1. 通过名字访问子类

  2. 列出子类的类型

  3. 构造生成子类对象

ltp.core.registrable.register(cls, name, override=False, hooks=None)[source]

装饰器 Class decorator for registering a subclass.

Parameters
  • name – 注册名

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks (List[HookType]) – 在注册时会被执行的Hook函数

Raises

RegistrationError – 如果 override 为 false 并且 name 已经被注册

ltp.core.registrable.weak_register(cls, name, subclass, override=False, hooks=None)[source]

用于手动对子类进行注册

Parameters
  • name (str) – 子类的引用名

  • subclass – 子类类型

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks – 在注册时会被执行的Hook函数

Raises

RegistrationError – 如果 override 为 false 并且 name 已经被注册

ltp.core.registrable.hook(cls, hook)[source]

函数装饰器,给某个类注册装饰器

ltp.core.registrable.by_name(cls, name)[source]

通过注册的名字取得实际的类型

Parameters

name – 注册的名字

Returns

Type[T] 使用 name 注册的子类

Return type

class

Raises

RegistrationError – 如果 name 未被注册

ltp.core.registrable.list_available(cls)[source]

列出所有的注册子类

ltp.core.registrable.is_registered(cls, name)[source]

如果 name 在类中已经注册,则返回 True

ltp.core.registrable.iter_registered(cls)[source]

迭代已经注册的名字和对象

ltp.core.registrable.from_params(cls, __config, *args, extra=None, **kwargs)[source]

使用 config 生成对象

Parameters
  • cls – 类型

  • __config – 配置项,通常为字典,形如 {‘class’:’ClassName’, ‘init’:{ ‘arg’: arg } }

  • *args – 直接传入的arg

  • extra – 根据需要传入的数据

  • **kwargs – 其他参数

Returns

根据参数生成的对象

异常

exception ltp.core.exceptions.Error[source]

Bases: Exception

exception ltp.core.exceptions.RegistrationError[source]

Bases: ltp.core.exceptions.Error

exception ltp.core.exceptions.DataUnsupported[source]

Bases: ltp.core.exceptions.Error