diff --git a/datafiles.py b/datafiles.py new file mode 100644 index 0000000..601c607 --- /dev/null +++ b/datafiles.py @@ -0,0 +1,38 @@ +import json +import os + + +class DataFile(dict): + def __init__(self, filename: str, create: bool): + super().__init__() + self.__filename = filename + + try: + os.stat(self.__filename) + except OSError as e: + if not create: + raise e + + self.load() + + def load(self): + pass + + def save(self): + pass + + +class JSONFile(DataFile): + def __init__(self, filename: str, create: bool): + super().__init__(filename, create) + + def load(self): + with open(self.__filename, "U") as f: + json_dict = json.loads(f.read()) + + for k in json_dict: + self[k] = json_dict[k] + + def save(self): + with open(self.__filename, "w") as f: + f.write(json.dumps(self.copy()))