Pylint отключить все предупреждения для файла



мы используем pylint в нашей системе сборки. У нас есть пакет python в нашей базе кода, который имеет одноразовый код, и я хотел бы временно отключить все предупреждения для модуля, чтобы я мог перестать прослушивать других разработчиков с этими лишними сообщениями. Есть ли простой способ pylint: disable все предупреждения для модуля?

458   5  

5 ответов:

С PyLint ответы

С 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

    Ничего не найдено.