Python Glossary English

Python 3.14+Асинхронное программированиефункция

asyncio.print_call_graph()

граф вызовов

Печатает асинхронный граф вызовов текущей задачи или переданного Future: стек корутины и цепочку задач, которые её ждут.

Синтаксис

asyncio.print_call_graph(future=None, /, *, file=None, depth=1, limit=None)

Аналог traceback.print_stack() для asyncio: обычный стек кончается на границе задачи, а здесь видно, кто кого ждёт. По умолчанию пишет в sys.stdout, а не в stderr, как traceback; параметр file перенаправляет вывод, например в io.StringIO или в лог-файл. Вывод содержит пути и адреса, поэтому от запуска к запуску различается. Появилась в 3.14.

Примеры

# Python 3.14+
import asyncio
import io
async def child():
    buf = io.StringIO()
    asyncio.print_call_graph(file=buf, limit=0)
    print(buf.getvalue().count('* Task('))  # → 2 — child и ждущая её main
async def main():
    await asyncio.create_task(child(), name='child')
asyncio.run(main())

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности