forked from LBRYCommunity/lbry-sdk
31 lines
715 B
Python
31 lines
715 B
Python
import os
|
|
import json
|
|
|
|
|
|
class JSONStore(dict):
|
|
|
|
def __init__(self, config, name):
|
|
self.config = config
|
|
self.path = os.path.join(self.config.path, name)
|
|
self.load()
|
|
|
|
def load(self):
|
|
try:
|
|
with open(self.path, 'r') as f:
|
|
self.update(json.loads(f.read()))
|
|
except:
|
|
pass
|
|
|
|
def save(self):
|
|
with open(self.path, 'w') as f:
|
|
s = json.dumps(self, indent=4, sort_keys=True)
|
|
r = f.write(s)
|
|
|
|
def __setitem__(self, key, value):
|
|
dict.__setitem__(self, key, value)
|
|
self.save()
|
|
|
|
def pop(self, key):
|
|
if key in self.keys():
|
|
dict.pop(self, key)
|
|
self.save()
|