Ruff asyncio-dangling-task (RUF006)
asyncio-dangling-task в Ruff проверяет код на предупреждение RUF006. Правило относится к группе Ruff-specific rules.
Почему это неправильно
Эти проверки реализованы самим Ruff и закрывают практические проблемы, которые не относятся к одному внешнему плагину.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила asyncio-dangling-task и пример ниже.
Пример ошибки
import asyncio
for i in range(10):
# This creates a weak reference to the task, which may be garbage
# collected at any time.
asyncio.create_task(some_coro(param=i))
Как правильно
import asyncio
background_tasks = set()
for i in range(10):
task = asyncio.create_task(some_coro(param=i))
# Add task to the set. This creates a strong reference.
background_tasks.add(task)
# To prevent keeping references to finished tasks forever,
# make each task remove its own reference from the set after
# completion:
task.add_done_callback(background_tasks.discard)
Автоисправление
Ruff не предлагает автоисправление для этого правила.
