J'ai un grand référentiel source divisé en plusieurs projets. Je voudrais produire un rapport sur la santé du code source, identifiant les domaines problématiques qui doivent être traités.
Plus précisément, j'aimerais appeler des routines avec une complexité cyclomatique élevée, identifier la répétition et peut-être exécuter une analyse statique de type peluche pour repérer les constructions suspectes (et donc probablement erronées).
Comment pourrais-je construire un tel rapport?
https://flakehell.readthedocs.io/config.html
ces jours-ci, car son modèle d'exécution est beaucoup plus robuste et configurable.Pour la complexité cyclomatique, vous pouvez utiliser
radon
: https://github.com/rubik/radon(Utilisation
pip
pour l' installer:pip install radon
)De plus, il possède également ces caractéristiques:
la source
Pour l'analyse statique, il y a pylint et pychecker . Personnellement, j'utilise pylint car il semble être plus complet que pychecker.
Pour la complexité cyclomatique, vous pouvez essayer ce programme perl , ou cet article qui présente un programme python pour faire de même
la source
Pycana fonctionne à merveille lorsque vous avez besoin de comprendre un nouveau projet!
Voyez comment cela fonctionne: http://pycana.sourceforge.net/
production:
la source
Grâce à Pydev , vous pouvez intégrer très facilement pylint dans l' IDE Eclipse et obtenir un rapport de code à chaque fois que vous enregistrez un fichier modifié.
la source
Utilisez flake8 , qui fournit des analyses de complexité pep8, pyflakes et cyclomatic dans un seul outil
la source
Il existe un outil appelé CloneDigger qui vous aide à trouver des extraits de code similaires.
la source
Pour vérifier la complexité cyclomatique, il y a bien sûr le
mccabe
package.Installation:
Usage:
Notez le seuil de 6 ci-dessus. Selon cette réponse , les scores> 5 devraient probablement être simplifiés.
Exemple de sortie avec
--min=3
:Il peut éventuellement également être utilisé via pylint-mccabe ou pytest-mccabe , etc.
la source