import time class Cat: def __init__(self, name, traits, fullness=100, last_updated=None): self.name = name self.traits = traits self.fullness = fullness self.last_updated = last_updated if last_updated is not None else time.time() def to_dict(self): return { "name": self.name, "traits": self.traits, "fullness": self.fullness, "last_updated": self.last_updated, } @staticmethod def from_dict(data): return Cat(data["name"], data["traits"], data["fullness"], data["last_updated"]) class Save: def __init__(self, version, cat: Cat): self.version = version self.cat = cat def to_dict(self): return {"version": self.version, "cat": self.cat.to_dict()} @staticmethod def from_dict(data): return Save(data["version"], Cat.from_dict(data["cat"]))