pep8 Code Style Checker

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ich bin gerade beim stöbern in den Ubuntu Repositories (Lucid Lynx Beta 1) auf einen pep8 Code Style Checker gestoßen.

Hab es unter anderen mal mit dem Programm miniterm.py getestet. Ohne weitere Parameter spuckt das Programm folgende Ergebnisse aus.

Code: Alles auswählen

dev/Python/miniterm.py:11:11: E401 multiple imports on one line
dev/Python/miniterm.py:27:1: E302 expected 2 blank lines, found 0
dev/Python/miniterm.py:66:80: E501 line too long (82 characters)
dev/Python/miniterm.py:71:5: E301 expected 1 blank line, found 0
dev/Python/miniterm.py:127:12: E221 multiple spaces before operator
dev/Python/miniterm.py:364:40: W291 trailing whitespace
dev/Python/miniterm.py:386:82: E202 whitespace before ')'
dev/Python/miniterm.py:385:16: E251 no spaces around keyword / parameter equals
dev/Python/miniterm.py:527:24: E701 multiple statements on one line (colon)
Taugt das was?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Letztendlich musst du selbst wissen was gut lesbar ist und was nicht, da hilft dir ein code checker nicht.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Schon klar, aber pep8 wurde ja nicht umsonst definiert. Die Frage ist eher allgemein, ob das Programm dabei helfen kann, wenn man sich an pep8 halten will
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Ich sehe es genauso wie DasIch. Von solche Programmen halte ich allgemein nichts. Den Stil vom Code können Menschen viel besser bewerten als Maschinen.
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

Viel wichtiger als Leerzeichen einhalten usw. ist eine aussagekräftige Bezeichnung der Variablen. Und das kann ein Programm niemals überprüfen.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

derdon hat geschrieben:Ich sehe es genauso wie DasIch. Von solche Programmen halte ich allgemein nichts. Den Stil vom Code können Menschen viel besser bewerten als Maschinen.
Allerdings sind einige Fehler von Maschinen viel deutlicher erkennbar (z.B. wann ein Space kommt und wann nicht). Ich verwende Eclipse + Pydev + Pylint und bin damit sehr zufrieden. Wobei ich einige Warnungen auch strikt ignoriere.

Mein Fazit: Programm um Warnungen zu generieren ist generell sinnvoll, wenn man das Ergebnis kritisch betrachtet und ggf. auch nicht alles fixed, was das Programm will ;-)
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
philistion
User
Beiträge: 108
Registriert: Sonntag 7. Februar 2010, 14:16

Danke für den Tipp, ich halte solche Tools für sehr sinnvoll, gerade wenn man an freien Projekten mitarbeitet wo Pep8 gefordert wird.
Erkennt Pylint neben offensichtlichen Fehlern denn auch ob der Code korrekt formatiert ist?
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ich sehe es so. Jedes Tool, das einem die Arbeit erleichtert, ist ein nützliches Tool. Ich denke, wenn für ein Projekt pep8 gefordert ist, dann sowas zumindest helfen. Das Denken nimmt es einem nicht ab, dass ist klar.
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Cooles Tool. :D

Ich habe eben in einem eigenen 6,5k Zeilenprogramm 17 Fehler gefunden die ich nicht umbedingt alle fixen werde.

Ich stimme uebrigens zu, es erstezt kein Denken. Gibt aber Ansaetzte wo sich ein Blick nochmal Lohnen wuerde.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

philistion hat geschrieben:Danke für den Tipp, ich halte solche Tools für sehr sinnvoll, gerade wenn man an freien Projekten mitarbeitet wo Pep8 gefordert wird.
Erkennt Pylint neben offensichtlichen Fehlern denn auch ob der Code korrekt formatiert ist?
Ja! AFAIK ist PEP8 komplett abgedeckt.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
lunar

@ms4py: Bei mir hat sich pylint noch nie über "blank lines" oder Leerzeichen vor Klammern beschwert. Ich bezweifele auch stark, dass pylint sich mit so einem Schmarrn aufhält :)
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

lunar hat geschrieben:@ms4py: Bei mir hat sich pylint noch nie über "blank lines" oder Leerzeichen vor Klammern beschwert. Ich bezweifele auch stark, dass pylint sich mit so einem Schmarrn aufhält :)
Ein PEP-8 checker sollte auch PEP-8 abdecken.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

jbs hat geschrieben:
lunar hat geschrieben:@ms4py: Bei mir hat sich pylint noch nie über "blank lines" oder Leerzeichen vor Klammern beschwert. Ich bezweifele auch stark, dass pylint sich mit so einem Schmarrn aufhält :)
Ein PEP-8 checker sollte auch PEP-8 abdecken.
Eben
[...]
Trenne Funktions- und Klassendefinitionen auf höchster Ebene mit zwei Leerzeilen.

Methodendefinitionen innerhalb einer Klasse werden durch eine einzelne Leerzeile getrennt.
[...]
lunar

@jbs und burli: Ja und? Pylint behauptet von sich nicht, PEP 8 zu prüfen.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

lunar hat geschrieben:@ms4py: Bei mir hat sich pylint noch nie über "blank lines" oder Leerzeichen vor Klammern beschwert. Ich bezweifele auch stark, dass pylint sich mit so einem Schmarrn aufhält :)
Ok, PEP8 ist nicht vollständig abgedeckt ;)
Aber IMHO werden die wichtigen Konventionen überprüft.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
lunar

@ms4py: Das sehe ich genauso.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

@lunar: Du hast es aber als "Schmarrn" bezeichnet und da wollte ich dem Checker nur zu Gute halten, dass es halt nur PEP-8 prüft.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
BlackJack

@lunar: Wobei "schmarrn" ziemlich hart ist. In der Beispielausgabe sind 0 Leerzeilen gefunden worden. Bei Klassen, Funktionen, oder Methodendefinitionen kann sowas schonmal dazu führen das man eine Funktion oder Methode übersieht, einfach weil man mit einer Leerzeile rechnet.
lunar

"Schmarrn" war so dahin gesagt, und keinesfalls todernst gemeint. Soll ich das nächste Mal einen nackten, tanzenden Smilie nutzen, damit das noch offensichtlicher ist? :)

Fürs Protokoll: Ich stimme BlackJack natürlich zu, und halte PEP 8 im Allgemeinen und zur Gänze für sinnvoll, und achte auch persönlich darauf, dass immer anständig viele Leerzeilen im Quelltext zu finden sind. Andeuten wollte ich nur, dass pylint sich auf andere Dinge spezialisiert, und beileibe nicht alle Regeln von PEP 8, insbesondere hinsichtlich der Formatierung des Quelltexts, prüft.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

lunar hat geschrieben:"Schmarrn" war so dahin gesagt, und keinesfalls todernst gemeint. Soll ich das nächste Mal einen nackten, tanzenden Smilie nutzen, damit das noch offensichtlicher ist? :)
Wenn du das so hinschreibst musst du auch damit rechnen, dass es missverstanden wird. ;)
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Antworten