Подтвердить что ты не робот

Можно ли игнорировать одну отдельную строку с pylint?

В моем заголовке есть следующая строка:

import config.logging_settings

Это фактически изменяет мои настройки регистрации python, но pylint считает, что это неиспользуемый импорт. Я не хочу вообще удалять предупреждения unused-import, так можно ли просто игнорировать эту конкретную строку?

Я бы не прочь иметь .pylintrc для этого проекта, поэтому ответы на изменение файла конфигурации будут приняты.

В противном случае также будет оценено что-то подобное:

import config.logging_settings # pylint: disable-this-line-in-some-way
4b9b3361

Ответ 1

Управление сообщениями Pylint описано в руководстве по Pylint:

Можно ли локально отключить конкретное сообщение?

Да, эта функция была добавлена в Pylint 0.11. Это можно сделать, добавив
# pylint: disable=some-message,another-one
на желаемом уровне блока или в конце нужной строки кода

Вы можете использовать код сообщения или символические имена.

В руководстве также есть пример.

Существует вики, которая документирует все сообщения Pylint и их коды.

Ответ 2

import config.logging_settings # pylint: disable=W0611

Это было просто и специфично для этой строки.

Как любезно указали sthenault, вы можете и должны использовать более читаемую форму:

import config.logging_settings # pylint: disable=unused-import

Ответ 3

Я верю, что вы ищете...

import config.logging_settings  # @UnusedImport

Обратите внимание на двойное пространство перед комментарием, чтобы избежать попадания других предупреждений о форматировании.

Кроме того, в зависимости от вашей IDE (если вы ее используете), возможно, есть возможность добавить правильное правило игнорирования (например, при нажатии eclipse Ctrl 1, когда курсор находится над предупреждением, будет автоматически предлагаться @UnusedImport

Ответ 4

Оформить заказ в https://github.com/PyCQA/pylint/tree/master/pylint/checkers. Я не нашел лучшего способа получить имя ошибки из сообщения, чем сочетание клавиш Ctrl + F или использование функции поиска Github:

Если сообщение "Нет имени... в модуле...", используйте поиск:

No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers

Или, чтобы получить меньше результатов:

"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers

Github покажет вам:

"E0611": (
    "No name %r in module %r",
    "no-name-in-module",
    "Used when a name cannot be found in a module.",

Затем вы можете сделать:

from collections import Sequence # pylint: disable=no-name-in-module