如何配置pylintrc将指定装饰器识别为classmethod?
解决Pydantic Validator被Pylint报E0213错误的全局配置方案
问题背景
使用Pydantic的@validator装饰器为模型类属性编写验证方法时,这类方法本质是类方法(第一个参数为cls),但因未显式添加@classmethod装饰器,Pylint会抛出E0213错误(提示"Method should have @classmethod decorator")。若项目中存在大量这类验证器,逐个添加装饰器或忽略单个错误效率极低,需通过pylintrc全局配置解决。
全局解决步骤
在pylintrc配置文件中,找到或添加classmethod-decorators配置项,将Pydantic的validator装饰器加入列表。具体配置如下:
[TYPECHECK] classmethod-decorators = validator
若配置文件中已存在classmethod-decorators项,只需在原有值后追加validator,多个装饰器用逗号分隔:
[TYPECHECK] classmethod-decorators = existing_decorator, validator
原理说明
classmethod-decorators配置项用于告知Pylint,哪些装饰器会将方法转换为类方法。配置完成后,Pylint会识别被@validator装饰的方法为类方法,即便未显式添加@classmethod,也不会再抛出E0213错误。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

