Ruff cancel-scope-no-checkpoint (ASYNC100)

cancel-scope-no-checkpoint в Ruff проверяет код на предупреждение ASYNC100. Правило относится к группе flake8-async.

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

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

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила cancel-scope-no-checkpoint и пример ниже.

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

async def func():
    async with asyncio.timeout(2):
        do_something()

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

async def func():
    async with asyncio.timeout(2):
        do_something()
        await awaitable()

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

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