Radon est un programme qui mesure les métriques Python. https://github.com/rubik/radon
Cela vous permet d'obtenir la complexité et le nombre de lignes de code Python. En mesurant la complexité, vous pouvez identifier les risques potentiels dans votre code source et identifier ce que vous devez refactoriser ou tester.
Exécutez ce qui suit dans python2.x ou Python3.x.
easy_install easy_install radon
La complexité cyclomatique peut être mesurée à l'aide de la commande cc. La complexité cyclomatique augmente à mesure qu'il y a plus d'instructions de contrôle. Voir ci-dessous pour plus de détails. https://radon.readthedocs.org/en/latest/intro.html#cyclomatic-complexity
__Exemple d'utilisation: __
radon cc -s ".\*.py"
__ Contenu de sortie: __ Le premier symbole représente le type de bloc
symbole | La description |
---|---|
F | une fonction |
M | Méthode |
C | classe |
Les nombres suivants représentent la matrice de départ du bloc à mesurer
ligne:Colonne
Ensuite, le nom du bloc tel que le nom de la fonction est affiché.
Après "-", cela devient la valeur du rang et de la complexité cyclomatique.
Le rang est déterminé par la valeur de la complexité cyclomatique.
Valeur CC | Rang | risque |
---|---|---|
1 - 5 | A | low -Bloc simple |
6 - 10 | B | low -Bloc bien structuré et stable |
11 - 20 | C | moderate -Un petit bloc compliqué |
21 - 30 | D | more than moderate -Blocs plus complexes |
31 - 40 | E | high -Blocs complexes, alarmants |
41+ | F | very high -Blocs instables sujets aux erreurs |
option: Les options disponibles pour la commande cc sont:
Option | La description |
---|---|
-s, --show | Afficher la complexité cyclomatique. |
-n, --min | Définissez le rang minimum à afficher. Spécifiez A à F après cet argument |
-x, --max | Définissez le rang maximum à afficher. Spécifiez A à F après cet argument |
-a, --average | Affichez la moyenne de la complexité cyclomatique à la fin. Cette moyenne est-n ou-Affecté par le filtre x |
--total-average | Recevez la moyenne de toutes les données-Contrairement à a, il n'est pas affecté par le filtre |
-e, --exclude | Spécifiez les chemins des fichiers à exclure de l'analyse, séparés par des virgules. |
-i, --ignore | Spécifiez les répertoires à ignorer, séparés par des virgules. Ne pas vérifier sous les répertoires ignorés |
-o, --order | Spécifiez l'ordre de tri. SCORE par ordre de complexité LIGNES par nombre de lignes Ordre des noms de bloc ALPHA |
-j, --json | Sortir le résultat dans JSON |
--no-assert | Asser lors du calcul de la complexité()Les instructions ne comptent pas |
Mesurez l'indice de maintenabilité à l'aide de la commande mi. La maintenabilité est calculée à partir de la complexité cyclomatique et du nombre de lignes, 100 étant le plus élevé, plus il est facile à maintenir.
Voir ci-dessous pour plus de détails https://radon.readthedocs.org/en/latest/intro.html#maintainability-index
__Exemple d'utilisation: __
radon mi -s ".\*.py"
__ Contenu de sortie: __
C:\dev\py33>radon mi -s "test.py"
test.py - A (58.76)
Afficher le nom du fichier, le rang, le score MI
Le rang est le suivant
MI score | Rank | Maintainability |
---|---|---|
100 - 20 | A | Très cher |
19 - 10 | B | Moyen |
9 - 0 | C | Très lent |
option: Les options disponibles pour la commande mi sont:
Option | La description |
---|---|
-s, --show | Affichez l'indice de maintenabilité. |
-e, --exclude | Spécifiez les chemins des fichiers à exclure de l'analyse, séparés par des virgules. |
-i, --ignore | Spécifiez les répertoires à ignorer, séparés par des virgules. Ne pas vérifier sous les répertoires ignorés |
-m, --multi | Ne comptez pas les chaînes multilignes comme commentaires |
La commande brute génère les nombres suivants.
・ LOC: Nombre total de lignes -LLOC_: LOC logique. À l'exclusion des lignes vides et des lignes de commentaire · SLOC: LOC source. Hors lignes vierges. ・ Comments: Ligne de commentaire · Multi: chaîne multiligne. Peut être considéré comme un commentaire ・ Blank: ligne vierge
option: Les options disponibles pour la commande brute sont:
Option | La description |
---|---|
-s, --summary | Afficher le résultat d'agrégation mesuré |
-e, --exclude | Spécifiez le chemin du fichier à exclure de l'analyse, séparé par des virgules. |
-i, --ignore | Spécifiez les répertoires à ignorer, séparés par des virgules. Ne pas vérifier sous les répertoires ignorés |
-j, --json | Sortir le résultat dans JSON |
Vous pouvez utiliser radon à partir de python en important le module radon dans le code python.
Exemple:
import radon
from radon import raw
ret = radon.raw.analyze("""
if a==1:
print (a)
if a==2:
print (a)
""")
print(ret)
Voir l'aide ou voir ci-dessous pour plus d'informations https://radon.readthedocs.org/en/latest/api.html
Recommended Posts