Heredé una gran base de código en la que necesito hacer algunos pequeños cambios. Me preguntaba si habría utilidades que analizarían el código python y darían dependencias entre funciones, como si, si hiciera cambios a una función, quisiera asegurarme de que no rompo otras funciones, así que si pudiera ver en un gráfico como el diagrama, me haría la vida más fácil.Creando Gráficos de Dependencia en Python
Respuesta
- Por lo general, la "dependencia" se define para la importación de módulo/paquete.
Lo que está buscando es una visualización del flujo de llamadas.
Puede no tendría ninguna garantía de que no se rompa la funcionalidad :)
mi experiencia y soluciones:
Muchas veces, he encontrado el flujo de llamadas datos abrumadores y el diagrama demasiado complejo. Lo que suelo hacer es rastrear el flujo de llamadas parcialmente para la función, estoy interesado en.
Esto se hace mediante la función sys.settrace (...). Después de generar los flujos de llamadas como datos de texto, genero un gráfico de llamadas usando graphviz.
- http://docs.python.org/library/sys.html
- On call tracing
- Para la generación de gráficos, utilizar soluciones graphviz de networkX.
[Editar: basado en los comentarios]
Entonces mi solución fragmentaria funciona mejor. Simplemente inserte el código y use el decorador en una función que quiera rastrear. Verá las lagunas en las que el diferido entra en escena, pero eso puede resolverse. No obtendrá la imagen completa directamente.
He estado tratando de hacer eso e hice un few post que funciona en ese entendimiento.
+1 para el último punto sobre garantías. Me quedaría muy impresionado si pudiera seguir gran parte del tipo de código que usa mucho HOF y otras características dinámicas. Me imagino que sería útil principalmente para evaluar el trabajo de los programadores que no son lo suficientemente inteligentes como para usar tales características o lo suficientemente inteligentes como para no hacerlo. – aaronasterling
No estoy buscando una bala de plata. Lo que estoy buscando es más para darme una idea general. – anijhaw
@anijhaw: Entonces lo tienes. :) pycallgraph debería hacer tu trabajo. También proporcioné la solución que uso con más frecuencia para saber qué sucede. Esto puede ser difícil sin embargo. Trate de rastrear llamadas en una aplicación retorcida. – pyfunc
- 1. Creando Gráficos en un iPad/iPhone
- 2. Gráficos financieros/Gráficos en Ruby o Python
- 3. Dependencia circular en Python
- 4. Gráficos de control en Python
- 5. Impresión de gráficos en Python
- 6. Algoritmo para calcular ordenamientos parciales de gráficos de dependencia
- 7. Dependencia del módulo Python
- 8. circular dependencia de las importaciones en Python
- 9. creando una cadena de dos en python
- 10. R: Creando gráficos donde los nodos son imágenes
- 11. Gráficos y tablas bonitas en Python
- 12. Creando una CLI (¿Shell?) En Python
- 13. Creando mi propio objeto "entero" en Python
- 14. Creando un nuevo dict en Python
- 15. creando una lista por defecto en python
- 16. Creando un archivo PNG en Python
- 17. Python: cómo trazar gráficos en 3D con Python?
- 18. lienzo interactivo de gráficos vectoriales para python?
- 19. Base de datos de gráficos y triplestores RDF: almacenamiento de datos de gráficos en python
- 20. Python - Creando un sistema de "scripting"
- 21. Python 3 Creando una matriz de bytes
- 22. Python creando un diccionario de listas
- 23. Trazado de gráficos con cintas de error en python
- 24. Creando extensiones C de Python de 64 bits en Windows
- 25. submandato python argparse con dependencia y conflicto
- 26. Gráficos 3D/4D con Python y wxPython?
- 27. Python creando una lista con itertools.product?
- 28. Barras etiquetadas individualmente para gráficos de barras en matplotlib/Python
- 29. Creando un archivo XML simple usando python
- 30. ¿Buen marco para gráficos en vivo en Python?
Vea también http://stackoverflow.com/questions/798389/python-tool-that-builds-a-dependency-diagram-for-methods-of-a-class – Vanuan