使用django时安静pylint误报

Jiv*_*ara 11 python django pylint

在使用Django时,我想要安静地保护一些pylint错误.导致最大刺激的两个是从django.db.models.Model派生并访问对象和django.test.TestCase.首先,pylint抱怨任何使用属性'objects'的代码,说它不是成员.在第二个,在对测试用例添加七个测试之后,它抱怨公共方法太多(我猜测TestCase有十四个)

我知道这个问题的第一部分是问题115977的副本,但是这个问题有点陈旧,没有一个解决方案非常好,所以我想我会解决这个问题.

我不想简单地压制pylint中的抱怨,因为我喜欢在其他情况下看到它们.

Ali*_*ell 7

最容易的,只要您的问题代码不受您的控制(例如自动生成),就是禁用您知道它们是虚假的区域的投诉.直接从首次引入此解决方案的消息中复制示例:

1  class foo:
2    # pylint: disable=W1234
3    def bar(self):
4      # pylint: disable=W4321
5      pass
6    def gnurz(self):
7      pass
Run Code Online (Sandbox Code Playgroud)


Xie*_*nbo 5

如果你不关心一些 pylint 的警告,比如不存在的成员(E1101)和太多的公共方法(R0904),你可以很容易地关闭它:

pylint --disable=E1101,R0904
Run Code Online (Sandbox Code Playgroud)

如果你只对几个跳棋感兴趣,你可以像这样运行 pylint:

pylint --enable=basic,variables,classes,design,imports,newstyle,exceptions,format,miscellaneous,metrics,similarities
Run Code Online (Sandbox Code Playgroud)

  • OP 提到他不想在全球范围内抑制这些错误。 (4认同)

Tal*_*iss 5

我不喜欢重复自己,但这是一个实际 可行的答案:https
://stackoverflow.com/a/31000713/78234答案:不要通过添加ignores或禁用或削弱Pylint功能generated-members
使用积极开发的了解 Django的Pylint插件。
这个适用于Django的Pylint插件效果很好:

pip install pylint-django
Run Code Online (Sandbox Code Playgroud)

在运行pylint时,将以下标志添加到命令中:

--load-plugins pylint_django
Run Code Online (Sandbox Code Playgroud)

详细的博客文章在这里