lovasoa / marshmallow_dataclass

Automatic generation of marshmallow schemas from dataclasses.

Home Page:https://lovasoa.github.io/marshmallow_dataclass/html/marshmallow_dataclass.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mypy: error: "Type[X]" has no attribute "Schema" [attr-defined]

darwinyip opened this issue · comments

mypy complains about the following code:

from dataclasses import dataclass
from typing import Union

from marshmallow_dataclass import add_schema


@add_schema
@dataclass(frozen=True)
class Person:
    name: str
    age: Union[int, float]


Person.Schema().load({"name": "jane", "age": 50.0})

Error:

$ mypy main.py --ignore-missing-imports
app/main.py:14: error: "Type[Person]" has no attribute "Schema"  [attr-defined]
Found 1 error in 1 file (checked 1 source file)

This is not an issue with:

PersonSchema = marshmallow_dataclass.class_schema(Person)
PersonSchema().load({"name": "jane", "age": 50.0})

It is actually documented in an example that you can add the following to placate type checkers:

Schema: ClassVar[Type[Schema]] = Schema # For the type checker