Игнорирование конкретной строки кода Pylint: возможно ли?

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы Pylint проигнорировал определённую строку, в её конце следует дописать комментарий вида # pylint: disable=имя-предупреждения. Здесь имя-предупреждения – это идентификатор предупреждения, которое вы хотите подавить. Вот пример:

Python
Скопировать код
variable = "value"  # pylint: disable=unused-variable
Кинга Идем в IT: пошаговый план для смены профессии

Имена и коды сообщений Pylint

Для эффективного подавления сообщений Pylint полезно знать их идентификаторы. Эти идентификаторы могут быть двух типов:

  • символическое имя, такое как unused-variable;
  • код сообщения, например, W0612.

Если вам необходимо подавить предупреждение о неиспользуемом импорте, это можно сделать так:

Python
Скопировать код
import os  # pylint: disable=unused-import
# Даже у 'os' бывают непопулярные дни.

Или используя код сообщения:

Python
Скопировать код
import os  # pylint: disable=W0611
# 'os' грустит! Теперь на него разозлен Pylint с его кодом W0611!

Чтобы узнать нужный идентификатор, можно обратиться к репозиторию Pylint на GitHub или просмотреть wiki-страницу Pylint.

Контролирование области игнорирования предупреждений

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

Python
Скопировать код
# pylint: disable=too-many-arguments
def function_with_many_args():
    ...
# pylint: enable=too-many-arguments
# Готовы снова встретиться с предупреждениями о количестве аргументов!

Начиная с версии Pylint 2.10 появилась возможность использовать disable-next для игнорирования только следующей строки:

Python
Скопировать код
# pylint: disable-next=invalid-name
StrangeName = 42
# Повлиять на имена всех переменных нам не дано.

Для дополнительной настройки крайне рекомендуется документация по контролю сообщений Pylint.

Визуализация

Наглядную аналогию работы Pylint можно провести с куратором музея и экспонатами:

Markdown
Скопировать код
Экспонаты музея:
🏺🏺🏺🏺🏺

Если один из экспонатов (иными словами, 'код') не устраивает куратора, вы можете его «скрыть»:

Python
Скопировать код
# pylint: disable=critical-lint-rule

Таким образом, защищённый экспонат становится «невидимым» для куратора:

Markdown
Скопировать код
Экспонаты музея:
🏺🏺🛡️🏺🏺
# Куратор больше не замечает этот предмет! 🙈🎉

IDE и размещение комментариев линтинга

Ведущие интегрированные среды разработки (IDE), такие как Eclipse или PyCharm, предоставляют встроенные инструменты линтинга, которые помогают выстраивать подход к предупреждениям Pylint и дозволяют добавлять комментарии линтинга в один клик. Кроме того, следует ознакомиться и с советами PEP 8 о размещении комментариев, чтобы избегать новых предупреждений.

Когда требуется другой подход к игнорированию

В некоторых случаях, особенно в больших проектах, более удобно осуществлять широкое подавление предупреждений через изменение файла конфигурации .pylintrc. Это позволяет избегать частого использования комментариев с директивами Pylint и поддерживать чистоту кода.

Рефакторинг кода в соответствии с замечаниями Pylint помогает повысить его качество и упрощает дальнейшую поддержку.

Полезные материалы

  1. Документация Pylint – Часто задаваемые вопросы — как отключать сообщения Pylint на уровне строк.
  2. Официальный репозиторий Pylint на GitHub — подробная информация о Pylint.
  3. Лучшие практики и инструменты для повышения качества кода Python — обширное руководство по улучшению кода с помощью Pylint.
  4. PEP 8 – Стиль кодирования на Python — стандарты программирования на Python, используемые в качестве оснований Pylint.
  5. Обучающее видео о Pylint – Как писать качественный код на Python — видеоурок о работе с Pylint.