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?

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 .


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

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


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



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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.