Pylint 1.0: Was lange währt...
Nach Jahren der Arbeit haben die Entwickler des Python-Codeanalysewerkzeugs nun das erste Major Release gewagt. Ergänzt wurden unter anderem einige Prüfmaßnahmen und auch mit Python 3 sollte jetzt alles laufen.
- Julia Schmidt
Nach zehn Jahren Entwicklung an Pylint steht mit Version 1.0 nun das erste Major Release des Codeanalysewerkzeugs für Python bereit. Der Ankündigung nach haben, neben vielen anderen Beiträgen, vor allem der im Juni 2013 veranstaltete Sprint zum Jubiläum das lange Changelog dieser Veröffentlichung ermöglicht. Pylint untersucht Python-Quellcode auf fehlerhafte Syntax, wobei es sich am Style Guide des Python-Schöpfers Guido van Rossum orientiert.
Vor allem neue Prüfmaßnahmen haben den Weg in die aktuelle Version gefunden, so wird etwa kontrolliert, ob Dateien ein Newline am Ende fehlt, ob sie Daten enthalten, die sich nicht decodieren lassen oder ob angehängte Leerzeichen vorhanden sind. Bei Namen hingegen sollen unter anderem abgeleitete Mitglieder einer Instanzenklasse nicht länger geprüft werden und Methoden, die als Eigenschaften Verwendung finden, wie Attribute behandelt.
Darüber hinaus ließ sich die Unterstützung für Python 3.3 überarbeiten, bei der es bisher wohl einige Probleme gab. epylint und pyreverse sollen nun funktionieren und einzelne Fehler die zu Abstürzen und Name Errors geführt behoben sein. Außerdem stehen eine neue Basisklasse und eine Schnittstelle für Prüfer, die eher auf Tokens als auf der Syntax arbeiten und die Eingabedatei nur einmal in Token aufteilen. Das Astroid-Modul verfügt nun über eine API, die statt register_transformer dem Manager eine register_transform-Funktion bereit stellt, um es bei der Auswahl der Knoten flexibler zu machen. Ein test_utils-Modul zum Erstellen von Abstract Syntax Trees und extrahieren von Nested Nodes soll hier zudem das Testen erleichtern.
Weitere Änderungen lassen sich dem Blogeintrag zum Release zu entnehmen. Pylint steht unter der GPLv2, Informationen zur Installation sind auf der Website des Projekts zu finden. (jul)