Python Glossary English

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Сообщить о неточности