Создание графиков зависимостей в Python

Я унаследовал огромную кодовую базу, в которую нужно внести небольшие изменения. Мне было интересно, есть ли утилиты, которые будут анализировать код Python и давать зависимости между функциями, как если бы я вносил изменения в функцию, я хотел бы быть уверен, что я не нарушу другие функции, поэтому, если бы я мог видеть на графике, подобном диаграмме, это сделает мою жизнь проще

1 ответ

Решение
  • Обычно "зависимость" определяется для импорта модуля / пакета.
  • То, что вы ищете, это визуализация потока вызовов.

  • Вы все еще не можете гарантировать, что не нарушите функциональность:)

  • Мой опыт и решение:

    Много раз я находил данные о потоке вызовов перегруженными и диаграмму слишком сложной. Итак, что я обычно делаю, так это отслеживание потока вызовов частично для интересующей меня функции.

    Это делается с помощью функции sys.settrace(...). После генерации потоков вызовов в виде текстовых данных я генерирую граф вызовов с помощью graphviz.

[Редактировать: на основе комментариев]

Тогда мое частичное решение работает лучше. Просто вставьте код и используйте декоратор для функции, которую вы хотите отследить. Вы увидите пробелы, где отложенное время входит в картину, но это может быть решено. Вы не получите полную картину напрямую.

Я пытался сделать это и сделал несколько постов, которые работают на этом понимании.

Другие вопросы по тегам