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第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储