はじめに
リファクタリングのために,モジュール間の関係図を作る.
Pythonでモジュールの依存関係図を描きたいとかPython dependencies inside a package によると,
snakefood が良さそうだったので使ってみた.
snakefood
pip でインストール可能.
$ pip install snakefood
いくつかのコマンドが提供されているが,
sfood
で解析し,stood-graph
で Graphviz 用の dot ファイルを書き出せる.
解析したいパッケージのルートが ROOT
だとすると,
$ sfood ROOT | sfood-graph > graph.dot
で graph.dot
ができるので,後は適当にプロットする.
$ dot -Tjpg graph.dot -o graph.jpg -Gdpi=800
モジュールが多い場合解像度(-Gdpi
オプションの値)は大きめに設定しないと潰れて読めなくなる.
jpg 以外で出力する場合は,-Tpng
などとすれば良い.
なお,sfood
に -i
オプションをつけると,外部パッケージは省くことができる.
サンプル
参考までに,selenium で試した結果を掲載しておく.
その他
pyreverseの結果の見方とオプションの使い方 によるとpyreverse というツールでもいけるみたい.