Pylint отключить все предупреждения для файла
мы используем pylint в нашей системе сборки. У нас есть пакет python в нашей базе кода, который имеет одноразовый код, и я хотел бы временно отключить все предупреждения для модуля, чтобы я мог перестать прослушивать других разработчиков с этими лишними сообщениями. Есть ли простой способ pylint: disable все предупреждения для модуля?
5 ответов:
С Pylint
# pylint: disable-allв начале модуля.
Pylint 0.26.1 и выше переименовали эту директиву в
# pylint: skip-file(но первая версия будет сохранена для обратной совместимости).
для того чтобы облегчить поиск, какие модули игнорируются, а на уровне информационных сообщений I0013 это излучается. В последних версиях Pylint, если вы используете старый синтаксис, дополнительный Сообщение I0014 это излучается.
PyLint и пять "категорий" для сообщения (о чем я знаю).
эти категории были очень очевидны в прошлом, но пронумерованные сообщения Pylint теперь были заменены именами. Например,
C0302теперьtoo-many-lines. Но " с " говорит нам, чтоtoo-many-linesэто сообщение. Это сбивает с толку, потому что сообщения часто просто показывают, как предупреждение, так как многие системы (например, Syntastic) кажется, классифицировать все как либо предупреждение или ошибку. Тем не менее, отчет PyLint по-прежнему разбивает вещи на эти категории, поэтому он по-прежнему определенно поддерживается.Ваш вопрос конкретно относится к предупреждения и все PyLint предупреждение имена сообщений начинаются с 'W'.
мне было немного трудно отследить это, но ответ в конце концов привел меня к ответу. PyLint по-прежнему поддерживает отключение целых категорий сообщений. Итак, отключить все предупреждения, вы могли бы сделать:
disable=Wэто можно использовать в командной строке:
$ pylint --disable=W myfile.pyили вы можете поместить его в свой файл pylintrc:
[MESSAGES CONTROL] disable=WПримечание: Вы уже можете иметь
disableопция в вашем rc-файле, в этом случае вы должны добавить 'W' в этот список.или вы можете поместить его в свой код, где он будет работать для области, в которую он помещается:
# pylint: disable=Wчтобы отключить его для всего файла, лучше всего поместить его в самой верхней части файла. Однако даже в самой верхней части файла я обнаружил, что все еще получаю
trailing-newlinesпредупреждение (технически a внимание, но я добираюсь до этого).в моем случае, у меня была библиотека, написанная кем-то из давно. Он работал хорошо, так что не было никакой необходимости беспокоиться о современной Конвенции Python, так далее. Все, что меня действительно волновало, это ошибки, которые, вероятно, сломают мой код.
мое решение было отключить все предупреждение, и рефакторинг сообщения для этого одного файла только путем размещения следующей команды PyLint в первой строке:
# pylint: disable=W,C,Rпомимо вышеупомянутого сообщения для трейлинга новых строк, это сделало именно то, что мне нужно.
Да, вы можете указать
# pylint: skip-file, но это плохая практика, чтобы отключить все предупреждения на файл. Одноразовый код не должен существовать в ветви, которая анализируется pylint.если вы хотите отключить только определенные предупреждения, это можно сделать, добавив комментарий, например
# pylint: disable=message-nameчтобы отключить указанное сообщение для остальной части файла, или по крайней мере до# pylint: enable=message-name.пример:
# pylint: disable=no-member class C123: def __init__(self): self.foo_x = self.bar_x # pylint: enable=no-member class C456: def __init__(self): self.foo_x = self.bar_x
другой вариант-использовать
--ignoreпараметр командной строки, чтобы пропустить анализ для некоторых файлов.
мой вариант использования-запустить
pylint *.pyдля обработки всех файлов в каталоге, за исключением того, что я хочу пропустить один конкретный файл.добавлять
#pylint: skip-fileвызвал сбой pylint сI: 8, 0: Ignoring entire file (file-ignored). Добавление#pylint: disable=file-ignoredне исправить. Предположительно, это глобальная ошибка, а не файловая.решение должно было включать
--disable=file-ignoredв параметрах команды pylint. Это заняло слишком много времени, чтобы понять это; не должно бытьfile-ignoredошибка при явном игнорировании a файл.
Comments