Estoy explorando una enorme clase de Python heredada que tiene muchos métodos. Finalmente rompo los complejos en pedazos más pequeños, por lo que la cantidad de métodos aumenta aún más. Me pregunto si hay una herramienta que pueda escanear el código de Python y construir algún tipo de diagrama de dependencia para sus métodos.Herramienta de Python que crea un diagrama de dependencia para los métodos de una clase
I definen método x()
ser una dependencia del método y()
si x()
se llama al menos una vez en y()
.
Podría utilizar una herramienta para aislar (si es posible) subconjuntos de métodos de clase que no tienen dependencias externas (todas sus dependencias son métodos del mismo subconjunto).
Estoy planeando mover algunas funcionalidades a otras clases y creo que ese enfoque me ayudaría a decidir qué partes extraer de la enorme clase inicial.
Editar: Realmente me gustaría una herramienta de línea de comandos.
si tiene pruebas unitarias para la clase que podría usar pycallgraph pycallgraph.slowchop.com – jfs
pycallgraph is great. El único inconveniente es que obtengo gráficos monstruosos. Mi solución probablemente creará gráficos más pequeños para las sub porciones del programa mientras se ejecutan. Afortunadamente para mí, mi programa tiene algunas fases distintas de ejecución que los gráficos separados tienen sentido. –