Как отключить Pylint неиспользуемые сообщения об ошибках импорта в коде - PullRequest
0 голосов
/ 01 сентября 2018

Как отключить отображение этих сообщений об ошибках в окне проблем в коде

error messages

Ответы [ 3 ]

0 голосов
/ 01 сентября 2018
"python.linting.pylintArgs": [
    "--disable=C0111"
],

Вы также можете отключить по типу сообщения, например, --disable=W.

Хорошая ссылка - www.pylintcode.info , со списком идентификаторов сообщений и типов сообщений.

0 голосов
/ 02 февраля 2019

Как уже говорили другие, вы можете предоставить аргумент отключения, чтобы отключить конкретное сообщение. Я хотел бы уточнить это.

  1. Вот синтаксис для отключения нескольких сообщений и для предоставления нескольких аргументов , который не был сразу очевиден для меня из его поиска:

    "python.linting.pylintArgs": [
        "--max-line-length=80",
        "--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301"
    ]
    
  2. Вы заявили, что стали видеть больше ошибок, когда отключили одно сообщение. Это может иметь смысл в соответствии с документацией :

    Python в коде Visual Studio по умолчанию настроен на использование набора правила linting, которые дружат с наибольшим количеством Python Разработчики:

    • Включить все сообщения об ошибках (E) и фатальных (F).
    • Отключить все сообщения Конвенции (C) и Refactor (R).
    • Отключить все предупреждения (W), кроме следующих:
      • недоступен (W0101): код недоступен
      • дубликат ключа (W0109): дубликат ключа% r в словаре
      • ненужная точка с запятой (W0301): ненужная точка с запятой
      • глобальная переменная не назначена (W0602): используется глобальная переменная для% r, но назначение не выполняется
      • неиспользуемая переменная (W0612): неиспользуемая переменная% r
      • binary-op-exception (W0711): Исключение для перехвата является результатом двоичной операции "% s"
      • строка плохого формата (W1302): неверная строка формата
      • Аномальная обратная косая черта в строке (W1401): Аномальная обратная косая черта в строке
      • bad-open-mode (W1501): «% s» не является допустимым режимом для открытия

    Эти правила применяются через следующие аргументы по умолчанию, передаваемые Pylint:

    --disable=all
    --enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode
    

    Эти аргументы передаются всякий раз, когда python.linting.pylintUseMinimalCheckers установлено на true (по умолчанию). Если вы указываете значение в pylintArgs или используете конфигурацию Pylint файл (см. следующий раздел), тогда pylintUseMinimalCheckers неявно установлено на false.

    Другими словами, PyLint предположительно довольно слабый по умолчанию в VS Code, показывая только сообщения об ошибках и несколько выбранных предупреждений. Но когда вы вручную устанавливаете pylintArgs на что-то, pylintUseMinimalCheckers игнорируется, открывая шлюзы для всех сообщений. Возможно, поэтому отключение одного сообщения привело к тому, что было показано больше сообщений. Опять же, я не уверен, почему вы видели сообщения неиспользованного импорта в первую очередь, так как они должны были подавляться по умолчанию в соответствии с документацией.

  3. На самом деле, в настоящее время это не работает: python.linting.pylintUseMinimalCheckers": true (для меня, в данный конкретный момент времени, но, надеюсь, это хорошо для вас, будущий читатель). Чтобы получить тот же эффект, мне пришлось вручную установить pylintArgs на значение, которое предполагалось установить автоматически:

    "python.linting.pylintArgs": [
        "--disable=all",
        "--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode"
    ]
    
  4. БОНУС: Вот объяснение списка отключенных сообщений, которые я использую , как показано выше в пункте 1. В основном это взято из здесь :

    # Disabled messages
    #    Pointless
    #       W0142 = *args and **kwargs support
    #       W0403 = Relative imports
    #       W0613 = Unused argument
    #       W0232 = Class has no __init__ method
    #       R0903 = Too few public methods
    #       R0913 = Too many arguments
    #       C0103 = Invalid name
    #       R0914 = Too many local variables
    #       C0304 = Final newline missing
    #
    #    PyLint's module importation is unreliable
    #       F0401 = Unable to import module
    #       W0402 = Uses of a deprecated module
    #       E1101 = Module x has no y member
    #
    #    Already an error when wildcard imports are used
    #       W0614 = Unused import from wildcard
    #
    #    Stricter messages that can be disabled until everything else has been fixed
    #       C0111 = Missing docstring
    #       C0301 = Line too long
    
0 голосов
/ 01 сентября 2018

В настройках кода VS (CTRL+COMMA)

"python.linting.pylintArgs": [
    "--disable=W0614"
],

Для большего количества идей: https://github.com/DonJayamanne/pythonVSCode/issues/570

...