コンテンツにスキップ

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 を使用