Djangoのモデル、フォーム、ビュー、マイグレーションをPylintに認識させ、誤検知を減らすプラグインです。
jendrikseipp/vulture
Pythonプロジェクト内の未使用コードや到達不能コードを検出する静的解析ツール。
- スター
- 4,875
- フォーク
- 209
- 未解決の Issue
- 76
- 最終コミット
- 26 日前
これは何?
VultureはPythonのファイルやディレクトリをスキャンし、定義されているものの一度も使われていない関数、クラス、属性、変数、import、到達不能な分岐などを検出します。抽象構文木を静的解析するため、コードは実行しません。各検出結果には60%から100%の信頼度が付与され、--min-confidenceフラグを使うと、確度の低い推測を除外して、確実なデッドコードだけを報告できます。
Pythonは動的な言語であるため、Vultureがデッドコードを見逃したり、暗黙的に呼び出されるコードを誤検出したりする場合があります。誤検出に対処するため、使用されているものとして扱うホワイトリストファイル、名前・デコレーター・パスに対するglobベースの除外ルール、pyproject.tomlによる設定をサポートしています。結果はサイズ順に並べ替えて、優先的にクリーンアップする箇所を決めることもできます。
VultureはCLIとして実行できるほか、Pythonモジュールとして呼び出したり、API経由でプログラムから利用したり、pre-commitフックに追加したりできます。出力形式はpyflakesと同じです。
主な機能
- 01未使用の関数、クラス、メソッド、属性、変数、importを検出
- 02return、raise、break、continueの後にある到達不能コードを検出
- 03信頼度を付与し、--min-confidenceで結果を絞り込み
- 04誤検出を抑制するホワイトリストファイルに対応
- 05pyproject.tomlで設定でき、Python APIとしても利用可能
ユースケース
- デッドコードが蓄積した大規模なPythonコードベースの整理
- ライブラリとそのテストスイートの両方にVultureを実行して、テストされていないコードを発見
- pre-commitやCIでデッドコードのチェックを自動実行
クイックスタート
- 1
PyPIからVultureをインストールします
pip install vulture - 2
Pythonスクリプトまたはパッケージディレクトリに対してVultureを実行します
vulture myscript.py mypackage/
使う前に知っておきたいこと
- Pythonは動的な性質を持つため、未使用コードを見逃したり、暗黙的に呼び出されるコードを未使用と報告したりすることがあります。
- 100%未満の信頼度は、非常に大まかな推定値です。
トピック
よくある質問
- vulture とは?
- Pythonプロジェクト内の未使用コードや到達不能コードを検出する静的解析ツール。 VultureはPythonのファイルやディレクトリをスキャンし、定義されているものの一度も使われていない関数、クラス、属性、変数、import、到達不能な分岐などを検出します。抽象構文木を静的解析するため、コードは実行しません。各検出結果には60%から100%の信頼度が付与され、--min-confidenceフラグを使うと、確度の低い推測を除外して、確実なデッドコードだけを報告できます。
- vulture は無料で使えますか?ライセンスは?
- vulture は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- vulture は今もメンテナンスされていますか?
- 活発にメンテナンス中。vulture の最終コミットは 2026年10月12日 です。
- vulture は何に使えますか?
- デッドコードが蓄積した大規模なPythonコードベースの整理 ライブラリとそのテストスイートの両方にVultureを実行して、テストされていないコードを発見 pre-commitやCIでデッドコードのチェックを自動実行
- vulture のインストール方法は?
- PyPIからVultureをインストールします: pip install vulture Pythonスクリプトまたはパッケージディレクトリに対してVultureを実行します: vulture myscript.py mypackage/
- vulture はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/jendrikseipp/vulture
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
プロジェクトごとに設定できる200以上のルールで、Swiftのスタイルや規約をチェックするリンターです。
バグや脆弱性、保守性の問題をスキャンし、CIパイプラインでQuality Gatesを適用するセルフホスト型のコード品質・セキュリティプラットフォーム。
PHP_CodeSniffer用のルールセット。別のPHPバージョンでは動作しない機能や関数を使っているコードを検出します。
PHPの静的解析、テスト、コード品質ツールを多数まとめたDockerイメージ。ローカルにPHPツールをインストールせずに実行できます。
Jupyter Notebook上でruff、isort、black、mypy、flake8などのPythonリンターやフォーマッターを直接実行できるCLIツール。