diff --git a/untitled/model.py b/untitled/model.py index d349376..1afae43 100644 --- a/untitled/model.py +++ b/untitled/model.py @@ -1,41 +1,32 @@ import time +from dataclasses import dataclass, field, asdict +@dataclass class Cat: - def __init__(self, name, traits, fullness=100, happiness=100, last_updated=None): - self.name = name - self.traits = traits - self.fullness = fullness - self.happiness = happiness - self.last_updated = last_updated if last_updated is not None else time.time() + 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 { - "name": self.name, - "traits": self.traits, - "fullness": self.fullness, - "happiness": self.happiness, - "last_updated": self.last_updated, - } + return asdict(self) @staticmethod def from_dict(data): - return Cat( - data["name"], - data["traits"], - data["fullness"], - data["happiness"], - data["last_updated"], - ) + return Cat(**data) +@dataclass class Save: - def __init__(self, version, cat: Cat): - self.version = version - self.cat = cat + version: int + cat: Cat def to_dict(self): - return {"version": self.version, "cat": self.cat.to_dict()} + return asdict(self) @staticmethod def from_dict(data):