当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-rgx
,method-rgx
,module-rgx
等我希望在Pylint documentation中找到此信息,但通常不提供此信息。例如,从the documentation of missing-docstring
or invalid-names
到applicable options没有链接。使用bad-builtin
,可以轻松找到信息,但这仅是因为它来自specific extension。 Pylint message wiki对该消息的含义进行了解释,但没有提出任何含义。 pylint --generate-rcfile
中的注释也没有将设置与警告代号相关联(没有任何说明例如bad-functions
影响bad-builtin
消息)。
我问这个问题的原因是,在许多情况下,Pylint的约定与我项目的需求和约定不符,我想对其进行调整,而不是忽略特定的实例或忽略消息批发(因此,我不是在寻找为disable=
!)。那我怎么找到要调的东西呢?
答案 0 :(得分:0)
如何找到要调整的内容?
因此,似乎您在询问如何确定导致发出pylint信息的因素的组合。使用bad-builtin
示例,在.pylintrc
中根本没有列出警告消息,一条有用的详细消息将是:
bad-builtin
:Used 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-builtin
是specifically addressed in pylint version 1.6。我要说的是,我们应该查看实际源代码中发生了什么,以生成此消息,但是我认为这需要先弄清楚您所使用的pylint版本,然后再深入研究代码,然后弄清楚如何调好吗?我同意文档可以更清晰地说明如何调整特定警告:
内置错误的支票已移至扩展名。
该支票抱怨使用的内置函数 应该不被使用。例如,地图和过滤器在下降 由于可以使用更好的替代方法,例如 列出理解。但是检查很烦人,因为使用地图或 过滤器可以有其用例,因此,我们决定将其移至 扩展名检查。现在可以通过启用它 --load-plugins = pylint.extensions.bad_builtin。