import time from dataclasses import asdict, dataclass, field from untitled import content @dataclass class Cat: name: str traits: dict fullness: float = 100 happiness: float = 100 sick: bool = False depressed: bool = False last_updated: float = field(default_factory=time.time) def to_dict(self): return asdict(self) @staticmethod def from_dict(data): return Cat(**data) @dataclass class Player: money: int = 0 inventory: dict = field(default_factory=lambda: dict(content.BASE_INVENTORY)) def to_dict(self): return asdict(self) @staticmethod def from_dict(data): return Player(**data) @dataclass class Save: version: int cat: Cat player: Player def to_dict(self): return asdict(self) @staticmethod def from_dict(data): return Save( data["version"], Cat.from_dict(data["cat"]), Player.from_dict(data["player"]), )