跳到内容

async-zero-sleep (ASYNC115)

派生自 flake8-async linter。

修复总是可用的。

作用

检查 trio.sleep(0)anyio.sleep(0) 的用法。

为什么这不好?

trio.sleep(0) 相当于调用 trio.lowlevel.checkpoint()。 然而,后者更能表达代码的意图。

示例

import trio


async def func():
    await trio.sleep(0)

建议改为

import trio


async def func():
    await trio.lowlevel.checkpoint()

修复安全性

如果 trio.sleep(0) 表达式中有注释,则此规则的修复被标记为不安全,因为注释可能会被删除。

例如,在以下情况下,修复将被标记为不安全

import trio


async def func():
    await trio.sleep(  # comment
        # comment
        0
    )