melobot.handle¶
处理流¶
- class melobot.handle.Flow[源代码]¶
基类:
object
处理流
- 变量:
name (str) -- 处理流的标识
- __init__(name: str, *edge_maps: Iterable[Iterable[FlowNode] | FlowNode], priority: HandleLevel = HandleLevel.NORMAL, temp: bool = False) None [源代码]¶
初始化处理流
- property priority: HandleLevel¶
处理流的优先级
- async reset_priority(new_prior: HandleLevel) None [源代码]¶
重设处理流的优先级
不会立即生效,通常会在下一次进入处理流前生效。 因此返回时不代表已经更改优先级,只是添加了计划重设优先级的任务
- 参数:
new_prior (HandleLevel) -- 新优先级
- 返回类型:
None
- link(flow: Flow, priority: HandleLevel | None = None) Flow [源代码]¶
连接另一处理流返回新处理流,并设置新优先级
- 参数:
flow (Flow) -- 连接的新流
priority (HandleLevel | None) -- 新优先级,若为空,则使用两者中较小的优先级
- 返回:
新的处理流
- 返回类型:
处理节点¶
- melobot.handle.node(func: AsyncCallable[..., bool | None]) FlowNode [源代码]¶
处理结点装饰器,将当前异步可调用对象装饰为一个处理结点
- 参数:
func (AsyncCallable[..., bool | None])
- 返回类型:
- melobot.handle.no_deps_node(func: AsyncCallable[..., bool | None]) FlowNode [源代码]¶
与
node()
类似,但是不自动为结点标记依赖注入。需要后续使用
inject_deps()
手动标记依赖注入, 这适用于某些对处理结点进行再装饰的情况- 参数:
func (AsyncCallable[..., bool | None])
- 返回类型:
处理流控制¶
处理流状态¶
- class melobot.handle.FlowRecordStage[源代码]¶
基类:
Enum
流记录阶段的枚举
- FLOW_START = 'fs'¶
- FLOW_EARLY_FINISH = 'fef'¶
- FLOW_FINISH = 'ff'¶
- NODE_START = 'ns'¶
- DEPENDS_NOT_MATCH = 'dnm'¶
- BLOCK = 'bl'¶
- STOP = 'st'¶
- BYPASS = 'by'¶
- REWIND = 're'¶
- NODE_EARLY_FINISH = 'nef'¶
- NODE_FINISH = 'nf'¶
- class melobot.handle.FlowRecord[源代码]¶
基类:
object
流记录
- stage: FlowRecordStage¶
- event: model.Event¶
- melobot.handle.get_flow_records() tuple[FlowRecord, ...] [源代码]¶
获取当前上下文中的流记录
- 返回:
流记录
- 返回类型:
tuple[FlowRecord, ...]