設定ファイル形式¶
pyscn は TOML 形式で設定を読み込みます。専用の .pyscn.toml ファイル、または既存の pyproject.toml 内の [tool.pyscn] セクションに設定を記述できます。
ファイル探索¶
pyscn analyze や pyscn check を実行すると、pyscn はターゲットパスから上位ディレクトリに向かって以下を検索します:
.pyscn.toml(最優先)[tool.pyscn]セクションを含むpyproject.toml
最初に見つかったファイルが使用されます。一致するファイルが見つかるか、ファイルシステムのルートに到達するまで親ディレクトリが検索されます。どちらのファイルも見つからない場合は、組み込みデフォルトが使用されます。
明示的にパスを指定することもできます:
これにより探索はスキップされます。
優先順位¶
設定が複数の場所に存在する場合、後のものが優先されます:
- 組み込みデフォルト(最低)
pyproject.toml→[tool.pyscn].pyscn.toml- CLI フラグ(最高)
CLI フラグは 明示的に設定された 場合のみ考慮されます。変更されていないデフォルト値は設定値を上書きしません。
2つのファイル形式¶
同じディレクトリに両方のファイルが存在する場合、.pyscn.toml が優先されます。
スターターファイルの生成¶
すべてのオプション、デフォルト値、簡単な説明を含むコメント付きの .pyscn.toml が生成されます。必要な値を編集し、残りは削除するか(そのままにしておいても構いません)。
バリデーション¶
pyscn は設定の読み込み時にバリデーションを行い、問題がある場合は終了コード 2 で終了します。主なバリデーションルール:
- 複雑度の閾値は
low ≥ 1かつmedium > lowを満たす必要があります。 - 出力形式は
text,json,yaml,csv,htmlのいずれかです。 - デッドコードの重大度は
info,warning,criticalのいずれかです。 - クローン類似度の閾値は
[0.0, 1.0]の範囲内である必要があります。 - 少なくとも1つの include パターンが指定されている必要があります。
環境変数¶
pyscn は環境変数から設定を読み込みません。MCP サーバーは例外として、PYSCN_CONFIG で設定ファイルを指定できます。