pyscn¶
Analyseur statique structurel pour Python. Détecte le code mort, la duplication, la complexité et les problèmes de couplage via l'analyse du flux de contrôle et d'arbres.
Fonctionnalités¶
- 33 règles couvrant le code inatteignable, le code dupliqué, la complexité, la conception de classes, l'injection de dépendances, la structure des modules et les données factices.
- Accessibilité basée sur le CFG qui détecte le code mort après
return/raise/break/continueainsi que les branches inatteignables. - Détection de clones APTED + LSH sur les quatre types de clones (identique, renommé, modifié, sémantique).
- Métriques de couplage et de cohésion de classes CBO / LCOM4.
- Détection des imports circulaires via l'algorithme SCC de Tarjan.
- Score de santé (0–100) avec décomposition par catégorie.
- Prêt pour la CI grâce à
pyscn check, une sortie de type linter et des codes de sortie déterministes. - Serveur MCP (
pyscn-mcp) pour Claude Code, Cursor et autres clients MCP.
Écrit en Go. Plus de 100 000 lignes/s sur du matériel courant. Aucune dépendance d'exécution Python.
Installation¶
uvx pyscn@latest <command> # exécution sans installation (recommandé)
uv tool install pyscn # installation via uv
pipx install pyscn # installation via pipx
pip install pyscn # installation via pip
Voir Installation pour toutes les options.
Démarrage rapide¶
pyscn analyze . # analyse complète, rapport HTML
pyscn check --select complexity,deadcode src/ # garde-fou CI
pyscn init # génère .pyscn.toml
Voir Démarrage rapide et le Catalogue de règles.