Я унаследовал огромную базу кода, в которой мне нужно внести небольшие изменения. Мне было интересно, есть ли утилит, которые будут анализировать код python и давать зависимости между функциями, например, если я вношу изменения в функцию, я хочу быть уверенным, что я не сломаю другие функции, поэтому, если бы я мог видеть на графике, как диаграмма, облегчит мне жизнь.
Создание графиков зависимостей в Python
Ответ 1
- Обычно для импорта модулей/пакетов определяется "зависимость".
-
То, что вы ищете, - это визуализирующий поток вызовов.
-
Вы все равно не можете гарантировать, что вы не нарушите функциональность:)
-
Мой опыт и решение:
Много раз, я нашел данные потока вызовов подавляющими, а диаграмма слишком сложна. Итак, что я обычно делаю, это поток вызова вызова частично для функции, меня интересует.
Это делается с помощью функции sys.settrace(...). После генерации потоков вызовов в виде текстовых данных я генерирую график вызовов, используя graphviz.
- http://docs.python.org/library/sys.html
- Трассировка вызовов
- Для генерации графов используйте графические решения из networkX.
[Изменить: на основе комментариев]
Тогда мое частное решение работает лучше. Просто вставьте код и используйте декоратор на функцию, которую вы хотите проследить. Вы увидите промежутки, в которых отложенные изображения попадают в картину, но это может быть выработано. Вы не получите полную картину напрямую.
Я пытался это сделать и сделал несколько сообщений, которые работают над этим пониманием.