cccy
Pythonコードの循環的複雑度(Cyclomatic Complexity)と認知的複雑度(Cognitive Complexity)を解析するツールです。
特徴
- 2つの複雑度指標: McCabe循環的複雑度と認知的複雑度の両方を測定
- 柔軟な出力形式: table、JSON、CSV、詳細形式をサポート
- CLIツール: 使いやすいコマンドラインインターフェース
- ディレクトリ解析: プロジェクト全体や特定のディレクトリを再帰的に解析
- 設定可能な閾値: 最大複雑度の制限を設定し、適切な終了コードを提供
- 除外パターン: globパターンでファイルをスキップ
複雑度の閾値
循環的複雑度(Cyclomatic Complexity)
- 1-5: シンプル、低リスク
- 6-10: 中程度の複雑さ
- 11+: 高い複雑さ、リファクタリングを検討
認知的複雑度(Cognitive Complexity)
- 1-4: シンプル、低リスク
- 5-7: 中程度の複雑さ
- 8+: 高い複雑さ、リファクタリングを検討
ステータスレベル
- OK: すべての関数が中程度の閾値以下
- MEDIUM: 一部の関数が中程度の複雑さの範囲にある
- HIGH: 関数が推奨閾値を超えている
ライセンス
MIT License - 詳細はLICENSEファイルを参照してください。
謝辞
- 循環的複雑度の計算に
mccabeを使用 - 認知的複雑度の計算に
cognitive-complexityを使用 - CLIインターフェースに
clickを使用 - テーブル形式の出力に
tabulateを使用