Pythonで依存関係グラフを作成します
-
08-10-2019 - |
質問
私はいくつかの小さな変更を加える必要がある巨大なコードベースを継承しました。関数に変更を加えた場合、他の機能を壊さないことを確認したいので、ダイアグラムのようなグラフで見ることができる場合、私はPythonコードを解析して関数間で依存関係を与えるユーティリティがあるかどうか疑問に思っていました。私の人生を楽にするでしょう。
解決
- 通常、「依存関係」はモジュール /パッケージのインポートに対して定義されます。
あなたが探しているのは、視覚化コールフローです。
あなたはまだあなたが機能を破らないことを保証することはできません:)
私の経験と解決策:
多くの場合、コールフローデータが圧倒され、図が複雑すぎることがわかりました。したがって、私が通常することは、関数のために部分的にトレースコールフローです、私は興味があります。
これは、sys.settrace(...)関数を利用することによって行われます。テキストデータとしてコールフローを生成した後、graphvizを使用してコールグラフを生成します。
- http://docs.python.org/library/sys.html
- オンコールトレース
- グラフを生成するには、graphvizソリューションを使用します NetworkX.
編集:コメントに基づいて
その後、私の断片的なソリューションはよりうまく機能します。コードを挿入し、トレースする関数にデコレーターを使用します。延期が写真に登場するが、それが解決できるギャップが表示されます。完全な画像は直接入手できません。
私はそれをしようとしていて、 いくつかの投稿 それはその理解に取り組んでいます。
所属していません StackOverflow