异步程序的超时上下文管理器

async_timeout的Python项目详细描述


异步超时

https://travis-ci.org/aio-libs/async-timeout.svg?branch=masterhttps://codecov.io/gh/aio-libs/async-timeout/branch/master/graph/badge.svghttps://img.shields.io/pypi/v/async-timeout.svgChat on Gitter

异步兼容超时上下文管理器。

使用示例

上下文管理器在应用超时时非常有用 围绕代码块的逻辑,或者当asyncio.wait_for()是 不合适。而且比^{tt1}快得多$ 因为timeout不创建新任务。

timeout(timeout, *, loop=None)调用返回一个上下文管理器 在timeout过期时取消块:

async with timeout(1.5):
    await inner()
  1. 如果inner()的执行速度超过1.5秒,则无 发生。
  2. 否则,inner()将通过发送 asyncio.CancelledError进入,但是asyncio.TimeoutError是 在上下文管理器范围之外引发。

timeout参数可以是None,用于跳过超时功能。

上下文管理器具有.expired属性,用于检查是否发生超时 完全在上下文管理器中:

async with timeout(1.5) as cm:
    await inner()
print(cm.expired)

如果inner()执行被取消,则属性为True。 超时上下文管理器。

如果inner()调用显式引发TimeoutErrorcm.expiredFalse

安装

$ pip install async-timeout

库仅为python 3!

作者和许可证

该模块由andrew svetlov编写。

它是apache 2授权的,免费提供。

更改

3.0.1(2018-10-09)

  • 更积极的打字(48)

3.0.0(2018-05-05)

  • 删除Python3.4,支持的最低版本是Python3.5.3
  • 提供类型注释

2.0.1(2018-03-13)

  • 修复python 3.7上的PendingDeprecationWarning(33)

2.0.0(2017-10-09)

  • 更改了超时<;=0行为
    • 向后不兼容更改,在此版本之前 无的快捷方式
    • 当timeout<;=0timeouterror提高得更快时

1.4.0(2017-09-09)

  • 实现剩余属性(20)
    • 如果超时尚未启动或未受限制启动: 剩余
    • 如果超时过期:剩余0.0
    • 所有其他:触发Timeouterror之前的大致时间量

1.3.0(2017-08-23)

  • 超时时不要抑制嵌套异常。异常上下文点 在已取消且已暂停的线路上等待(13)
  • 引入.timeout属性(16)
  • 添加用作异步上下文管理器的方法(9)

1.2.1(2017-05-02)

  • 支持未发布事件循环的“当前任务”API。

1.2.0(2017-03-11)

  • 上下文管理器退出< /LI>
  • 0表示无操作超时

1.1.0(2016-10-20)

  • 重命名为异步超时

1.0.0(2016-09-09)

  • 第一个版本。

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

推荐PyPI第三方库


热门话题
java Google Billing Library:QueryPurchaseAsync:取消购买的订阅资源未返回   java转换列表mapsturct中的单个对象   java简单算法。我做不好   包含集合的@ManyToMany映射的java JPA2持久性   在Java中序列化和反序列化对象时发生BuffereImage错误   java使用ui:param传递值并在backingbean中访问它们   java从应用程序读取配置。yml至POJO列表地图   java中在while循环外部调用文件值   java如何与来自不同类的UI交互   java如何在jTable中显示2D数组?   在Java 8中,类为什么不从接口继承默认方法?   java类。getAnnotation和getAnnotations无法正常工作   java处理pagertabstrip上的触摸事件   java GWT和struts2异常   用Java解析HTTP查询字符串   java这段代码SQL注入安全吗?