ayaka.json_ctrl
1class AbstractJsonCtrl: 2 '''JSON控制器''' 3 4 def __init__(self, *keys) -> None: 5 self._keys = keys 6 7 def _load(self): 8 raise NotImplementedError 9 10 def _save(self, data): 11 raise NotImplementedError 12 13 def chain(self, *keys) -> "AbstractJsonCtrl": 14 raise NotImplementedError 15 16 def get(self, default=None): 17 data = self._load() 18 for k in self._keys: 19 if not isinstance(data, dict): 20 return default 21 if k not in data: 22 return default 23 data = data[k] 24 return data 25 26 def set(self, value): 27 if not self._keys: 28 self._save(value) 29 return value 30 31 origin = self._load() 32 if not isinstance(origin, dict): 33 origin = {} 34 data = origin 35 for k in self._keys[:-1]: 36 if k not in data or not isinstance(data[k], dict): 37 data[k] = {} 38 data = data[k] 39 data[self._keys[-1]] = value 40 self._save(origin) 41 return value
class
AbstractJsonCtrl:
2class AbstractJsonCtrl: 3 '''JSON控制器''' 4 5 def __init__(self, *keys) -> None: 6 self._keys = keys 7 8 def _load(self): 9 raise NotImplementedError 10 11 def _save(self, data): 12 raise NotImplementedError 13 14 def chain(self, *keys) -> "AbstractJsonCtrl": 15 raise NotImplementedError 16 17 def get(self, default=None): 18 data = self._load() 19 for k in self._keys: 20 if not isinstance(data, dict): 21 return default 22 if k not in data: 23 return default 24 data = data[k] 25 return data 26 27 def set(self, value): 28 if not self._keys: 29 self._save(value) 30 return value 31 32 origin = self._load() 33 if not isinstance(origin, dict): 34 origin = {} 35 data = origin 36 for k in self._keys[:-1]: 37 if k not in data or not isinstance(data[k], dict): 38 data[k] = {} 39 data = data[k] 40 data[self._keys[-1]] = value 41 self._save(origin) 42 return value
JSON控制器
def
set(self, value):
27 def set(self, value): 28 if not self._keys: 29 self._save(value) 30 return value 31 32 origin = self._load() 33 if not isinstance(origin, dict): 34 origin = {} 35 data = origin 36 for k in self._keys[:-1]: 37 if k not in data or not isinstance(data[k], dict): 38 data[k] = {} 39 data = data[k] 40 data[self._keys[-1]] = value 41 self._save(origin) 42 return value