Files
py_scicat/scicat/config.py
NichtJens 7075338e67 first
2022-02-04 09:33:34 +01:00

48 lines
1.0 KiB
Python

from pathlib import Path
import json
class Config(dict):
def __init__(self, fname, folder=None):
if folder is not None:
folder = Path(folder)
else:
folder = Path.home()
self.fname = folder / fname
content = self._load()
super().__init__(content)
def __setitem__(self, name, value):
self.update(**{name: value})
def update(self, **kwargs):
super().update(**kwargs)
self._save()
def _load(self):
fn = self.fname
if fn.exists():
return json_load(fn)
else:
return {}
def _save(self):
json_save(self, self.fname)
def delete(self):
self.fname.unlink()
def json_save(what, filename, *args, indent=4, sort_keys=True, **kwargs):
with open(filename, "w") as f:
json.dump(what, f, *args, indent=indent, sort_keys=sort_keys, **kwargs)
def json_load(filename, *args, **kwargs):
with open(filename, "r") as f:
return json.load(f, *args, **kwargs)