forked from LBRYCommunity/lbry-sdk
32 lines
715 B
Python
32 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()
|