melobot.mixin

class melobot.mixin.LogMixin[源代码]

基类:object

日志混合类

property logger: GenericLogger
class melobot.mixin.FlagMixin[源代码]

基类:object

标记混合类

__init__() None[源代码]
返回类型:

None

flag_set(namespace: Any, flag: Any, val: Any | None = None, strict: bool = True) None[源代码]

设置标记

注:不同的对象并不共享 namespacenamespace 只适用于单个对象

参数:
  • namespace (Any) -- 命名空间

  • flag (Any) -- 标记

  • val (Any | None) -- 标记值

  • strict (bool) -- 严格模式,启用严格模式,则不允许 flag 标记已经存在

返回类型:

None

flag_set_default(namespace: Any, flag: Any, default: Any) None[源代码]

设置标记,并在标记不存在时使用 default 初始化

注:不同的对象并不共享 namespacenamespace 只适用于单个对象

参数:
  • namespace (Any) -- 命名空间

  • flag (Any) -- 标记

  • default (Any) -- 标记不存在时的默认值

返回类型:

None

flag_get(namespace: Any, flag: Any, raise_exc: bool = True, default: Any | None = None) Any[源代码]

获取标记值

注:不同的对象并不共享 namespacenamespace 只适用于单个对象

参数:
  • namespace (Any) -- 命名空间

  • flag (Any) -- 标记

  • raise_exc (bool) -- 为 True,则在标记不存在时引发 KeyError

  • default (Any | None) -- 标记不存在时的默认值,只在 raise_excFalse 时有效

返回:

标记值

返回类型:

Any

flag_check(namespace: Any, flag: Any, val: Any | None = None, check_val: bool = True, use_id: bool = False) bool[源代码]

检查标记

注:不同的对象并不共享 namespacenamespace 只适用于单个对象

参数:
  • namespace (Any) -- 命名空间

  • flag (Any) -- 标记

  • val (Any | None) -- 标记值

  • check_val (bool) -- 为 True 则需要值也一致

  • use_id (bool) -- 为 True 则使用 is 判断 val,否则调用 == 判断 val

返回:

是否通过检查

返回类型:

bool

async flag_wait(namespace: Any, flag: Any, val: Any | None = None, wait_val: bool = True, use_id: bool = False) None[源代码]

等待标记

注:不同的对象并不共享 namespacenamespace 只适用于单个对象

参数:
  • namespace (Any) -- 命名空间

  • flag (Any) -- 标记

  • val (Any | None) -- 标记值

  • wait_val (bool) -- 为 True 则需要值也一致

  • use_id (bool) -- 为 True 则使用 is 判断 val,否则调用 == 判断 val

返回类型:

None

class melobot.mixin.AttrReprMixin[源代码]

基类:object

属性 repr 混合类

继承后自动依靠实例属性生成 repr

class melobot.mixin.HookMixin[源代码]

基类:Generic[HookEnumT]

hook 混合类

继承后可注册 hook

__init__(hook_type: type[HookEnumT], hook_tag: str | None = None)[源代码]

实例化一个 hook 混合类

参数:
  • hook_type (type[HookEnumT]) -- hook 阶段的枚举类型

  • hook_tag (str | None) -- 在日志信息中显示的 tag

on(*periods: HookEnumT) Callable[[SyncOrAsyncCallable[P, None]], AsyncCallable[P, None]][源代码]

注册一个 hook

参数:

periods (HookEnumT) -- 要绑定的 hook 类型

返回:

装饰器

返回类型:

Callable[[SyncOrAsyncCallable[~P, None]], AsyncCallable[~P, None]]