С использованием attrs pre-commit ошибка mypy: неожиданный аргумент ключевого слова

mypy отлично работает на терминале, но при работе на этапе предварительной фиксации я получаю ошибку Неожиданный аргумент ключевого слова для каждого свойства в моем классе

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 не удалась:

ошибка: неожиданный аргумент ключевого слова «a» для MyClass (строка: return MyClass...)

ошибка: неожиданный аргумент ключевого слова «b» для MyClass (строка: вернуть 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 есть множество библиотек и фреймворков для разработки веб-приложений.


213
1

Ответ:

Решено

Не используйте Mypy из предварительной фиксации. Mypy требует просмотра сторонних пакетов, которые использует код, даже несмотря на то, что у него есть встроенный плагин attrs, который не требует активации.

Вы можете протестировать это очень легко (и я только что это сделал): установите Mypy в свой venv с вашим проектом и attrs и запустите его оттуда: все проходит.