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