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 есть множество библиотек и фреймворков для разработки веб-приложений.
Не используйте Mypy из предварительной фиксации. Mypy требует просмотра сторонних пакетов, которые использует код, даже несмотря на то, что у него есть встроенный плагин attrs, который не требует активации.
Вы можете протестировать это очень легко (и я только что это сделал): установите Mypy в свой venv с вашим проектом и attrs и запустите его оттуда: все проходит.