Можно ли игнорировать одну конкретную строку с 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
Другие вопросы по тегам