はじめに
リファクタリングのために,モジュール間の関係図を作る.
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 というツールでもいけるみたい.
