Herramienta de Python que crea un diagtwig de dependencia para los métodos de una clase

Estoy investigando una enorme clase de Python heredada que tiene muchos métodos. Eventualmente, 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 diagtwig de dependencia para sus métodos.

Defino que el método x() es una dependencia del método y() si se llama a x() al menos una vez en y() .

Podría usar dicha 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 alguna funcionalidad a otras clases y creo que tal enfoque me ayudaría a decidir qué partes extraer de la gran clase inicial.

Edición: Realmente me gustaría una herramienta de línea de comandos.

¿ Ya has visto Snakefood ? Parece que es exactamente lo que estás buscando.

¿Has probado pydev ? Es una extensión de python para eclipse. Creo que le permite usar la función “jerarquía de llamadas” de Eclipse para ver un gráfico de llamadas para un método determinado. No es exactamente lo que quieres, pero tal vez sea suficiente para empezar.

Estaba confundido en esta pregunta también, he encontrado un asistente de búsqueda que me ayuda a encontrar la jerarquía de llamadas de otra manera. No es muy bueno pero es mejor que el donot. perdón por mi inglés.

ps.IDE eclipse + pydev

Pycallgraph debe hacer lo que está buscando.