Création de graphiques de dépendance en Python

J'ai hérité d'une énorme base de code dans laquelle je dois faire de petits changements. Je me demandais s'il y avait des utilitaires qui analyseraient le code python et donneraient des dépendances entre les fonctions, comme si je modifiais une fonction, je veux être sûr que je ne casse pas d'autres fonctions, donc si je pouvais voir dans un graphique comme un diagramme cela me rendrait la vie plus facile.

25
demandé sur Jean-Paul Calderone 2010-11-12 04:00:44

1 réponses

  • Habituellement, la "dépendance" est définie pour l'importation de module / paquet.
  • Ce que vous cherchez est un flux d'appel de visualisation.

  • Vous ne pouvez toujours pas garantir que vous ne casserez pas la fonctionnalité :)

  • Mon expérience et ma solution:

    Plusieurs fois, j'ai trouvé les données de flux d'appels accablantes et le diagramme trop complexe. Donc ce que je fais habituellement est de tracer le flux d'appel partiellement pour la fonction, je suis intéressé.

    Cela se fait en utilisant le sys.settrace(...) fonction. Après avoir généré les flux d'appels en tant que données textuelles, je génère un graphique d'appel en utilisant graphviz.

[Edit: basé sur les commentaires]

Alors ma solution au coup par coup fonctionne mieux. Il suffit d'insérer le code et utiliser le décorateur sur une fonction que vous voulez tracer. Vous verrez des lacunes où différé entre en image, mais qui peut être élaboré. Vous ne serez pas obtenir l'image complète directement.

J'ai essayé de le faire et j'ai fait un few post {[9] } qui fonctionne sur cette compréhension.

22
répondu pyfunc 2010-11-12 03:05:56