Многие наши модули начинаются с:
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
... и это единственное предупреждение Pyflakes во всем файле:
foo/bar.py:14: redefinition of unused 'json' from line 12
Как я могу заставить Pyflakes игнорировать это?
(Обычно я бы прочитал документы, но ссылка не работает. Если никто не ответит, я просто прочитаю источник.)
Ответы:
Если вы можете использовать взамен flake8 - который переносит pyflakes, а также средство проверки pep8 - строка заканчивается
# NOQA
(в котором пробел является значительным - 2 пробела между концом кода и
#
одним, между ним иNOQA
текстом) скажет контролеру игнорировать любые ошибки в этой строке.источник
# flake8: noqa
, чтобы flake8 проигнорировал проверку всего файла.# noqa
игнорирует только некоторые предупреждения / ошибки, но не все - для решения этой проблемы обходной путь включает установку / использование пакета по адресу pypi.python.org/pypi/flake8-respect-noqa# noqa: F841
означает игнорирование толькоF841
ошибки в строке.Я знаю, что это было допрошено некоторое время назад и уже ответил.
Но я хотел добавить то, что я обычно использую:
источник
silence pyflakes
комментариями.) Спасибо!assert
заявления достаточно, чтобы заставить замолчать контролера в этом случае. Хороший трюк, кстати.Да, к сожалению, dimod.org не работает вместе со всеми вкусностями.
Глядя на код pyflakes, мне кажется, что pyflakes спроектирован так, что его будет легко использовать как «встроенную быструю проверку».
Для реализации функции игнорирования вам нужно написать свой собственный, который вызывает проверку pyflakes.
Здесь вы можете найти идею: http://djangosnippets.org/snippets/1762/
Обратите внимание, что приведенный выше фрагмент только для комментариев размещается на одной строке. Для игнорирования целого блока вы можете добавить 'pyflakes: ignore' в строку документации блока и фильтр на основе node.doc.
Удачи!
Я использую Pocket-Lint для всех видов статического анализа кода. Вот изменения, внесенные в pocket-lint для игнорирования pyflakes: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882
источник
Чтобы процитировать билет GitHub :
источник
_WritelnDecorator;
абсолютно ничего не делает, верно? Поэтому я могу использовать это, чтобы заставить pyflakes игнорировать неиспользуемые переменные, которые фактически используются внутри строк eval или Numberxpr , перечисляя переменные в отдельной строке? Точка с запятой вообще необходима?dis.dis
, это, по-видимому, делает aLOAD_FAST
иPOP_TOP
для каждой переменной в строке отдельно (помещает ее в стек, а затем удаляет ее из стека?), Так что это ничего не делает.assert
Хотя лучше, чем .Вот патч обезьяны для pyflakes, который добавляет
# bypass_pyflakes
опцию комментария.bypass_pyflakes.py
Если вы сохраните это как
bypass_pyflakes.py
, то вы можете вызвать его какpython bypass_pyflakes.py myfile.py
.http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
источник
text_lineno = args[0] - 1
ее изменили наtext_lineno = args[0].lineno - 1
. Я рекомендую обновить этот ответ, чтобы отразить это.Вы также можете импортировать с помощью
__import__
. Это не pythonic, но pyflakes вас больше не предупреждает. Смотрите документацию для__import__
.источник
from foo import bar
Я создал небольшой сценарий оболочки с некоторой
awk
магией, чтобы помочь мне. При этом исключаются все строки сimport typing
,from typing import
или#$
(последний - специальный комментарий, который я здесь использую) ($1
это имя файла скрипта Python):В основном он отмечает номера строк и динамически создает регулярные выражения.
источник