Skip to content

Add pyscn to Python tools - #1780

Merged
mre merged 4 commits into
analysis-tools-dev:masterfrom
DaisukeYoda:add-pyscn
Aug 28, 2026
Merged

mre merged 4 commits into
analysis-tools-dev:masterfrom
DaisukeYoda:add-pyscn

Conversation

@DaisukeYoda

Copy link
Copy Markdown

Summary

Adds pyscn to the Python static analysis tools list.

pyscn is an intelligent Python code quality analyzer written in Go that performs deep, structural static analysis:

  • CFG-based cyclomatic complexity analysis — builds control-flow graphs from tree-sitter ASTs to calculate McCabe complexity
  • Multi-algorithm clone detection (Type 1-4) — textual (FNV hash), normalized AST (Jaccard), structural (APTED tree edit distance), and semantic (CFG-based) clone detection
  • Dead code detection — identifies unreachable code after return/break/continue/raise and unreachable conditional branches
  • Coupling metrics (CBO) — analyzes class dependencies for maintainability assessment
  • Uses tree-sitter for robust Python parsing
  • ~980 GitHub stars, actively maintained, MIT licensed

Checklist

  • Tool is actively maintained (multiple contributors)
  • Tool has more than 20 GitHub stars (~980)
  • Project is mature (exists for more than three months)
  • Entry added as YAML in data/tools/pyscn.yml
  • Description is under 500 characters
  • License specified (MIT)

@DaisukeYoda

DaisukeYoda commented Jun 5, 2026 •

Copy link
Copy Markdown
Author

@mre friendly ping 🙂 Open since March and still green. I just refreshed the entry to point homepage/resources at the docs site. pyscn is at ~1k stars, MIT, actively maintained. Happy to tweak anything if needed, thanks!

@github-actions github-actions Bot added the stale label Aug 5, 2026
@github-actions github-actions Bot closed this Aug 13, 2026
@mre mre reopened this Aug 28, 2026
@mre
mre merged commit c7ac929 into analysis-tools-dev:master Aug 28, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants