异步代码的同步包装器
async-services的Python项目详细描述
异步服务
从同步代码运行快速异步代码。异步服务提供要运行的同步包装器 第三方异步代码或任何与同步代码同步的协同程序。
安装
pip install async_services
用于开发目的
安装项目依赖项
pip install -r requirements.txt
pip install -U .
运行测试
您可以使用以下命令运行测试
pytest .
以及编码风格测试
pycodestyle .
示例用法
from async_services.core import run_coro, run_manager, stop_manager
from async_services.core.manager import CoroStatus
import asyncio
async def coroutine(seconds=1, raise_exception=False):
await asyncio.sleep(seconds)
if raise_exception:
raise Exception("Sample Exception")
return "Hello World"
run_manager()
result = run_coro(coroutine(), block=True)
print(result)
assert result[0] == CoroStatus.Completed
assert result[1] == "Hello World"
stop_manager()
输出
结果将是由两个值(status、result)组成的元组。 状态将是介于0和5之间的整数,它定义了coruotine的状态
(1, 'Hello World')
协同程序状态
目前有六种状态的科罗汀
- 排队=0->;协同程序仍在排队等待执行或正在执行中
- 已完成=1->;协同程序已成功完成
- failed=2->;协同程序已成功完成,但回调函数引发异常
- 已取消=3->;已取消协同旅行
- 超时=4->;协同程序未在给定时间内完成
- CoroutineException=5->;Coroutine本身引发了异常
作者
- ankit kathuria-initial work
许可证
这个项目是在麻省理工学院的许可下授权的-详细信息请参见LICENSE.md文件
致谢
- 向任何使用过代码的人提供帽子小费
- 灵感
- 等