Я унаследовал огромную базу кода, в которой мне нужно внести небольшие изменения. Мне было интересно, есть ли утилит, которые будут анализировать код python и давать зависимости между функциями, например, если я вношу изменения в функцию, я хочу быть уверенным, что я не сломаю другие функции, поэтому, если бы я мог видеть на графике, как диаграмма, облегчит мне жизнь.Создание графиков зависимостей в Python
ответ
- Обычно «зависимость» определяется для импорта модулей/пакетов.
Что вы ищете - это визуализирующий поток вызовов.
Вы можете по-прежнему не гарантирует, что вы не нарушите функциональность :)
Мой опыт и решения:
Много раз, я обнаружил, что поток вызовов данные подавляющие, а диаграмма слишком сложная. Итак, что я обычно делаю, это поток вызова вызова частично для функции, меня интересует.
Это делается с помощью функции sys.settrace (...). После генерации потоков вызовов в виде текстовых данных я генерирую график вызовов, используя graphviz.
- http://docs.python.org/library/sys.html
- On call tracing
- Для создания графики, использовать Graphviz решения от networkX.
[Edit: на основе комментариев]
Тогда мое решение по частям работает лучше. Просто вставьте код и используйте декоратор на функцию, которую вы хотите проследить. Вы увидите промежутки, в которых отложенные изображения попадают в картину, но это может быть выработано. Вы не получите полную картину напрямую.
Я пытался это сделать и сделал few post, который работает на этом понимании.
+1 для последнего вопроса о гарантиях. Я был бы очень впечатлен, если бы он мог следовать многим типам кода, который использует много HOF и других динамических функций. Я полагаю, что это было бы полезно в основном для оценки работы программистов, которые либо недостаточно умны, чтобы использовать такие функции, либо достаточно умны, чтобы этого не делать. – aaronasterling
Я не ищу серебряную пулю. Я ищу больше, чтобы дать мне общую идею. – anijhaw
@anijhaw: Тогда вы его получили. :) pycallgraph должен выполнять свою работу. Я также предоставил решение, которое я использую чаще, чтобы узнать, что происходит. Однако это может быть затруднено. Попробуйте трассировать вызовы в скрученном приложении. – pyfunc
- 1. Разрешение графиков зависимостей в Unity
- 2. Создание графиков в графическом интерфейсе Python
- 3. Создание графиков в Excel из сценария Python
- 4. Создание графиков в VB
- 5. Создание графиков в LINQPad
- 6. Создание полезных графиков excel с python
- 7. Создание динамических графиков с помощью python
- 8. создание графиков с xCode
- 9. Создание сетевых графиков
- 10. Создание профессиональных графиков в Windows
- 11. Создание графиков в приложении RubyOnRails
- 12. Создание полноэкранных графиков в bokeh
- 13. Графики графиков в Python
- 14. Несколько графиков в python
- 15. Создание установщика Windows для Python + набор зависимостей
- 16. Исключение определенных заголовков из графиков зависимостей
- 17. Doxygen: Можно ли контролировать ориентацию графиков зависимостей?
- 18. Создание графиков из CSV-файла
- 19. Создание графиков с использованием Raphaël
- 20. Создание графиков, готовых для печати
- 21. Создание RDF из графиков RDF
- 22. Рекурсивное создание нескольких графиков Google
- 23. SPSS 21 - создание лучших графиков
- 24. Улучшение контурных графиков в Python
- 25. Формирование графиков гистограммы в python
- 26. Несколько графиков на python
- 27. Создание графиков в цикле в r
- 28. Библиотека графиков Python
- 29. Python: Создание нескольких графиков на одной фигуре с помощью цикла
- 30. Создание зависимостей в планировщике задач
См. Также http://stackoverflow.com/questions/798389/python-tool-that-builds-a-dependency-diagram-for-methods-of-a-class – Vanuan