Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- from constants import DB_FILE
- class Database:
- def __init__(self):
- self.values = {}
- self.file_name = DB_FILE
- def __getitem__(self, info):
- if type(info) is tuple:
- key, default = info
- else:
- key = info
- default = Database()
- if key not in self.values:
- self.values[key] = default
- return self.values[key]
- def __setitem__(self, key, value):
- if type(key) is tuple:
- key = key[0]
- self.values[key] = value
- def pack(self):
- packed = {}
- for key, value in self.values.items():
- if type(value) is Database:
- packed[key] = value.pack()
- else:
- packed[key] = value
- return packed
- def unpack(self, values):
- self.values = {}
- for key, value in values.items():
- if type(value) is dict:
- self.values[key] = Database()
- self.values[key].unpack(value)
- else:
- self.values[key] = value
- def save(self):
- json.dump(self.pack(), open(self.file_name, 'w'), indent=2)
- def load(self):
- try:
- values = json.load(open(self.file_name, 'r'))
- self.unpack(values)
- except:
- values = {}
- def __str__(self):
- return json.dumps(self.pack())
- def __repr__(self):
- return str(self.pack())
- database = Database()
- database.load()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement