===== cassiacommon ===== 提供了常用的工具类或函数。 SimpleFuture ===== 一个轻量级的异步结果容器,用于在异步代码中等待一个事件完成并获取其结果。 ----- 示例 ----- .. literalinclude:: ../../../../example/cassiacommon/simple_future.py :language: python :linenos: ----- API ----- .. py:class:: SimpleFuture 轻量级一次性事件同步原语,基于 `asyncio.ThreadSafeFlag` 实现。 .. py:method:: __init__() -> SimpleFuture 初始化对象 .. py:method:: set_result(code, value) 设置结果并唤醒等待者。只能生效一次,重复调用会被忽略。 :parameters: - code: 自定义状态码 - value: 需要传递的数据 :returns: 无 .. py:method:: wait() -> Tuple[code, value] :async: 挂起直到结果就绪,然后返回打包好的数据。 :parameters: 无 :returns: - code: 自定义状态码 - value: 传递的数据 ^^^^ AsyncQueue ===== 一个轻量级的异步队列,用于在异步任务之间传递数据。 ----- 示例 ----- .. literalinclude:: ../../../../example/cassiacommon/async_queue.py :language: python :linenos: ----- API ----- .. py:class:: AsyncQueue 轻量级一次性事件同步原语,基于 `asyncio.ThreadSafeFlag` 实现。 .. py:method:: __init__(max_size=16) -> AsyncQueue 初始化对象 .. py:method:: put_nowait(item) 非阻塞放入元素。如果队列已满,则直接丢弃,不抛出异常。 :parameters: - item: 待放入的对象 :returns: 无 .. py:method:: get() -> Any :async: 取出队首元素。若队列为空,则挂起直到有数据。 :parameters: 无 :returns: 最早放入的元素