Рубрики
Без рубрики

Отключение пилинтных сообщений

Этот пост был первоначально размещен 12 августа 2018 года к https: //www.codepandentcodr.com/disabling-pylint-m … Теги с Python, Pylint, VSCode.

Этот пост был первоначально размещен 12 августа 2018 года https://www.codependentcodr.com/disabling-pylint-messages.html#disabling-pylint-messages

Небольшой кончик дня, так как я продолжаю, чтобы посмотреть это. Если вы используете Пилинт Для статического анализа вашего кода вы можете обнаружить, что вы захотите отключить конкретное правило для определенной линии или файла. То есть вы не хотите постоянно отключить это правило, но только для этого особого места, где правило не имеет смысла.

Я считаю, что это особенно распространено в модульном тестовом коде, так как мои имена методов теста, как правило, долго, нарушая правила C0103 “не соответствует правилам именования”. Например, название теста может выглядеть так:

def test_message_builder_generates_correct_bytestring_when_no_argument_supplied():

Который очень наглядно наглядно, и когда этот тест терпит неудачу, это затрудняет понимание того, что могло пойти не так. Проблема в том, что пилинт будет отступить на эту линию, поскольку длина более 30 символов, нарушая руководящие принципы стиля. Мы могли бы отключить это правило по всей кодовой базе, но вне тестов, правило имеет смысл.

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

# pylint disable=C0103
def test_message_builder_generates_correct_bytestring_when_no_argument_supplied():

Это будет подавлять код C0103 для оставшейся части масштаба (модуля или блокировки), или до тех пор, пока он не будет повторно включен:

# pylint disable=C0103
def test_message_builder_generates_correct_bytestring_when_no_argument_supplied():


# still disabled here...

# pylint enable=C0103
def but_not_disabled_here_so_this_name_will_get_flagged_by_pylint():

Вы также можете (и, как правило, лучшая практика) Используйте «Verbose Name» для определенного кода, а не код сокращения. Например, это эквивалентно:

# pylint disable=invalid-name
def test_message_builder_generates_correct_bytestring_when_no_argument_supplied():

Вопрос тогда становится «Как я узнаю, какое имя Verbose для кода?» И ответ – использовать --Лист-сообщения Аргумент для пилинта на командной строке, и она все выплюнет:

$ pylint --list-msgs
:blacklisted-name (C0102): *Black listed name "%s"*
  Used when the name is listed in the black list (unauthorized names).
:invalid-name (C0103): *%s name "%s" doesn't conform to %s*
  Used when the name doesn't conform to naming rules associated to its type
  (constant, variable, class...).
:missing-docstring (C0111): *Missing %s docstring*
  Used when a module, function, class or method has no docstring.Some special
  methods like __init__ doesn't necessary require a docstring.
:empty-docstring (C0112): *Empty %s docstring*
  Used when a module, function, class or method has an empty docstring (it would
  be too easy ;).

... more lines ...

Один дополнительный совет о пилинте: если вы используете Visual Studio Code, вы можете включить Pylint в качестве линтера, а предупреждения будут введены в представление о проблемах. Чтобы включить его на установить следующее в параметрах VS-кода (при условии, что вы установили расширение Python Microsoft ):

"python.linting.enabled": true,
"python.linting.pylintEnabled": true,

Обратите внимание, что это как по умолчанию (по крайней мере, в текущей версии). После того, как вы сохраните файл Python, предупреждения Pyylint появятся в просмотре задач:

Обратите внимание, что этот скриншот также иллюстрирует, как вы можете отфильтровать вид на проблемы, чтобы показать просто предупреждения Pylint, введя «Пилинт» в поле поиска. Также обратите внимание, что нажатие на любой из них откроет этот файл в VS-коде и перейдите к рассматриваемой линии. Действительно удобно.

Оригинал: “https://dev.to/pzelnip/disabling-pylint-messages-4i08”