Pylint:如何在没有后续 'suppressed-message' 废话的情况下干净利落地压制事物?

Pylint: How do I cleanly suppress things without subsequent 'suppressed-message' nonsense?

我有一个文件foo.py,它广泛使用了 Faker 第三方模块。因此,pylint 会产生大量 'no-member' 错误。

我想在 foo.py 中禁用这些。所以在顶部,我尝试了 插入:

# pragma pylint: disable=no-member

但是,以一种非常烦人的方式,pylint 现在每次遇到其中一个错误时都会吐出一条被抑制的消息 - 完全违背了我的 pragma 的目的??

foo.py:1:0: I0011: Locally disabling no-member (E1101) (locally-disabled)
... other misc stuff ...
foo.py:177:0: I0020: Suppressed 'no-member' (from line 1) (suppressed-message)
foo.py:83:0: I0020: Suppressed 'no-member' (from line 1) (suppressed-message)
foo.py:85:0: I0020: Suppressed 'no-member' (from line 1) (suppressed-message)

嗯……那真是……荒谬。

所以我试图...抑制抑制消息??

# pragma pylint: disable=no-member,suppressed-message

然后它变得更好...

foo.py:1:0: I0011: Locally disabling no-member (E1101) (locally-disabled)
foo.py:1:0: I0011: Locally disabling suppressed-message (I0020) (locally-disabled)
foo.py:1:0: C0102: Black listed name "foo" (blacklisted-name)
.... misc stuff, actual things I should clean up here ...
foo.py:1:0: I0021: Useless suppression of 'suppressed-message' (useless-suppression)

所以我想我的问题是 - 如何让抑制消息在每个文件的基础上完全消失,而不会有一些烦人的替换消息?

编辑:感谢您的评论。

pylint 的输出 --version:

pylint 2.1.1
astroid 2.0.4
Python 3.6.5 (default, Apr 25 2018, 14:23:58) 
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]

I 类消息默认情况下处于禁用状态。您通过在 pylintrc 的 [MESSAGES CONTROL] 部分设置 enable=all 来自行打开它们,然后您没有在同一部分的 disable 列表中禁用它们。将 suppressed-message 添加到您的 pylintrc 中的 disable 列表,抑制的消息应该停止出现。

至于 useless-suppression 消息,这似乎是一个 pylint 错误。