Pylint:我如何干净利落地压制事物,而又没有随后的“压制消息”废话?

时间:2018-09-21 18:28:07

标签: python pylint

我有一个文件foo.py,该文件大量使用了Faker第三方模块。这样,pylint会产生很多“无成员”错误。

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

# pragma pylint: disable=no-member

但是,以相当烦人的方式,每次遇到这些错误之一时,pylint都会发出一条被抑制的消息-完全违背了我的编译指示的目的?

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)]

1 个答案:

答案 0 :(得分:1)

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

对于无用抑制消息,这似乎是一个pylint错误。