Найдите, какие настройки влияют на данное сообщение Pylint - PullRequest
0 голосов
/ 25 февраля 2019

Когда Pylint предупреждает меня о чем-то, как я могу узнать, какие настройки он применяет?И в каком разделе .pylintrc эта настройка входит?

Например:

  • Used builtin function 'map'. Using a list comprehension can be clearer. (bad-builtin), потому что bad-functions в [BASIC] содержит map.
  • Missing function docstring (missing-docstring) зависит от docstring-min-length в [BASIC].
  • invalid-name подчиняется нескольким [BASIC] настройкам: variable-rgx, method-rgx, module-rgx и т. Д.

Я ожидал найти эту информацию в документации Pylint , но обычно она не предоставляет эту информацию.Например, нет никакой ссылки из документации missing-docstring или invalid-names на применимых опций bad-builtin информацию легко найти, но только потому, что она от конкретного расширения .В вики-сообщении Pylint есть пояснения о том, что означает сообщение, но не о том, что его вызвало.Комментарии в pylint --generate-rcfile также не связывают настройки с кодовыми именами предупреждений (там ничего не объясняется, например, bad-functions влияет на сообщение bad-builtin).

Причина, по которой я спрашиваю это, заключается в том, что во многихВ некоторых случаях соглашения Pylint не соответствуют потребностям и соглашениям моего проекта, и я хочу настроить его, а не игнорировать конкретные экземпляры или игнорировать сообщения оптом (поэтому я не ищу disable=!).Так как мне найти то, что нужно настроить?

1 Ответ

0 голосов
/ 01 марта 2019

Как мне найти, что настраивать?

Таким образом, вы, похоже, спрашиваете, как вы можете определить комбинацию факторов, которые приводят к появлению сообщения Pylint.Используя пример bad-builtin, предупреждающее сообщение, которого нет в списке .pylintrc, можно получить подробное подробное сообщение:

bad-builtin: Used builtin function 'map'. Using a list comprehension can be clearer.

---> (Hypothetical) VERBOSE OUTPUT:

bad-builtin был повышен, поскольку настройка bad-functions в вашем .pylintrc в разделе [BASIC] содержит функцию map.Если вы хотите «настроить» это поведение, посмотрите здесь.

Краткий ответ : Я не уверен, что это существует.

Когда вы запускаете pylint my_file.py, первое, что он должен сказать вам, это файл конфигурации, который он использует.Оттуда вы хотите найти .pylintrc в использовании или вы хотите его создать.В противном случае он будет использовать конфигурацию по умолчанию.Если pylint не сообщает вам, какую конфигурацию вы используете, вы можете выяснить текущую конфигурацию pylintrc, выполнив что-то вроде:

pylint --generate-rcfile &> output.txt

Когда вы проверяете output.txt, он должен выглядеть следующим образом пример pylintrc .Он организован в разные категории.Вы можете получить больше информации об этом без генерации rcfile, запустив pylint --long-help.Разделы включают в себя:

[MASTER]
[MESSAGES CONTROL]
[REPORTS]
[BASIC]
[ELIF]
[TYPECHECK]
[FORMAT]
[MISCELLANEOUS]
[VARIABLES]
[LOGGING]
[SIMILARITIES]
[SPELLING]
[IMPORTS]
[DESIGN]
[CLASSES]
[EXCEPTIONS]

Я не уверен, что вы имеете в виду, «Вики-сообщение Pylint содержит пояснения о том, что означает сообщение, но не о том, что его подняло».Когда я запускаю pylint в файле или в кодовой базе, он точно сообщает мне, где находится строка, вызывающая ошибку

Тогда я обычно либо:

  • Исправляю предупреждение
  • Отключаю предупреждение
  • Модифицирую .pylintrc для удовлетворения моих потребностей

Если вы хотите настроить конкретный тип сообщения, но не знаете, как это сделать, тогда я думаю, что вы правы, это то, что может быть лучше задокументировано.Вопрос: Is XYZ warning message 'tunable'? Или это единственный вариант исправить ИЛИ отключить? На этой странице перечислены функции пилинта , но я не вижу ничего о плохой встроенной функции, например, не говоря уже о параметрах, доступных для применения к типу сообщения.

ОБНОВЛЕНИЕ: Я не уверен, на какой версии pylint вы работаете, но похоже, что bad-builtin был , специально предназначенный для версии pylint 1.6 .Я собирался сказать, что мы должны посмотреть на то, что происходит в фактическом исходном коде, чтобы сгенерировать это сообщение, но я думаю, что для этого нужно сначала выяснить, на какой версии pylint вы работаете, затем углубиться в код, а затем выяснить, какнастроить это?Я согласен с тем, что документы могут быть более понятными о том, как настроить конкретные предупреждения:

Проверка плохой встроенности была перемещена в расширение.

Проверка жаловалась на использованные встроенные функциикоторые должны были быть использованы.Например, карта и фильтр попадают в эту категорию, так как могут использоваться лучшие альтернативы, такие как списки.Но проверка раздражала, так как использование карты или фильтра может иметь свои варианты использования, и поэтому мы решили вместо этого перенести его на проверку расширений.Теперь его можно включить с помощью --load-plugins = pylint.extensions.bad_builtin.

...