Repolode
tonybaloney

tonybaloney/wily

Gitの履歴をたどり、Pythonコードの複雑度や各種メトリクスの推移を追跡するコマンドラインツール。

スター
1,336
フォーク
73
未解決の Issue
43
最終コミット
10 日前

これは何?

Wilyは、Pythonコードを時間軸に沿って計測するコマンドラインアプリケーションです。gitでブランチ内の各リビジョンを順にたどり、各コミットのファイルに複雑度やコード解析のメトリクスを適用して、結果をローカルの.wily/ディレクトリにキャッシュします。

このキャッシュを使って、サイクロマティック複雑度、保守性指数、Halsteadメトリクス、コード行数などがリビジョン間でどう変化したかをレポートしたり、特定のメトリクスでファイルを順位付けしたり、推移をグラフにしてブラウザーで表示したりできます。diffコマンドは現在のファイルを指定したgit refと比較するため、pre-commitフックやCIチェックにも利用できます。

メトリクスは演算子(cyclomatic、cognitive、maintainability、halstead、raw)ごとに分類され、wily.cfgファイルで設定できます。Jupyterノートブックはデフォルトでスキャンされ、セル単位でレポートすることもできます。

主な機能

  • 01ブランチ内のgitコミットをたどってメトリクスのキャッシュを作成します。
  • 02wily reportでリビジョン間のメトリクスの差分をレポートします。
  • 03指定したメトリクスでディレクトリ内のファイルを順位付けします。
  • 04wily graphでメトリクスの推移をグラフ化し、ブラウザーに表示します。
  • 05wily diffで現在のコードを任意のgit refと比較します。
  • 06.ipynbノートブック内のPythonコードをスキャンし、必要に応じてセル単位で解析します。

ユースケース

  • コミット履歴を通じてPythonコードベースの複雑度が増しているかを追跡する。
  • 変更によって以前のリビジョンより複雑度が増した場合に、CIチェックやpre-commitチェックを失敗させる。
  • リファクタリングの優先順位を決めるため、プロジェクト内で最も複雑なファイルを見つける。
  • Jupyterノートブックを活用するデータサイエンスプロジェクトで、コード品質の推移を監視する。

クイックスタート

  1. 1

    PyPI から pip で wily をインストールします

    pip install wily
  2. 2

    git リポジトリ内のソースフォルダー用に wily のキャッシュを構築します

    wily build src/
  3. 3

    解析対象ファイルの複雑度の変化をレポートします

    wily report src/

使う前に知っておきたいこと

  • Python コードのみを解析します。
  • 履歴の追跡には git リポジトリが必要です。また、キャッシュを構築するには作業コピーがクリーンな状態である必要があります。

収録されている特集

トピック

よくある質問

wily とは?
Gitの履歴をたどり、Pythonコードの複雑度や各種メトリクスの推移を追跡するコマンドラインツール。 Wilyは、Pythonコードを時間軸に沿って計測するコマンドラインアプリケーションです。gitでブランチ内の各リビジョンを順にたどり、各コミットのファイルに複雑度やコード解析のメトリクスを適用して、結果をローカルの.wily/ディレクトリにキャッシュします。
wily は無料で使えますか?ライセンスは?
wily は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
wily は今もメンテナンスされていますか?
活発にメンテナンス中。wily の最終コミットは 2026年10月28日 です。
wily は何に使えますか?
コミット履歴を通じてPythonコードベースの複雑度が増しているかを追跡する。 変更によって以前のリビジョンより複雑度が増した場合に、CIチェックやpre-commitチェックを失敗させる。 リファクタリングの優先順位を決めるため、プロジェクト内で最も複雑なファイルを見つける。 Jupyterノートブックを活用するデータサイエンスプロジェクトで、コード品質の推移を監視する。
wily のインストール方法は?
PyPI から pip で wily をインストールします: pip install wily git リポジトリ内のソースフォルダー用に wily のキャッシュを構築します: wily build src/ 解析対象ファイルの複雑度の変化をレポートします: wily report src/
wily はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tonybaloney/wily

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト