Wie deaktiviere ich einen pep8-Fehler in einer bestimmten Datei?

77

Ich habe es mit versucht

#:PEP8 -E223

oder

# pep8: disable=E223

Ich dachte, der zweite würde funktionieren, scheint aber nicht zu funktionieren.

Haben Sie eine Idee, wie ich damit umgehen kann?

Fließt
quelle

Antworten:

94

Soweit ich weiß, kannst du nicht. Sie können Fehler oder Warnungen benutzerweit oder pro Projekt deaktivieren. Siehe die Dokumentation .

Stattdessen können Sie den # noqaKommentar am Ende einer Zeile verwenden, um diese bestimmte Zeile zu überspringen (siehe Patch 136 ). Das würde natürlich alle PEP8-Fehler überspringen.

Der Hauptautor spricht sich gegen Rauschen in der Quelldatei aus und schlug daher vor, # pep8Kommentare nicht aufzunehmen.


Beachten Sie, dass es auch gibt nopep8, was das Äquivalent ist. noqa(das steht für keine Qualitätssicherung wurde hinzugefügt in der Version 1.4.1 Menschen zu unterstützen , laufen pyflakesnebenpep8 .


quelle
8
Vielen Dank. In meinem Fall möchte ich jedoch keine bestimmte Zeile überspringen :-( Meiner Meinung nach ist es weniger umständlich, am Anfang der Datei etwas wie "# pep8: disable E221" hinzuzufügen, als jede zu ignorierende Zeile anzugeben. Aber es ist mein Punkt! Danke für die Antwort.
Fließt
39

Versuchen Sie, # nopep8am Ende der Zeile (nach zwei Leerzeichen) zu setzen. Wenn also die Codezeile lautet:

h=1+2+3+4+5+6+func( "hello","world")

Um dann die zahlreichen pep8-Fehler für diese Zeile zu ignorieren, wird Folgendes:

h=1+2+3+4+5+6+func( "hello","world")  # nopep8
Alejandro
quelle
25

Sie können --ignoreflag verwenden, um den oben genannten Fehler zu deaktivieren

pep8 --ignore=E223 file_name.py

für mehrere Fehler

pep8 --ignore=E223,E501 file_name.py

Weitere Informationen zu anderen Flags erhalten Sie unter http://pep8.readthedocs.org/en/latest/intro.html

Shrey
quelle
Dies beantwortet die Frage nicht (obwohl es nützlich sein kann).
Jeppe
16

Lassen Sie mich etwas hinzufügen, das wahrscheinlich eingeführt wurde, nachdem alle vorherigen Antworten veröffentlicht wurden.

Wenn Sie Flake8 verwenden, können Sie einen bestimmten Verstoß in einer bestimmten Zeile ignorieren, indem Sie ihn hinzufügen

# noqa: F401

am Ende der Zeile, wo F401hier ein Beispiel für einen Fehlercode ist. Eine Liste aller Verstöße finden Sie unter http://flake8.pycqa.org/en/3.5.0/user/error-codes.html und https://pycodestyle.readthedocs.io/en/latest/intro.html # Fehlercodes

Sie können auch alle Verstöße in einer gesamten Datei ignorieren, indem Sie hinzufügen

# flake8: noqa

irgendwo in der Datei.

Referenz: http://flake8.pycqa.org/en/3.5.0/user/violations.html

Alessandro Cosentino
quelle
2

Wenn Sie Flake8 3.7.0+ verwenden, können Sie mit dieser --per-file-ignoresOption bestimmte Warnungen für ganze Dateien ignorieren .

Befehlszeilenverwendung:

flake8 --per-file-ignores='project/__init__.py:F401,F403 setup.py:E121'

Dies kann auch in einer Konfigurationsdatei angegeben werden :

[flake8]
per-file-ignores =
    __init__.py: F401,F403
    setup.py: E121
    other/*: W9
Eugene Yarmash
quelle
0

Sie können dies beispielsweise mit Ihrer Setup-Konfigurationsdatei ( setup.cfg) tun :

[tool:pytest]
pep8ignore =
    *.py E501 W503
    api.py E402                <=============== HERE
    doc/* ALL
pep8maxlinelength = 120
flakes-ignore =
    UnusedImport
filterwarnings =
  ignore::DeprecationWarning
Gera Zenobi
quelle