Holen Sie sich Python-Quellcode-Metriken mit Radon

Überblick

Radon ist ein Programm, das Python-Metriken misst. https://github.com/rubik/radon

Auf diese Weise können Sie die Komplexität und Anzahl der Zeilen des Python-Codes ermitteln. Durch Messen der Komplexität können Sie potenzielle Risiken in Ihrem Quellcode identifizieren und identifizieren, was überarbeitet oder getestet werden muss.

Wie installiert man

Führen Sie die folgenden Schritte in python2.x oder Python3.x aus.

easy_install easy_install radon

Wie benutzt man

Messung der zyklomatischen Komplexität

Die zyklomatische Komplexität kann mit dem Befehl cc gemessen werden. Die zyklomatische Komplexität nimmt zu, wenn mehr Kontrollanweisungen vorliegen. Siehe unten für Details. https://radon.readthedocs.org/en/latest/intro.html#cyclomatic-complexity

__Beispiel der Verwendung: __

radon cc -s ".\*.py"

無題.png

__ Ausgabeinhalt: __ Das erste Symbol steht für den Blocktyp

Symbol Erläuterung
F Funktion
M Methode
C Klasse

Die folgenden Zahlen geben die Startmatrix des zu messenden Blocks an

Linie:Säule

Als nächstes wird der Blockname wie der Funktionsname angezeigt.

Nach "-" wird es der Wert für Rang und zyklomatische Komplexität.

Der Rang wird durch den Wert der zyklomatischen Komplexität bestimmt.

CC-Wert Rang Risiko
1 - 5 A low -Einfacher Block
6 - 10 B low -Gut strukturierter und stabiler Block
11 - 20 C moderate -Ein etwas komplizierter Block
21 - 30 D more than moderate -Komplexere Blöcke
31 - 40 E high -Komplexe Blöcke, alarmierend
41+ F very high -Instabile Blöcke, die fehleranfällig sind

Möglichkeit: Für den Befehl cc stehen folgende Optionen zur Verfügung:

Option Erläuterung
-s, --show Zyklomatische Komplexität anzeigen.
-n, --min Stellen Sie den anzuzeigenden Mindestrang ein. Geben Sie nach diesem Argument A bis F an
-x, --max Legen Sie den maximalen Rang fest, der angezeigt werden soll. Geben Sie nach diesem Argument A bis F an
-a, --average Zeigen Sie am Ende den Durchschnitt der zyklomatischen Komplexität an. Dieser Durchschnitt ist-Noch-Betroffen von x Filter
--total-average Erhalten Sie den Durchschnitt aller Daten-Im Gegensatz zu a wird es vom Filter nicht beeinflusst
-e, --exclude Geben Sie den Pfad der Datei an, die von der Analyse ausgeschlossen werden soll, getrennt durch Kommas.
-i, --ignore Geben Sie die zu ignorierenden Verzeichnisse an, die durch Kommas getrennt sind. Überprüfen Sie nicht unter dem ignorierten Verzeichnis
-o, --order Geben Sie die Sortierreihenfolge an.
SCORE in der Reihenfolge der Komplexität
Zeilen nach Anzahl der Zeilen
Reihenfolge der ALPHA-Blocknamen
-j, --json Geben Sie das Ergebnis in JSON aus
--no-assert Asser bei der Berechnung der Komplexität()Anweisungen zählen nicht

Messung des Wartbarkeitsindex

Messen Sie den Wartbarkeitsindex mit dem Befehl mi. Die Wartbarkeit wird aus der zyklomatischen Komplexität und der Anzahl der Zeilen berechnet, wobei 100 die höchste ist, je einfacher die Wartung ist.

Siehe unten für Details https://radon.readthedocs.org/en/latest/intro.html#maintainability-index

__Beispiel der Verwendung: __

radon mi -s ".\*.py"

__ Ausgabeinhalt: __

C:\dev\py33>radon mi -s "test.py"
test.py - A (58.76)

Dateiname, Rang, MI-Punktzahl anzeigen

Der Rang ist wie folgt

MI score Rank Maintainability
100 - 20 A Sehr teuer
19 - 10 B Mittel
9 - 0 C Sehr niedrig

Möglichkeit: Für den Befehl mi stehen folgende Optionen zur Verfügung:

Option Erläuterung
-s, --show Zeigen Sie den Wartbarkeitsindex an.
-e, --exclude Geben Sie den Pfad der Datei an, die von der Analyse ausgeschlossen werden soll, getrennt durch Kommas.
-i, --ignore Geben Sie die zu ignorierenden Verzeichnisse an, die durch Kommas getrennt sind. Überprüfen Sie nicht unter dem ignorierten Verzeichnis
-m, --multi Zählen Sie mehrzeilige Zeichenfolgen nicht als Kommentare

Messung von Rohdaten

Der Befehl raw gibt die folgenden Zahlen aus.

LOC: Gesamtzahl der Zeilen -LLOC_: Logisches LOC. Ausgenommen Leerzeilen und Kommentarzeilen · SLOC: Quell-LOC. Ohne Leerzeilen. ・ Kommentare: Kommentarzeile · Multi: Mehrzeilige Zeichenfolge. Kann als Kommentar betrachtet werden ・ Blank: Leere Linie

Möglichkeit: Für den Befehl raw stehen folgende Optionen zur Verfügung:

Option Erläuterung
-s, --summary Zeigen Sie das gemessene Aggregationsergebnis an
-e, --exclude Geben Sie den Pfad der Datei an, die von der Analyse ausgeschlossen werden soll, getrennt durch Kommas.
-i, --ignore Geben Sie die zu ignorierenden Verzeichnisse an, die durch Kommas getrennt sind. Überprüfen Sie nicht unter dem ignorierten Verzeichnis
-j, --json Geben Sie das Ergebnis in JSON aus

Verwendung aus dem Programm

Sie können Radon aus Python verwenden, indem Sie das Radonmodul in den Python-Code importieren.

Beispiel:

import radon
from radon import raw
ret = radon.raw.analyze("""
if a==1:
  print (a)
if a==2:
  print (a)
""")
print(ret)

Weitere Informationen finden Sie in der Hilfe oder unten https://radon.readthedocs.org/en/latest/api.html

Recommended Posts

Holen Sie sich Python-Quellcode-Metriken mit Radon
Überprüfen Sie den Python-Codestil mit pep8
[Python] Lesen Sie den Flask-Quellcode
Jinja2 Quellcode Formatierung mit Atom-Verschönerung
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
python setup.py testet den Code mit Multiprocess
[Python] Lesen Sie den Quellcode von Flasche Teil 2
Versuchen Sie es mit Sourcetrail, einem Quellcode-Visualisierungstool
Debuggen mit VS-Code mit Boost Python Numpy
Starten Sie Python
Python-Zeichencode
[Python] Lesen Sie den Quellcode von Flasche Teil 1
[Python] Code, der Algorithmen kennt
Scraping mit Python
[Python] Lesen des Django-Quellcodes Ansicht ab Null ①
[Python] Ich habe sofort versucht, die VS-Code-Erweiterung von Pylance zu verwenden.
So erstellen Sie ein Python-Paket mit VS Code
Bearbeiten Sie Redmine mit Python Redmine
Fibonacci-Sequenz mit Python
1.1 Erste Schritte mit Python
Schreiben Sie Python2-Code in Python3 um (2to3)
Infomap Python-Zeichencode
Vor dem Schreiben von Python-Code
Installieren Sie Python von der Quelle
Erste Schritte mit Python
Datenbereinigung mit Python
Analysieren von Java-Quellcode mit AST (Abstract Syntax Tree) mithilfe von ANTLR und Python
Verwenden von Python # externen Paketen
WiringPi-SPI-Kommunikation mit Python
Altersberechnung mit Python
Suchen Sie Twitter mit Python
Erste Schritte mit Python
Namensidentifikation mit Python
Python Fordert den Statuscode an
Hinweise zur Verwendung von Python-Unterprozessen
Versuchen Sie es mit Tweepy [Python2.7]
Erste Schritte mit Python3 # 3 Versuchen Sie erweiterte Berechnungen mit der import-Anweisung
Entfernen Sie einzeilige Kommentare einschließlich Japanisch aus dem Quellcode in Python
Überprüfen Sie immer PEP8, während Sie den Python-Quellcode in Emacs bearbeiten
PyArmor ~ Einfache Möglichkeit, Python-Quellcode zu verschlüsseln und bereitzustellen ~