isinstance呼び出しの統合やifブロックの三項演算子への置き換えなど、より簡潔に書けるPythonコードを指摘するflake8プラグイン。
PyCQA/mccabe
関数のMcCabe循環的複雑度を計算し、flake8プラグインとして複雑すぎるコードを検出するPythonツールです。
- スター
- 684
- フォーク
- 70
- 未解決の Issue
- 12
- 最終コミット
- 26 日前
これは何?
mccabeはPythonコードのMcCabe(循環的)複雑度を測定します。これは、関数内にある独立した実行経路の数を表します。スコアが高い関数は、読みづらくテストしにくいことを示します。単独のモジュールとしてファイルに対して実行すると、指定したしきい値を超える複雑度の関数が表示されます。
Pythonコードチェッカーのflake8用プラグインとしても動作します。インストール直後は無効になっており、--max-complexityオプションで有効にすると、複雑度が指定値を超える関数にC901警告を報告します。
このプロジェクトはPyCQA組織のもとで保守されており、近年のPython 3に対応しています。バージョン0.7.0では、Python 3.6未満のサポートが終了しました。
主な機能
- 01Pythonの関数やメソッドのMcCabe循環的複雑度を計算します。
- 02--minしきい値を指定し、python -m mccabeで単独実行できます。
- 03--max-complexityオプションでflake8と連携し、C901警告を報告します。
- 04async/await構文と近年のPython 3に対応しています。
ユースケース
- コードレビューやCIで複雑すぎる関数を検出する。
- flake8の設定を通じて、Pythonプロジェクト全体に複雑度の上限を適用する。
- リファクタリングの前に、モジュール内で最も複雑な関数を見つける。
クイックスタート
- 1
pipを使ってPyPIからmccabeをインストールします
pip install mccabe - 2
Pythonファイルにスタンドアロンのチェッカーを実行し、最も複雑な関数を一覧表示します
python -m mccabe --min 5 mccabe.py - 3
最大複雑度を設定して、flake8プラグインとして使用します
flake8 --max-complexity 10 coolproject
使う前に知っておきたいこと
- プロジェクトのメタデータにライセンスが明確に記載されていないため、商用利用の前にライセンスファイルを確認してください。
- プラグインのチェックはデフォルトで無効になっており、--max-complexityで有効にする必要があります。
収録されている特集
トピック
よくある質問
- mccabe とは?
- 関数のMcCabe循環的複雑度を計算し、flake8プラグインとして複雑すぎるコードを検出するPythonツールです。 mccabeはPythonコードのMcCabe(循環的)複雑度を測定します。これは、関数内にある独立した実行経路の数を表します。スコアが高い関数は、読みづらくテストしにくいことを示します。単独のモジュールとしてファイルに対して実行すると、指定したしきい値を超える複雑度の関数が表示されます。
- mccabe は無料で使えますか?ライセンスは?
- mccabe は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- mccabe は今もメンテナンスされていますか?
- 活発にメンテナンス中。mccabe の最終コミットは 2026年10月12日 です。
- mccabe は何に使えますか?
- コードレビューやCIで複雑すぎる関数を検出する。 flake8の設定を通じて、Pythonプロジェクト全体に複雑度の上限を適用する。 リファクタリングの前に、モジュール内で最も複雑な関数を見つける。
- mccabe のインストール方法は?
- pipを使ってPyPIからmccabeをインストールします: pip install mccabe Pythonファイルにスタンドアロンのチェッカーを実行し、最も複雑な関数を一覧表示します: python -m mccabe --min 5 mccabe.py 最大複雑度を設定して、flake8プラグインとして使用します: flake8 --max-complexity 10 coolproject
- mccabe はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/PyCQA/mccabe
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PyFlakes、pycodestyle、McCabeを1つのコマンドにまとめ、サードパーティ製プラグインにも対応するPythonリンターです。
一貫性のあるシンプルなPythonのコードスタイルを徹底し、複雑なコードパターンを検出する、厳格で独自の方針を持つflake8プラグイン。
Pythonのimportを選択したスタイルガイドに沿ってグループ分け・整列できているかをチェックする、flake8およびPylama用プラグイン。
標準ライブラリだけで動作し、PEP 8のスタイル規約に沿っているかをチェックする単一ファイルのPythonチェッカー。
pyflakesやpycodestyleがチェックしない、バグの可能性が高いコードや疑わしい設計パターンを検出するFlake8プラグイン。