Я знаю о Часто задаваемые вопросы запись для PyLint, которая утверждает, что:
4.2 Есть ли способ отключить сообщение только для определенного модуля?
Да, вы можете отключить или включить (глобально отключить) сообщения на
уровень модуля, добавив соответствующую опцию в комментарии на
начало файла:# pylint: disable=wildcard-import, method-hidden # pylint: enable=too-many-lines
Тем не менее, как я могу локально подавить сообщение, а затем просто восстановить предыдущее состояние до подавления. Я не хочу повторяться при восстановлении предыдущего состояния. Есть ли способ добиться этого?
Недостаток способа, которым PyLint обрабатывает это, заключается в том, что если я отключу конкретное сообщение some-message
глобально (например, командная строка или pylintrc
), а затем у меня есть следующий сегмент кода Python:
# pylint: disable=some-message
foo, bar, baz = 0, 1, 2
# ... the code that creates the warning
# pylint: enable=some-message
документация предполагает, что первая строка не будет иметь никакого эффекта (то есть уже отключенное сообщение останется отключенным), в то время как последняя строка будет отменять не только локальный эффект первой строки — независимо от того, была ли она мягкой или нет из-за глобальных настроек — но также отменяет параметр командной строки или pylintrc
установка.
То, что я ищу, — это функциональность, аналогичная функциональности в MS Visual C ++ для предупреждений:
#pragma warning(push) /* save current state of warning settings */
#pragma warning(disable:somewarning)
/* warning occurs in code here */
#pragma warning(pop) /* restore previous state of warning settings */
более краткая альтернатива:
#pragma warning(disable:somewarning)
/* warning occurs in code here */
#pragma warning(default:somewarning)
Существует ли какая-либо функциональность в PyLint?
В пилинте такой функциональности нет. Вы можете предложить это на трекере: https://bitbucket.org/logilab/pylint/issues