查找哪些设置会影响给定的Pylint消息

时间:2019-02-25 18:38:42

标签: pylint pylintrc

当Pylint警告我某些事情时,我怎么知道它正在应用什么设置?这项设置在.pylintrc的哪个部分进行?

例如:

  • Used builtin function 'map'. Using a list comprehension can be clearer. (bad-builtin)是因为bad-functions中的[BASIC]包含map
  • Missing function docstring (missing-docstring)docstring-min-length[BASIC]为条件。
  • invalid-name遵循几种[BASIC]设置:variable-rgxmethod-rgxmodule-rgx

我希望在Pylint documentation中找到此信息,但通常不提供此信息。例如,从the documentation of missing-docstring or invalid-namesapplicable options没有链接。使用bad-builtin,可以轻松找到信息,但这仅是因为它来自specific extensionPylint message wiki对该消息的含义进行了解释,但没有提出任何含义。 pylint --generate-rcfile中的注释也没有将设置与警告代号相关联(没有任何说明例如bad-functions影响bad-builtin消息)。

我问这个问题的原因是,在许多情况下,Pylint的约定与我项目的需求和约定不符,我想对其进行调整,而不是忽略特定的实例或忽略消息批发(因此,我不是在寻找为disable=!)。那我怎么找到要调的东西呢?

1 个答案:

答案 0 :(得分:0)

如何找到要调整的内容?

因此,似乎您在询问如何确定导致发出pylint信息的因素的组合。使用bad-builtin示例,在.pylintrc中根本没有列出警告消息,一条有用的详细消息将是:

  

bad-builtinUsed builtin function 'map'. Using a list comprehension can be clearer.

     

---> (Hypothetical) VERBOSE OUTPUT

     之所以提出

bad-builtin是因为您的bad-functions.pylintrc中的[BASIC]设置包含函数map。如果您想“调整”此行为,请点击此处。

简短答案:我不确定是否存在。

运行pylint my_file.py时,它首先应该告诉您的是它正在使用的配置文件。从那里,您想找到正在使用的.pylintrc,或者要创建它。否则,它将使用默认配置。如果pylint不能告诉您您正在使用什么配置,则可以通过运行以下命令来找出当前的pylintrc配置:

pylint --generate-rcfile &> output.txt

当您检查output.txt时,其外观应为example pylintrc。它分为不同的类别。您可以通过运行pylint --long-help来获取更多信息,而无需生成rcfile。这些部分包括:

[MASTER]
[MESSAGES CONTROL]
[REPORTS]
[BASIC]
[ELIF]
[TYPECHECK]
[FORMAT]
[MISCELLANEOUS]
[VARIABLES]
[LOGGING]
[SIMILARITIES]
[SPELLING]
[IMPORTS]
[DESIGN]
[CLASSES]
[EXCEPTIONS]

我不确定您的意思是什么,“ Pylint消息Wiki上有关于消息含义的解释,但没有引起它的含义的解释。”当我在文件或代码库中运行pylint时,它会告诉我确切的问题所在。

然后我通常要么:

  • 修复警告
  • 禁用警告
  • 修改.pylintrc以满足我的需求

如果您想调整特定的消息类型,但不确定如何调整,那么我认为您是对的,可以做更好的记录。问题:Is XYZ warning message 'tunable'?还是修复或禁用的唯一选项? This page lists the pylint features,但我看不到任何有关内置错误的信息,例如,更不用说可用于消息类型的选项了。

更新:我不确定您使用的是哪个版本的pylint,但看起来bad-builtinspecifically addressed in pylint version 1.6。我要说的是,我们应该查看实际源代码中发生了什么,以生成此消息,但是我认为这需要先弄清楚您所使用的pylint版本,然后再深入研究代码,然后弄清楚如何调好吗?我同意文档可以更清晰地说明如何调整特定警告:

  

内置错误的支票已移至扩展名。

     

该支票抱怨使用的内置函数   应该不被使用。例如,地图和过滤器在下降   由于可以使用更好的替代方法,例如   列出理解。但是检查很烦人,因为使用地图或   过滤器可以有其用例,因此,我们决定将其移至   扩展名检查。现在可以通过启用它   --load-plugins = pylint.extensions.bad_builtin。