Pylint HTML Reports
by Viktor Garske on Jan. 26, 2019, 10:23 p.m.Mit der dynamischen Typisierung verfügt Python über eine Eigenschaft, durch die sich einige Bugs erst zur Laufzeit „entfalten“ und im worst-case zum Crash der Anwendung führen. Um dieses Risiko zu minimieren steht die statische Codeanalyse („linting“) zur Verfügung, um den Code auf häufige Muster von Schwachstellen zu untersuchen und einen einheitlichen Codingstyle (in Python die bekannt PEP 8) zu forcieren.
Unter Python ist Pylint durchaus bekannt und übernimmt zuverlässig diese Aufgaben. Oft besteht der Wunsch, die Ergebnisse der Analyse außerhalb des stdout-Outputs in HTML angezeigt zu bekommen. Leider wurde Pylint in Version 1.7 um die Option beraubt.
Um in der aktuellen Version 2.3.0 dennoch HTML-Reports zu erhalten, wird ein kleiner Umweg benötigt: hier muss der Report als JSON ausgegeben und dann in HTML umgewandelt werden. Benötigt werden die Pakete pylint und pylint-json2html.
pip install pylint pylint-json2html
In Punkto Konfiguration muss im project root die pylintrc mit folgendem Inhalt erstellt werden.
[MASTER]
load-plugins=pylint_json2html
[REPORTS]
output-format=jsonextended
Diese Konfiguration passt das Verhalten von pylint an. Der Aufruf
pylint moduledir/ > lint.json
(wobei moduledir natürlich der Name des Projekts ist) leitet nun die Ausgabe im JSON-Format in die Datei lint.json.
pylint-json2html -f jsonextended -o pylint.html < lint.json
generiert im letzten Schritt aus der über den per stdin eingeleiteten JSON-Datei eine HTML-Datei, deren Name mit der -o-Option spezifiziert wird. Die HTML-Reports sehen zwar schlicht aus, bieten aber sehr sinnvolle Information, die zur Erhöhung der Codequalität beitragen.
Viktor Garske
Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.