Wir verwenden Pylint in unserem Build-System. Wir haben ein Python-Paket in unserer Codebasis, das Wegwerfcode enthält, und ich möchte alle Warnungen für ein Modul vorübergehend deaktivieren, damit ich die anderen Entwickler nicht mehr mit diesen überflüssigen Nachrichten nerven kann. Gibt es eine einfache Möglichkeit, pylint: disable
alle Warnungen für ein Modul zu erhalten?
83
PyLint hat fünf "Kategorien" für Nachrichten (von denen ich weiß).
Diese Kategorien waren in der Vergangenheit sehr offensichtlich, aber die nummerierten Pylint-Nachrichten wurden jetzt durch Namen ersetzt. Zum Beispiel
C0302
ist jetzttoo-many-lines
. Aber das 'C' sagt uns, dass diestoo-many-lines
eine Konventionsbotschaft ist . Dies ist verwirrend, da Konventionsnachrichten häufig nur als Warnung angezeigt werden , da viele Systeme (z. B. Syntastic ) alles entweder als Warnung oder als Fehler zu klassifizieren scheinen. Der PyLint-Bericht unterteilt die Dinge jedoch immer noch in diese Kategorien, sodass er definitiv unterstützt wird.Ihre Frage bezieht sich speziell auf Warnungen , und alle Namen der PyLint- Warnmeldungen beginnen mit 'W'.
Es war ein bisschen schwierig für mich, dies aufzuspüren, aber diese Antwort führte mich schließlich zu der Antwort. PyLint unterstützt weiterhin das Deaktivieren ganzer Kategorien von Nachrichten. Um alle Warnungen zu deaktivieren , gehen Sie wie folgt vor:
Dies kann über die Befehlszeile verwendet werden:
Oder Sie können es in Ihre pylintrc-Datei einfügen:
Hinweis: Möglicherweise haben Sie die
disable
Option bereits in Ihrer RC-Datei. In diesem Fall sollten Sie das 'W' an diese Liste anhängen.Oder Sie können es in Ihren Code einfügen, wo es für den Bereich funktioniert, in dem es platziert wird:
Um es für eine ganze Datei zu deaktivieren, platzieren Sie es am besten ganz oben in der Datei. Selbst ganz oben in der Datei stellte ich fest, dass ich immer noch die
trailing-newlines
Warnmeldung erhielt (technisch gesehen eine Konventionswarnung , aber ich komme dazu).In meinem Fall hatte ich eine Bibliothek, die von jemandem vor langer Zeit geschrieben wurde. Es funktionierte gut, so dass ich mich wirklich nicht um moderne Python-Konventionen usw. kümmern musste. Alles, was mich wirklich interessierte, waren die Fehler, die wahrscheinlich meinen Code beschädigen würden.
Meine Lösung bestand darin, alle Warn- , Konventions- und Refactoring- Meldungen für diese eine Datei nur zu deaktivieren , indem Sie den folgenden PyLint-Befehl in die erste Zeile setzen:
Abgesehen von der oben genannten Nachricht für nachfolgende Zeilenumbrüche hat dies genau das getan, was ich brauchte.
quelle
Ja, Sie können angeben
# pylint: skip-file
, aber es wird empfohlen, alle Warnungen für eine Datei zu deaktivieren. Wegwerfcode sollte nicht in einem Zweig vorhanden sein, der von Pylint analysiert wird.Wenn Sie nur bestimmte Warnungen deaktivieren möchten, können Sie dazu einen Kommentar hinzufügen
# pylint: disable=message-name
, um die angegebene Nachricht für den Rest der Datei zu deaktivieren, oder zumindest bis# pylint: enable=message-name
.Beispiel:
quelle
disable=locally-disabled
kann sie dem pylintrc hinzugefügt werden.pylintrc
Datei für Ihr Projekt zu haben. Ein Beispiel ist hier .Eine andere Option ist die Verwendung der
--ignore
Befehlszeilenoption, um die Analyse für einige Dateien zu überspringen.quelle
Mein Anwendungsfall besteht darin
pylint *.py
, alle Dateien in einem Verzeichnis zu verarbeiten, außer dass ich eine bestimmte Datei überspringen möchte.Das Hinzufügen
#pylint: skip-file
führte dazu, dass Pylint fehlschlugI: 8, 0: Ignoring entire file (file-ignored)
. Das Hinzufügen#pylint: disable=file-ignored
behebt das nicht. Vermutlich handelt es sich eher um einen globalen als um einen dateispezifischen Fehler.Die Lösung bestand darin,
--disable=file-ignored
Optionen in den Pylint-Befehl aufzunehmen. Es dauerte viel zu lange, um das herauszufinden; Es sollte keinfile-ignored
Fehler auftreten, wenn Sie eine Datei explizit ignorieren.quelle
pylintrc
Konfigurationsdatei und nicht in eine Befehlsoption einfügen.