Можно ли игнорировать одну отдельную строку с pylint?
В моем заголовке есть следующая строка:
import config.logging_settings
Это фактически изменяет мои настройки регистрации python, но pylint считает, что это неиспользуемый импорт. Я не хочу вообще удалять предупреждения unused-import
, так можно ли просто игнорировать эту конкретную строку?
Я бы не прочь иметь .pylintrc
для этого проекта, поэтому ответы на изменение файла конфигурации будут приняты.
В противном случае также будет оценено что-то подобное:
import config.logging_settings # pylint: disable-this-line-in-some-way
Ответы
Ответ 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