Skip to content

blocking-os-call-in-async-function (ASYNC102)#

Derived from the flake8-async linter.

What it does#

Checks that async functions do not contain calls to blocking synchronous process calls via the os module.

Why is this bad?#

Blocking an async function via a blocking call will block the entire event loop, preventing it from executing other tasks while waiting for the call to complete, negating the benefits of asynchronous programming.

Instead of making a blocking call, use an equivalent asynchronous library or function.

Example#

async def foo():
    os.popen()

Use instead:

def foo():
    os.popen()