Ruff blocking-open-call-in-async-function (ASYNC230)

blocking-open-call-in-async-function в Ruff проверяет код на предупреждение ASYNC230. Правило относится к группе flake8-async.

Почему это неправильно

В асинхронном коде такие конструкции могут блокировать цикл событий, нарушать отмену задач или делать ожидания ненадёжными.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила blocking-open-call-in-async-function и пример ниже.

Пример ошибки

async def foo():
    with open("bar.txt") as f:
        contents = f.read()

Как правильно

import anyio


async def foo():
    async with await anyio.open_file("bar.txt") as f:
        contents = await f.read()

Автоисправление

Ruff не предлагает автоисправление для этого правила.