Frage zum pylint-Output bzw. PEP8

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.
Antworten
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Montag 26. Mai 2008, 14:19

kleine Frage:

pylint spuckt mir unter anderem folgende Meldung aus:
C: 9: Invalid name "vfx_server" (should match (([A-Z_][A-Z1-9_]*)|(__.*__))$)
Das versteh ich jetzt grad nicht so ganz. So wie ich die PEP8 verstehe sollen normale Variablen doch "lowercase, with words separated by underscores" sein. Oder versteh ich die PEP8 da irgendwie falsch?

Geht nicht drum da jetzt sklavisch alles nach Norm machen zu wollen, aber da ich ja nachwievor Anfaenger in Python bin, kann ich mir ja auch gleich die "richtigen" Konventionen angewoehnen.

Ist das jetzt ein "Fehler" von pylint (wenn ja, wie aendere ich das?) oder ein Fehler von mir?

Danke!
BlackJack

Montag 26. Mai 2008, 14:35

PEP8 hast Du schon verstanden. Pylint meckert weil es auf Modulebene keine Variablen sondern nur Konstanten geben sollte. Und Namen von Konstanten bestehen per Konvention nur aus Grossbuchstaben.
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Montag 26. Mai 2008, 14:41

hm, ok, vermutlich meine ich mit dem was ich da machen will auch "Konstanten". Es sind halt Werte die an einer Stelle definiert werden sollen und dann ueberall gelten.

Aber warum steht das dann nicht in der PEP8 drin mit den Grossbuchstaben? Oder bin ich nur zu bloede, das zu finden? Wenn ich nach "constant" suche finde ich das nur an einer Stelle, nicht aber da wo es um die Namensnennung geht. Wie heissen den "Konstanten" im offiziellen Python-Englisch?

Aergerlich, denn ich hab vor ner Weile extra alle meine Sachen auf lowercase_with_underscore umgestellt, weil ich die PEP8 so verstanden hatte.

Danke auf jeden Fall fuer die Erleuchtung, Blackjack!
BlackJack

Montag 26. Mai 2008, 15:48

Das wird anscheinend in PEP8 anders bzw. gar nicht gesehen. Da ist nur von "Global Variables" die Rede, worunter man auch "Konstanten" fassen könnte. Ich hätte jetzt aber auch ohne das `pylint` meckert, die Konvention aus vielen anderen Sprache übernommen, dass man "Konstanten" besonders hervor hebt. Meistens eben durch Grossschreibung.
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Montag 26. Mai 2008, 16:18

ja, lustigerweise hab ich das vor einigen Wochen eben auch ganz intuitiv so gemacht wie ich das von frueher her noch kannte, also mit Grossschreibung. Dann hab ich von PEP8 gehoert, mir das angeschaut und daraufhin meine Scripte eben umgestrickt, damit sie eben vermeintlich der PEP8 entsprechen.

Naja, dann aendere ich das halt nochmal komplett irgendwann, hab ja sonst nix zu tun :)

Evtl. muesste man das ja mal den PEP-Schreibern rueckmelden, oder? Wie kontaktiert man die da denn? Denn wenn pylint das reklamiert muss dafuer ja eigentlich irgendwoher auch die "Begruendung" kommen, oder?
BlackJack

Montag 26. Mai 2008, 20:30

Die Begründung für die `pylint` Regeln kommen von Logilab. Die haben einfach das rein gepackt, was sie in der Firma als Style Guide verwenden. Wenn Dir das nicht passt, kannst Du es einfach mit einer Konfigurationsdatei ändern. Wie man an der Meldung sieht, werden die Namen mit einem regulären Ausdruck geprüft.

Ich habe zum Beispiel bei mir die Funktionen `map()` und `reduce()` aus der Liste der "deprecated"-Funktionsnamen genommen.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mittwoch 28. Mai 2008, 14:47

Mir persoenlich reicht es, pylint aus Emacs heraus manuell aufzurufen. Emacs oeffnet dann ein zweites Fenster mit der Ausgabe von pylint, man kann auf die Fehlermeldungen/Warnungen klicken und kommt dann an die entsprechende Zeile im Sourcecode.

Diejenigen, denen das nicht reicht, koennen pylint mit Emacs' flymake kombinieren: http://blog.printf.net/articles/tag/emacs
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Mittwoch 28. Mai 2008, 14:51

so Nerd bin ich dann doch nicht dass ich Emacs verwenden wuerde ;-)))

Ich verwende Komodo IDE, da kann man das auch recht gut einbinden.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mittwoch 28. Mai 2008, 15:17

Uups, ich wollte eigentlich in diesen Thread posten. :oops: :oops:

PS: Ok, dann bin ich wohl ein Nerd? 8)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten