import json from pathlib import Path from untitled import PACKAGE_ROOT, migration, model SAVE_FOLDER = PACKAGE_ROOT / "saves" def save(save: model.Save, folder=None): folder = folder or SAVE_FOLDER file_name = save.cat.name + ".kitten" save_file = Path(folder) / file_name data = save.to_dict() folder.mkdir(parents=True, exist_ok=True) with open(save_file, "w") as f: json.dump(data, f) def load(name, folder=None): folder = folder or SAVE_FOLDER file_name = name + ".kitten" save_file = Path(folder) / file_name with open(save_file) as f: data = json.load(f) data = migration.migrate(data) save = model.Save.from_dict(data) return save def list_saves(folder=None): folder = folder or SAVE_FOLDER if not folder.exists(): return [] return [savefile.stem for savefile in folder.glob("*.kitten")]