saving
This commit is contained in:
1
untitled/__init__.py
Normal file
1
untitled/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
# hi!
|
||||
0
untitled/app.py
Normal file
0
untitled/app.py
Normal file
23
untitled/model.py
Normal file
23
untitled/model.py
Normal file
@@ -0,0 +1,23 @@
|
||||
class Cat:
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
|
||||
def to_dict(self):
|
||||
return {"name": self.name}
|
||||
|
||||
@staticmethod
|
||||
def from_dict(data):
|
||||
return Cat(data["name"])
|
||||
|
||||
|
||||
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"]))
|
||||
29
untitled/persistence.py
Normal file
29
untitled/persistence.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from untitled import model
|
||||
import os
|
||||
import json
|
||||
|
||||
SAVE_FOLDER = os.path.join("untitled", "saves")
|
||||
|
||||
|
||||
def save(save: model.Save):
|
||||
file_name = save.cat.name + ".kitten"
|
||||
save_file = os.path.join(SAVE_FOLDER, file_name)
|
||||
|
||||
data = save.to_dict()
|
||||
|
||||
os.makedirs(SAVE_FOLDER, exist_ok=True)
|
||||
|
||||
with open(save_file, "w") as f:
|
||||
json.dump(data, f)
|
||||
|
||||
|
||||
def load(name):
|
||||
file_name = name + ".kitten"
|
||||
save_file = os.path.join(SAVE_FOLDER, file_name)
|
||||
|
||||
with open(save_file, "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
save = model.Save.from_dict(data)
|
||||
|
||||
return save
|
||||
Reference in New Issue
Block a user