使用 attrs 预提交 mypy 错误:意外的关键字参数

问题描述 投票:0回答:1

mypy 在终端上完美运行,但是在预提交阶段运行时,我收到错误 Unexpected keywords argument for every property in my class

from attrs import define, field
@define(
    frozen=True,
    kw_only=True,
    slots=True,
    auto_detect=True,
    order=False,
    auto_attribs=True,
)
class MyClass:
   a: str = field(default="")
   b: str = field(default="")

   def myMethod(self) -> Any:
     return MyClass(a=self.a, b="b_value") 

mypy 预提交失败:

错误:MyClass 出现意外的关键字参数“a”(行:return MyClass...)

错误:MyClass 出现意外的关键字参数“b”(行:return MyClass...)

.pre-commit-config.yaml:

 - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.11.2
    hooks:
      - id: mypy
        args: ["--config-file", "mypy.ini"]
python mypy pre-commit python-attrs
1个回答
0
投票

不要使用预提交中的 Mypy。 Mypy 需要查看代码使用的第 3 方软件包,即使它内置了不需要激活的 attrs 插件。

您可以非常轻松地测试它(我刚刚就这样做了):将 Mypy 与您的项目一起安装到 venv 中 and attrs 并从那里运行它:它通过了。

© www.soinside.com 2019 - 2024. All rights reserved.