import json import time class PersistentVars(): """""" def __init__(self,savefile_path): self.path = savefile_path self.last_action = "" # last performed action, if only reads are made, then the underlying var has not been changed # and doesn't need to be read again self.savefile = {} def write(self, name, value): if self.last_action == "read": pre = self.savefile else: pre = self.read() pre[name] = value try: file = open(self.path,"w") json.dump(pre, file) file.close() self.last_action = "write" except: print("Config not written - critical") def read(self, name=""): if self.last_action == "read": vars = self.savefile else: try: file = open(self.path,"r") vars = json.load(file) file.close() self.savefile = vars self.last_action = "read" except: return None if len(name) != 0: vars = vars[name] return vars