跳转到主要内容

一个基于未来的Python异步库。

项目描述

duet

注意:duet-async 已更名为 duet。请使用它。

一个基于未来的Python异步库

Duet 从惊人的 trio 库和它使用的结构化并发异步编程方法中汲取灵感。然而,duet 与 trio 在两个方面有所不同

  • duet 依赖于 Future 接口进行并行处理,而不是实现完整的异步IO,它提供了一个在那些 Future 周围运行 async/await 协程的方法。如果你使用的是返回 futures 的 API,例如 gRPC 这样的 RPC 库,这将很有用。标准的 Future 接口没有直接实现 __await__,因此必须将 Future 实例包装在 duet.AwaitableFuture 中。

  • duet 是可重入的。在顶层,你通过调用 duet.run(foo) 来运行异步代码。在 foo 内部,假设你调用了一个尚未完全重构为异步的函数,但该函数本身调用了 duet.run(bar)。大多数异步库,包括 trioasyncio,如果以这种方式尝试“重入”事件循环,将会引发异常,但 duet 允许这样做。我们发现,这可以简化将代码重构为异步的过程,因为你不需要一次性完全分离代码库中的同步和异步部分。

安装

从 PyPI 安装

pip install duet-async

注意

duet 不是一个官方的 Google 项目。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

duet-async-0.1.3.tar.gz (20.5 kB 查看哈希值)

上传时间 源代码

构建分发

duet_async-0.1.3-py3-none-any.whl (24.9 kB 查看哈希值)

上传时间 Python 3

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面