Viele unserer Module beginnen mit:
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
... und es ist die einzige Pyflakes-Warnung in der gesamten Datei:
foo/bar.py:14: redefinition of unused 'json' from line 12
Wie kann ich Pyflakes dazu bringen, dies zu ignorieren?
(Normalerweise würde ich die Dokumente lesen, aber der Link ist defekt. Wenn niemand eine Antwort hat, lese ich einfach die Quelle.)
Antworten:
Wenn Sie stattdessen flake8 verwenden können, das sowohl Pyflakes als auch den pep8-Checker umschließt, endet eine Zeile mit
# NOQA
(wobei der Abstand signifikant ist - 2 Leerzeichen zwischen dem Ende des Codes und dem
#
, einem zwischen ihm und demNOQA
Text), weist den Prüfer an, alle Fehler in dieser Zeile zu ignorieren.quelle
# flake8: noqa
Wenn Sie diese Zeile hinzufügen, wird flake8 angewiesen, die Validierung für die gesamte Datei zu ignorieren.# noqa
nur ignoriert bestimmte Warnungen / Fehler, aber nicht alle - , um befassen sich mit diesem, beinhaltet eine Abhilfe Installation / das Paket bei Verwendung pypi.python.org/pypi/flake8-respect-noqa# noqa: F841
bedeutet, nurF841
Fehler an der Leitung zu ignorieren .Ich weiß, dass dies vor einiger Zeit in Frage gestellt wurde und bereits beantwortet wurde.
Aber ich wollte hinzufügen, was ich normalerweise benutze:
quelle
silence pyflakes
Kommentar zu ignorieren .) Danke!assert
Aussage reicht aus, um den Prüfer in diesem Fall zum Schweigen zu bringen. Netter Trick übrigens.Ja, leider ist dimod.org zusammen mit allen Leckereien ausgefallen.
Wenn ich mir den Pyflakes-Code anschaue, scheint es mir, dass Pyflakes so konzipiert sind, dass es einfach ist, ihn als "eingebetteten Schnellprüfer" zu verwenden.
Um die Ignorierfunktion zu implementieren, müssen Sie eine eigene schreiben, die den Pyflakes-Checker aufruft.
Hier finden Sie eine Idee: http://djangosnippets.org/snippets/1762/
Beachten Sie, dass das obige Snippet nur für Kommentare in derselben Zeile steht. Um einen ganzen Block zu ignorieren, möchten Sie möglicherweise 'pyflakes: ignore' in den Block docstring und den Filter basierend auf node.doc einfügen.
Viel Glück!
Ich verwende Pocket-Lint für alle Arten von statischen Code-Analysen. Hier sind die Änderungen, die in Pocket-Lint vorgenommen wurden, um Pyflakes zu ignorieren: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882
quelle
Um aus dem Github Issue Ticket zu zitieren :
quelle
_WritelnDecorator;
macht absolut nichts, oder? So kann ich diese Pyflakes bekommen verwenden , um nicht verwendete Variablen zu ignorieren, die im Innern tatsächlich verwendet werden eval oder numexpr durch Auflisten der Variablen in einer separaten Zeile Strings? Ist das Semikolon überhaupt notwendig?dis.dis
dies anscheinend einLOAD_FAST
undPOP_TOP
für jede Variable in einer Zeile für sich (legt es auf den Stapel und entfernt es dann vom Stapel?), Also tut es nichts. Besser alsassert
.Hier ist ein Affen-Patch für Pyflakes, der eine
# bypass_pyflakes
Kommentaroption hinzufügt .bypass_pyflakes.py
Wenn Sie dies als speichern
bypass_pyflakes.py
, können Sie es als aufrufenpython bypass_pyflakes.py myfile.py
.http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
quelle
text_lineno = args[0] - 1
eine Änderung intext_lineno = args[0].lineno - 1
. Ich empfehle, diese Antwort zu aktualisieren, um dies widerzuspiegeln.Sie können auch mit importieren
__import__
. Es ist nicht pythonisch, aber Pyflakes warnen dich nicht mehr. Siehe Dokumentation für__import__
.quelle
from foo import bar
Ich habe ein kleines Shell-Skript mit etwas
awk
Magie erstellt, um mir zu helfen. Damit alle Zeilen mitimport typing
,from typing import
oder#$
(letzteres ist ein spezieller Kommentar , den ich hier bin mit) sind ausgeschlossen ($1
der Dateiname des Python - Skript):Grundsätzlich werden die Zeilennummern notiert und dynamisch ein Regex daraus erstellt.
quelle