问题:是否可以忽略带有pylint的单个特定行?
标头中包含以下行:
import config.logging_settings
这实际上改变了我的python日志记录设置,但是pylint认为这是未使用的导入。我一般不希望删除unused-import
警告,因此可以忽略这一行吗?
我不介意.pylintrc
为此项目准备一个,因此更改配置文件的答案将被接受。
否则,这样的事情也将不胜感激:
import config.logging_settings # pylint: disable-this-line-in-some-way
I have the following line in my header:
import config.logging_settings
This actually changes my python logging settings, but pylint thinks it is an unused import. I do not want to remove unused-import
warnings in general so is it possible to just ignore this one specific line?
I wouldn’t mind having a .pylintrc
for this project so answers changing a config file will be accepted.
Otherwise, something like this will also be appreciated:
import config.logging_settings # pylint: disable-this-line-in-some-way
回答 0
Pylint信息控件记录在Pylint手册中:
是否可以在本地禁用特定消息?
是的,此功能已在Pylint 0.11中添加。这可以通过
# pylint: disable=some-message,another-one
在所需的块级别或所需的代码行的末尾添加来完成
您可以使用消息代码或符号名。
例如
def test():
# Disable all the no-member violations in this function
# pylint: disable=no-member
...
global VAR # pylint: disable=global-statement
该手册还有更多示例。
有一个Wiki,记录所有pylint消息及其代码。
Pylint message control is documented in the Pylint manual:
Is it possible to locally disable a particular message?
Yes, this feature has been added in Pylint 0.11. This may be done by adding
# pylint: disable=some-message,another-one
at the desired block level or at the end of the desired line of code
You can use the message code or the symbolic names.
For example
def test():
# Disable all the no-member violations in this function
# pylint: disable=no-member
...
global VAR # pylint: disable=global-statement
The manual also has further examples.
There is a wiki that documents all pylint messages and their codes.
回答 1
import config.logging_settings # pylint: disable=W0611
这很简单,并且专门针对该行。
正如sthenault所指出的那样,您可以并且应该使用更具可读性的形式:
import config.logging_settings # pylint: disable=unused-import
import config.logging_settings # pylint: disable=W0611
That was simple and is specific for that line.
As sthenault kindly pointed out, you can and should use the more readable form:
import config.logging_settings # pylint: disable=unused-import
回答 2
我相信您正在寻找的是…
import config.logging_settings # @UnusedImport
注意注释前的双倍空格,以免出现其他格式警告。
另外,根据您的IDE(如果使用的是IDE),可能有一个选项可以添加正确的忽略规则(例如,Ctrl1在光标悬停时按eclipse键,警告将自动建议@UnusedImport
I believe what you’re looking for is…
import config.logging_settings # @UnusedImport
Note the double space before the comment to avoid hitting other formatting warnings.
Also, depending on your IDE (if you’re using one), there’s probably an option to add the correct ignore rule (eg in eclipse pressing Ctrl1 while the cursor is over the warning will auto-suggest @UnusedImport
回答 3
在https://github.com/PyCQA/pylint/tree/master/pylint/checkers中检出文件。我没有找到比Ctrl + F-ing这些文件或使用Github搜索功能更好的从消息中获取错误名称的方法:
如果消息是“模块…中没有名称…”,请使用搜索:
No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers
或者,为了获得更少的结果:
"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers
Github将向您展示:
"E0611": (
"No name %r in module %r",
"no-name-in-module",
"Used when a name cannot be found in a module.",
然后,您可以执行以下操作:
from collections import Sequence # pylint: disable=no-name-in-module
Checkout the files in https://github.com/PyCQA/pylint/tree/master/pylint/checkers. I haven’t found a better way to obtain the error name from a message than either Ctrl+F-ing those files or using the Github search feature:
If the message is “No name … in module …”, use the search:
No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers
Or, to get less results:
"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers
Github will show you:
"E0611": (
"No name %r in module %r",
"no-name-in-module",
"Used when a name cannot be found in a module.",
You can then do:
from collections import Sequence # pylint: disable=no-name-in-module