是否可以根据消息部分禁用 pylint 规则?

Is it possible to partially disable a pylint rule based on its message?

有些规则在不止一种情况下使用。特别是,规则 C0326 至少在两种情况下使用:

def func() : 
    pass

给出消息 C0326:No space allowed before :

def func(param:int):
    pass

给出消息 C0326:在 :

之后正好需要一个 space

我希望 pylint 检测并抱怨第一种情况,而不是第二种情况(是的,我知道我是个野蛮人,因为我没有在类型提示之前放置 space)。由于代码相同但消息不同,我希望可以单独调整这些情况。目前可以这样做吗?

不,这不可能。或者更确切地说,不改变 pylint 的内部结构是不可能的。

在仍然存在野蛮的空白做法的同时仅产生您想要的错误的最简单方法可能是在相关行上添加禁用 pylint 的注释。例如,请考虑以下示例文件。

def fun(x) :  #pylint: disable=bad-whitespace
    return

def fun2(x:int):
    return 2 * x

Pylint 会抱怨 fun2 中的错误空白,但不会 fun1