18 lines
528 B
Python
18 lines
528 B
Python
from dataclasses import dataclass
|
|
from typing import Type, TypeVar
|
|
|
|
from dataclasses_json import DataClassJsonMixin
|
|
from dataclasses_json.core import Json, _decode_dataclass
|
|
|
|
A = TypeVar("A", bound="DataClassJsonMixin")
|
|
|
|
|
|
@dataclass
|
|
class BaseModel(DataClassJsonMixin):
|
|
"""Base model class for instance use."""
|
|
|
|
@classmethod
|
|
def from_dict(cls: Type[A], kvs: Json, *, infer_missing=False) -> A:
|
|
# save original data for lookup
|
|
cls._json = kvs
|
|
return _decode_dataclass(cls, kvs, infer_missing)
|