Python 3.14+Асинхронное программированиефункция
asyncio.capture_call_graph()
граф вызовов
Снимает асинхронный граф вызовов: какая задача что выполняет и кто её ждёт. Возвращает FutureCallGraph или None вне задачи.
Синтаксис
graph = asyncio.capture_call_graph(future=None, /, *, depth=1, limit=None)
Обычный traceback в asyncio обрывается на границе задачи: виден стек самой корутины, но не то, какая задача её ждёт. Граф добавляет awaited_by — цепочку ожидающих задач, вплоть до main. Без аргумента берётся текущая задача; limit обрезает стеки, а limit=0 оставляет только связи ожидания, что дешевле. Появилась в 3.14.
Примеры
# Python 3.14+
import asyncio
async def child():
graph = asyncio.capture_call_graph()
print(graph.future.get_name()) # → child
print([g.future.get_name() for g in graph.awaited_by]) # → ['Task-1'] — её ждёт main
print(asyncio.capture_call_graph(limit=0).call_stack) # → ()
async def main():
await asyncio.create_task(child(), name='child')
asyncio.run(main())
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности