Игнорирование конкретной строки кода Pylint: возможно ли?
Быстрый ответ
Для того чтобы Pylint проигнорировал определённую строку, в её конце следует дописать комментарий вида # pylint: disable=имя-предупреждения
. Здесь имя-предупреждения
– это идентификатор предупреждения, которое вы хотите подавить. Вот пример:
variable = "value" # pylint: disable=unused-variable
Имена и коды сообщений Pylint
Для эффективного подавления сообщений Pylint полезно знать их идентификаторы. Эти идентификаторы могут быть двух типов:
- символическое имя, такое как
unused-variable
; - код сообщения, например,
W0612
.
Если вам необходимо подавить предупреждение о неиспользуемом импорте, это можно сделать так:
import os # pylint: disable=unused-import
# Даже у 'os' бывают непопулярные дни.
Или используя код сообщения:
import os # pylint: disable=W0611
# 'os' грустит! Теперь на него разозлен Pylint с его кодом W0611!
Чтобы узнать нужный идентификатор, можно обратиться к репозиторию Pylint на GitHub или просмотреть wiki-страницу Pylint.
Контролирование области игнорирования предупреждений
Когда вы отключаете сообщение на уровне строки, вы воздействуете на конкретное место в коде, но иногда требуется снова включить данное предупреждение:
# pylint: disable=too-many-arguments
def function_with_many_args():
...
# pylint: enable=too-many-arguments
# Готовы снова встретиться с предупреждениями о количестве аргументов!
Начиная с версии Pylint 2.10 появилась возможность использовать disable-next
для игнорирования только следующей строки:
# pylint: disable-next=invalid-name
StrangeName = 42
# Повлиять на имена всех переменных нам не дано.
Для дополнительной настройки крайне рекомендуется документация по контролю сообщений Pylint.
Визуализация
Наглядную аналогию работы Pylint
можно провести с куратором музея и экспонатами:
Экспонаты музея:
🏺🏺🏺🏺🏺
Если один из экспонатов (иными словами, 'код') не устраивает куратора, вы можете его «скрыть»:
# pylint: disable=critical-lint-rule
Таким образом, защищённый экспонат становится «невидимым» для куратора:
Экспонаты музея:
🏺🏺🛡️🏺🏺
# Куратор больше не замечает этот предмет! 🙈🎉
IDE и размещение комментариев линтинга
Ведущие интегрированные среды разработки (IDE), такие как Eclipse или PyCharm, предоставляют встроенные инструменты линтинга, которые помогают выстраивать подход к предупреждениям Pylint и дозволяют добавлять комментарии линтинга в один клик. Кроме того, следует ознакомиться и с советами PEP 8 о размещении комментариев, чтобы избегать новых предупреждений.
Когда требуется другой подход к игнорированию
В некоторых случаях, особенно в больших проектах, более удобно осуществлять широкое подавление предупреждений через изменение файла конфигурации .pylintrc
. Это позволяет избегать частого использования комментариев с директивами Pylint и поддерживать чистоту кода.
Рефакторинг кода в соответствии с замечаниями Pylint помогает повысить его качество и упрощает дальнейшую поддержку.
Полезные материалы
- Документация Pylint – Часто задаваемые вопросы — как отключать сообщения Pylint на уровне строк.
- Официальный репозиторий Pylint на GitHub — подробная информация о Pylint.
- Лучшие практики и инструменты для повышения качества кода Python — обширное руководство по улучшению кода с помощью Pylint.
- PEP 8 – Стиль кодирования на Python — стандарты программирования на Python, используемые в качестве оснований Pylint.
- Обучающее видео о Pylint – Как писать качественный код на Python — видеоурок о работе с Pylint.