python — есть ли в pylint способ локально отключить предупреждение, а затем отменить предыдущее подавление без явного указания списка?

Я знаю о Часто задаваемые вопросы запись для 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?

3

Решение

В пилинте такой функциональности нет. Вы можете предложить это на трекере: https://bitbucket.org/logilab/pylint/issues

0

Другие решения


По вопросам рекламы [email protected]