bravado的异步http客户端

bravado-asyncio的Python项目详细描述


https://img.shields.io/travis/sjaensch/bravado-asyncio.svghttps://coveralls.io/repos/github/sjaensch/bravado-asyncio/badge.svg?branch=masterPyPi versionSupported Python versions

虚张声势的异步

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。

  1. 运行make。这将创建用于开发的virtualenv,其中包含所有运行时和开发 已安装依赖项。
  2. 如果您正在使用aactivator,则系统将提示您激活新的 环境,请这样做。如果您不喜欢使用激活器,请执行source .activate.sh
  3. 通过运行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)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有嵌套JAR的java RCP ClassNotFoundException   java在输入框中设置默认值,crud应用程序使用spring   java如何在Heroku中使用fs创建新文件   java将JPanel放在JFrame中   java这个正则表达式会匹配“i.imgur.com/xxx”吗?   java在片段内创建RecylerView,而无需在Android中设置片段   Android上Groovy导致java错误的双精度浮点精度损失   swing Java查找JFrame属于JPanel的内容   java Spring junit自连线自定义类本身必须有构造函数吗?   java textswitcher支持前面的文本   从Android客户端到JAXRS的java Post自定义对象   java如何检索JSON数据并使用MPAndroidChart绘制折线图,以及在安卓上的改进   拒绝用户“root”@“localhost”的java c3p0访问(使用密码“是”)   使用Selenium Webdriver自动化ExtJS应用程序时java面临的问题