是否可以忽略 Pylint 的一个特定行?
Is it possible to ignore one single specific line with Pylint?
我的 header 中有以下行:
import config.logging_settings
这实际上改变了我的 Python 日志记录设置,但 Pylint 认为这是一个未使用的导入。我一般不想删除 unused-import
警告,所以是否可以忽略这一特定行?
我不介意为这个项目提供 .pylintrc
,所以更改配置文件的答案将被接受。
否则,这样的东西也将受到赞赏:
import config.logging_settings # pylint: disable-this-line-in-some-way
我相信你正在寻找...
import config.logging_settings # @UnusedImport
注意注释前的双 space 以避免遇到其他格式警告。
此外,根据您的 IDE(如果您使用的是一个),可能有一个选项可以添加正确的忽略规则(例如,在 Eclipse 中,按 Ctrl + 1, 当光标在警告上时,会自动提示 @UnusedImport
).
import config.logging_settings # pylint: disable=W0611
这很简单,并且特定于该行。
您可以而且应该使用更易读的形式:
import config.logging_settings # pylint: disable=unused-import
Pylint 消息控件记录在 the Pylint manual:
Is it possible to locally disable a particular message?
是的,此功能已添加到 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
说明书还有further examples.
a wiki 记录了所有 Pylint 消息及其代码。
签出 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
除了接受的答案:
您可以重新启用错误检查添加 pylint: enable:SPECIFIC_ERROR
例如,我的代码中有这个:
import time
import datetime
import os
import sys
# pylint: disable=import-error
import serial
# pylint: enable=import-error
这样您就可以忽略一行中的单个错误,而不必在整个文件中禁用检查该错误
我的 header 中有以下行:
import config.logging_settings
这实际上改变了我的 Python 日志记录设置,但 Pylint 认为这是一个未使用的导入。我一般不想删除 unused-import
警告,所以是否可以忽略这一特定行?
我不介意为这个项目提供 .pylintrc
,所以更改配置文件的答案将被接受。
否则,这样的东西也将受到赞赏:
import config.logging_settings # pylint: disable-this-line-in-some-way
我相信你正在寻找...
import config.logging_settings # @UnusedImport
注意注释前的双 space 以避免遇到其他格式警告。
此外,根据您的 IDE(如果您使用的是一个),可能有一个选项可以添加正确的忽略规则(例如,在 Eclipse 中,按 Ctrl + 1, 当光标在警告上时,会自动提示 @UnusedImport
).
import config.logging_settings # pylint: disable=W0611
这很简单,并且特定于该行。
您可以而且应该使用更易读的形式:
import config.logging_settings # pylint: disable=unused-import
Pylint 消息控件记录在 the Pylint manual:
Is it possible to locally disable a particular message?
是的,此功能已添加到 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
说明书还有further examples.
a wiki 记录了所有 Pylint 消息及其代码。
签出 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
除了接受的答案:
您可以重新启用错误检查添加 pylint: enable:SPECIFIC_ERROR
例如,我的代码中有这个:
import time
import datetime
import os
import sys
# pylint: disable=import-error
import serial
# pylint: enable=import-error
这样您就可以忽略一行中的单个错误,而不必在整个文件中禁用检查该错误