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