Codinsight - 複数ファイル解析の利用方法
概要
- 複数のファイルやディレクトリを再帰的に走査し、既存の解析エンジン(Style/Struct/Readability/Redundancy/Algorithm/Complexity/Quality)で一括解析を実行
- 拡張子のフィルタや除外パターン(node_modules, .git など)に対応
- 結果をファイル単位と集約統計(平均など)で取得可能
- Pydantic BaseModel で JSON 化が容易
API 使用例
from code_insight.core import CodeAnalysisType
from code_insight.multi_analysis import MultiFileAnalyzer
analyzer = MultiFileAnalyzer(
exts={".py"},
excludes={"node_modules", "target", ".git", ".venv", "__pycache__"},
)
result = analyzer.analyze(
["src", "tests"],
[CodeAnalysisType.STYLE, CodeAnalysisType.STRUCT],
)
print(result.model_dump_json())
設定のカスタマイズ
from code_insight.core import CodeAnalysis, AnalysisConfigs, CodeAnalysisType
from code_insight.code_analysis.quality import QualityAnalysisConfig
from code_insight.code_analysis.redundancy import RedundancyAnalysisConfig
from code_insight.code_analysis.style import StyleAnalysisConfig
# カスタム設定の作成
configs = AnalysisConfigs(
quality=QualityAnalysisConfig(
long_param_threshold=3, # デフォルト: 5
enabled=True
),
redundancy=RedundancyAnalysisConfig(
long_function_lines_threshold=30, # デフォルト: 50
long_function_complexity_threshold=8, # デフォルト: 10
ignored_function_names={"main", "__init__", "setup"}
),
style=StyleAnalysisConfig(
function_name_pattern=r"^[a-z_][a-z0-9_]*$", # snake_case
class_name_pattern=r"^[A-Z][a-zA-Z0-9]*$" # PascalCase
)
)
# 設定を使用した解析
analysis = CodeAnalysis(source_code, configs)
result = analysis.analyze([CodeAnalysisType.QUALITY, CodeAnalysisType.REDUNDANCY])
# 複数ファイル解析での設定使用
analyzer = MultiFileAnalyzer(configs=configs)
result = analyzer.analyze(["src"], [CodeAnalysisType.STYLE])
設定可能な項目
Quality解析
long_param_threshold: 長引数関数の閾値(デフォルト: 5)enabled: 解析の有効/無効(デフォルト: True)
Redundancy解析
long_function_lines_threshold: 長大関数の行数閾値(デフォルト: 50)long_function_complexity_threshold: 長大関数の複雑度閾値(デフォルト: 10)ignored_function_names: 未使用コード検出で無視する関数名(デフォルト: {"main", "init", "main"})
Style解析
function_name_pattern: 関数名の正規表現パターン(デフォルト: snake_case)class_name_pattern: クラス名の正規表現パターン(デフォルト: PascalCase)
その他の解析エンジン
- Algorithm, Complexity, Readability, Structの各解析エンジンにも同様の設定項目があります
主なオプション
- exts: 対象拡張子のセット(デフォルト: {".py"})
- excludes: 除外ディレクトリ名のセット(デフォルト: {"node_modules", "target", ".git", ".venv", "pycache"})
返却データの構造
- files: 各ファイルの解析結果(解析タイプ名 → メトリクス辞書)
- aggregate:
- total_files: 解析対象に収集されたファイル数
- analyzed_files: 実際に解析に成功したファイル数
- errors: 解析時にエラーとなったファイルパスの一覧
- by_type_avg: 解析タイプごとの各数値メトリクスの平均値
注意
- 現時点では直列処理のみ対応。大規模データや並列化は将来的な拡張予定
Metadata
Release files for codinsight 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| codinsight-0.4.3.tar.gz | 23.7 kB | Without provenance | Details for codinsight-0.4.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| codinsight-0.4.3-py3-none-any.whl | Python 3 | none | any | Details for codinsight-0.4.3-py3-none-any.whl |
Total release size: 55.2 kB
Release files / codinsight-0.4.3.tar.gz
| Download URL | codinsight-0.4.3.tar.gz |
|---|---|
| Size | 23.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5f63b6e93d46105ff4e825e4a6ff1c61be3c4c98c03ec82c51ab2f9d2f0cf0e7
|
|
BLAKE2b-256 checksum How to use checksums |
265deffcffdcf48072554521f20f6926c3d62aef1ec477efd75975cfccb0ee27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / codinsight-0.4.3-py3-none-any.whl
| Download URL | codinsight-0.4.3-py3-none-any.whl |
|---|---|
| Size | 31.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c89eaaa7fad03d96b3bc83bf97c2f76c982e71b3b15125361dc8eaf12e3a8d44
|
|
BLAKE2b-256 checksum How to use checksums |
8567a42923de6576ec7e9696cd4844f932a04abbc4ef43c9536419212964b80e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for codinsight 0.4.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.