Можно ли игнорировать одну конкретную строку с Pylint?
У меня есть следующая строка в моем заголовке:
import config.logging_settings
Это на самом деле меняет мои настройки ведения журнала Python, но Pylint считает, что это неиспользованный импорт. Я не хочу удалять unused-import
Предупреждения в целом, так можно ли просто игнорировать эту конкретную строку?
Я не против иметь .pylintrc
для этого проекта, так что ответы, изменяющие конфигурационный файл, будут приняты.
В противном случае, что-то вроде этого также будет оценено:
import config.logging_settings # pylint: disable-this-line-in-some-way
5 ответов
Управление сообщениями Pylint документировано в руководстве Pylint:
Можно ли локально отключить конкретное сообщение?
Да, эта функция была добавлена в Pylint 0.11. Это может быть сделано путем добавления
#pylint: disable=some-message,another-one
на желаемом уровне блока или в конце нужной строки кода
Вы можете использовать код сообщения или символические имена.
В руководстве также есть пример.
Существует вики, которая документирует все сообщения Pylint и их коды.
import config.logging_settings # pylint: disable=W0611
Это было просто и конкретно для этой линии.
Как любезно указал sthenault, вы можете и должны использовать более читабельную форму:
import config.logging_settings # pylint: disable=unused-import
В дополнение к принятому ответу:
Вы можете повторно включить проверку ошибок, добавив
pylint: enable:SPECIFIC_ERROR
Например, у меня в коде есть:
import time
import datetime
import os
import sys
# pylint: disable=import-error
import serial
# pylint: enable=import-error
Таким образом, вы можете игнорировать одну ошибку в одной строке, не отключая проверку этой ошибки во всем файле.
Я верю, что вы ищете это...
import config.logging_settings # @UnusedImport
Обратите внимание на двойной пробел перед комментарием, чтобы избежать появления других предупреждений о форматировании.
Кроме того, в зависимости от вашей IDE (если вы ее используете), возможно, есть возможность добавить правильное правило игнорирования (например, в eclipse нажатие Ctrl1, когда курсор находится над предупреждением, автоматически предложит @UnusedImport
Оформить заказ файлов в 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