Skip to content

async-zero-sleep (ASYNC115)

Derived from the flake8-async linter.

Fix is always available.

What it does

Checks for uses of trio.sleep(0) or anyio.sleep(0).

Why is this bad?

trio.sleep(0) is equivalent to calling trio.lowlevel.checkpoint(). However, the latter better conveys the intent of the code.

Example

import trio


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

Use instead:

import trio


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