Seite wählen

Pylint, Pylint on the wall, who has the fairest code of them all?

von | Dez 13, 2012 | Development

„You, my Developer, have the fairest of all.“ So oder so ähnlich wünscht man es sich, wenn einem die Qualität des eigenen Programms am Herzen liegt. Für all die Python-Entwickler da draußen, welche nicht jegliche Richtlinien aus dem PEP8 Guide auswendig wissen und es auch sonst im Eifer des Programmierens nicht so ernst mit der Qualität nehmen, bietet Pylint ein sehr nützliches Werkzeug, um so eilig wie geschwind das hässliche Entlein wieder in einen schönen Schwan zu verwandeln. Doch wie soll das gehen, und was unterscheidet es von gängigen Python Source Code Checkern wie beispielsweise PyChecker?
Nun, zunächst einmal bietet Pylint in den Grundfeatures ziemlich das selbe wie PyChecker. Das bedeutet, beide Programme überprüfen den Code auf Qualität und Sauberkeit. Doch während PyChecker in der Altfränkischen „Bassd scho“-Manier arbeitet, ist Pylint eher der strenge Deutschlehrer, der auch jeden noch so kleinen Fehltritt rot anstreicht. Da wird penibel auf Dinge wie die maximale Zeilenlänge (max. 80 Zeichen) oder der maximal erlaubten Zeilenanzahl (max. 1000 Zeilen) innerhalb einer Datei geachtet. Auch vergessene allseits bekannte Kommentare wie „TODO“ oder „FIXME“ werden dem eifrigen Entwickler nochmal ins Gedächtnis gerufen. Wem diese ganzen Richtlinien von PEP8 nicht zusagen oder sowieso schon nach seinen eigenen Standards codet, dem bietet Pylint eine sehr schnelle und einfache Möglichkeit Regeln zu ändern oder sogar mithilfe von Modulen zu erweitern.
Wie funktioniert nun also dieses wunderbare Werkzeug? Wir starten den ausführlichen Test zunächst einmal mit der Standardkonfiguration:

pylint pfad/zum/projekt

Nach einer kurzen Wartezeit (je nach Projektumfang) spuckt das Programm auch schon eine Statistik mit jeglichen Makel und Fehler. Sogar eine Punktwertung wie im guten alten Sport wird vergeben! Wer seine Punkte nun verbessern möchte, muss sich nun daran machen, die gelisteten Meldungen abzuarbeiten und so seinen Code zurechtschleifen. Möchte man gewisse Regeln ändern oder Ausnahmen hinzufügen, so kann man dass indem man eine neue rcfile generiert:

pylint --generate-rcfile > ~/.pylintrc

Diese Datei öffnet man dann mit dem Editor seiner Wahl und fügt seine Änderungen hinzu. Dank der ausführlichen Dokumentation findet man sich innerhalb der configfile sehr schnell zurecht.
Wer jetzt noch gerne wüsste, wie denn das eigene Kind so aussieht, der kann sich mithilfe des mitgelieferten Programms „pyreverse“ eine Art UML-Diagramm generieren lassen:

pyreverse pfad/zum/projekt

Generiert werden zwei .dot dateien, die mithilfe folgender Befehle ganz leicht in beispielsweise .png dateien umgewandelt werden können:

dot -Tpng packages_Name.dot -o packages-Name.png
dot -Tpng classes_Name.dot -o classes-Name.png

Mithilfe eines solch strengen Lehrers sollte einem nichts mehr im Wege stehen, um das Märchen wahr werden zu lassen!

0 Kommentare

Trackbacks/Pingbacks

  1. Weekly Snap: A Journey in the Cloud, Pylint for Python & Christmas Cheer › NETWAYS Blog - [...] Alexander suggested Pylint for Python code quality checking and our team celebrated Christmas, bidding Philipp farewell. Autor: Amanda MailerAmanda…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Development

Mein PHP-Trainingsprojekt

PHP Schulung Vor kurzem haben wir begonnen, eine neue Programmiersprache zu lernen – PHP. In der ersten Woche haben wir mit den Grundlagen wie Variablen, Arrays, Schleifen begonnen und uns schrittweise zu komplizierterer Syntax wie Funktionen, Objekten und Klassen...

check_prometheus ist jetzt öffentlich verfügbar!

Monitoring ist komplex, das wissen wir hier bei NETWAYS leider zu gut. Deswegen laufen in der Infrastruktur auch mal gerne mehrere Tools für die Überwachung. Zwei gern gesehene Kandidaten sind dabei Icinga und Prometheus. Icinga und Prometheus erfüllen...