Wiele naszych modułów zaczyna się od:
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
... i jest to jedyne ostrzeżenie Pyflakes w całym pliku:
foo/bar.py:14: redefinition of unused 'json' from line 12
Jak mogę zmusić Pyflakes do ignorowania tego?
(Normalnie chciałbym przeczytać dokumenty, ale link jest uszkodzony. Jeśli nikt nie ma odpowiedzi, po prostu przeczytam źródło).
Odpowiedzi:
Jeśli możesz zamiast tego użyć flake8 - który otacza pyflakes, a także kontroler pep8 - linia kończąca się na
# NOQA
(w których spacja jest znacząca - 2 spacje między końcem kodu a końcem kodu
#
, jedna między nim aNOQA
tekstem) nakazuje sprawdzaniu ignorować wszelkie błędy w tym wierszu.źródło
# flake8: noqa
spowoduje, że flake8 zignoruje sprawdzanie poprawności całego pliku.# noqa
ignoruje tylko niektóre ostrzeżenia / błędy, ale nie wszystkie - aby sobie z tym poradzić, obejście polega na zainstalowaniu / użyciu pakietu na pypi.python.org/pypi/flake8-respect-noqa# noqa: F841
oznaczają ignorowanie tylkoF841
błędu na linii.Wiem, że to było kwestionowane jakiś czas temu i już na to odpowiedziano.
Ale chciałem dodać to, czego zwykle używam:
źródło
silence pyflakes
komentarzem.) Dzięki!assert
stwierdzenie wystarczy, aby w tym przypadku uciszyć szachownicę. Nawiasem mówiąc, niezła sztuczka.Tak, niestety dimod.org nie działa razem ze wszystkimi gadżetami.
Patrząc na kod pyflakes, wydaje mi się, że pyflakes zostało zaprojektowane tak, aby było łatwe w użyciu jako „osadzony szybki kontroler”.
Aby zaimplementować funkcję ignorowania, musisz napisać własną, która wywołuje funkcję sprawdzania pyflakes.
Tutaj możesz znaleźć pomysł: http://djangosnippets.org/snippets/1762/
Zauważ, że powyższy fragment tylko dla komentarzy umieszcza się w tej samej linii. Aby zignorować cały blok, możesz dodać „pyflakes: ignore” w dokumentacji bloku i filtr oparty na node.doc.
Powodzenia!
Używam pocket-lint do wszelkiego rodzaju statycznej analizy kodu. Oto zmiany wprowadzone w pocket-lint w celu zignorowania pyflakes: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882
źródło
Cytat z biletu na Github :
źródło
_WritelnDecorator;
nic nie robi, prawda? Więc mogę użyć tego, aby pyflakes ignorował nieużywane zmienne, które są faktycznie używane w ciągach eval lub numexpr , umieszczając zmienne w osobnym wierszu? Czy średnik jest w ogóle potrzebny?dis.dis
, to najwyraźniej robiLOAD_FAST
aPOP_TOP
dla każdej zmiennej w wierszu samodzielnie (umieszcza ją na stosie, a następnie usuwa ze stosu?), Więc nic nie robi.assert
Ale lepiej niż .Oto łatka małpa na pyflakes, która dodaje
# bypass_pyflakes
opcję komentarza.bypass_pyflakes.py
Jeśli zapiszesz to jako
bypass_pyflakes.py
, możesz wywołać go jakopython bypass_pyflakes.py myfile.py
.http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
źródło
text_lineno = args[0] - 1
zmiany natext_lineno = args[0].lineno - 1
. Zalecam zaktualizowanie tej odpowiedzi, aby to odzwierciedlić.Możesz także importować z
__import__
. To nie jest pytoniczne, ale pyflakes już Cię nie ostrzega. Zobacz dokumentację__import__
.źródło
from foo import bar
Stworzyłem mały skrypt powłoki z pewną
awk
magią, aby mi pomóc. Z tym wszystkie linie zimport typing
,from typing import
lub#$
(ostatni jest specjalny komentarz używam tutaj) są wyłączone ($1
to nazwa pliku skryptu Python):Zasadniczo zapisuje numery linii i dynamicznie tworzy z nich wyrażenie regularne.
źródło