bravado的异步http客户端
bravado-asyncio的Python项目详细描述
虚张声势的异步
note:这不是使用异步编程的bravado的分叉或重新实现(就像aiomysql用于pymysql一样)。 虚张声势的界面保持不变。如果您正在开发完全异步的应用程序,则应该使用 aiobravado取而代之。
bravado asyncio是bravado library的异步http客户端。 它在内部使用python的asyncio和aiohttp。它使 使用bravado执行并发网络请求,类似于fido client。 与fido不同,bravado asyncio不依赖钩针或扭曲,使用python 3的标准库。 实现异步行为。
aiobravado是bravado的完全异步版本,在内部使用bravado-asyncio作为http客户端。
示例用法
如果您熟悉bravado,那么您只需关闭(或指定)您的http客户端:
frombravado_asyncio.http_clientimportAsyncioClientfrombravado.clientimportSwaggerClientclient=SwaggerClient.from_url('http://petstore.swagger.io/v2/swagger.json',http_client=AsyncioClient(),)pet=client.pet.getPetById(petId=42).result()
安装
# This will install bravado-asyncio and bravado $ pip install bravado-asyncio # To install bravado-asyncio with the optional cchardet and aiodns packages, # which are recommended by the underlying aiohttp package $ pip install bravado-asyncio[aiohttp_extras]
项目状态
尽管该项目已在yelp成功地投入生产,但仍在进行中。我们有一个整合 测试套件不仅涵盖bravado异步行为,还确保行为等于(默认值) 同步bravado http客户端。也就是说,如果你发现一个bug,请提交一个问题!
当前,内部和外部接口可能随时更改。也就是说,既然虚张声势 http客户端要坚持特定的接口,那些部分应该比较稳定。
开发和贡献
开发bravado-asyncio需要使用 virtualenv正在安装包。 所有其他需求将安装在venv目录中创建的virtualenv中。我们测试套件的完整运行 运行针对Python3.5和3.6的测试,因此如果希望这样做,也应该安装Python3.5。
- 运行make。这将创建用于开发的virtualenv,其中包含所有运行时和开发 已安装依赖项。
- 如果您正在使用aactivator,则系统将提示您激活新的 环境,请这样做。如果您不喜欢使用激活器,请执行source .activate.sh。
- 通过运行make test确保所有设置都正确。
由于make test将使用python 3.5和3.6运行测试,因此如果只安装其中一个测试,您将得到一个错误。 您可以要求tox使用特定的python版本运行测试,例如:
$ tox -e py35
这将使用Python3.5运行测试。
我们确实运行了当前需要Python3.6的linter。您可以使用tox -epre-commit运行它们。
travis(持续集成系统)将使用python 3.5和python3.6运行测试,因此请确保您没有 编写仅适用于Python3.6的代码。
太好了,你准备好了!如果您有改进或错误修复,请提交一个拉请求。
事件循环
bravado-asyncio在单独的线程中创建自己的事件循环。这是必要的,因为不可能使用 主事件循环-它需要一个bravado分支,使其公共接口异步。也就是说, {Tt1} $和BravADO应该与您现有的AssiCIO应用程序很好地工作。
通常不需要与bravado-asyncio的事件循环交互。如果您需要,请使用 bravado_asyncio.http_client.get_loop()来检索它。注意,它不会是当前活动的循环!
许可证
由Stephan Jaensch编写,并根据BSD 3条款许可证获得许可(见LICENSE.txt)。