ayaka.cache

群组缓存

 1'''群组缓存'''
 2from .json_ctrl import AbstractJsonCtrl
 3
 4
 5class AyakaCacheCtrl(AbstractJsonCtrl):
 6    '''ayaka缓存控制器,其数据空间在各群组、各插件间相互独立'''
 7
 8    def __repr__(self) -> str:
 9        return f"AyakaCacheCtrl({self.get()})"
10
11    def __init__(self, data=None, *keys) -> None:
12        self._data = {} if data is None else data
13        self._keys = [str(k) for k in keys]
14
15    def _load(self):
16        return self._data
17
18    def _save(self, data):
19        self._data = data
20
21    def chain(self, *keys):
22        return AyakaCacheCtrl(self._data, *self._keys, *keys)
23
24    # 兼容旧API
25    def __getattr__(self, k):
26        return self.chain(k).get()
27
28    # 兼容旧API
29    def __setattr__(self, k, v):
30        if k in ["_data", "_keys"]:
31            super().__setattr__(k, v)
32        else:
33            self.chain(k).set(v)
class AyakaCacheCtrl(ayaka.json_ctrl.AbstractJsonCtrl):
 6class AyakaCacheCtrl(AbstractJsonCtrl):
 7    '''ayaka缓存控制器,其数据空间在各群组、各插件间相互独立'''
 8
 9    def __repr__(self) -> str:
10        return f"AyakaCacheCtrl({self.get()})"
11
12    def __init__(self, data=None, *keys) -> None:
13        self._data = {} if data is None else data
14        self._keys = [str(k) for k in keys]
15
16    def _load(self):
17        return self._data
18
19    def _save(self, data):
20        self._data = data
21
22    def chain(self, *keys):
23        return AyakaCacheCtrl(self._data, *self._keys, *keys)
24
25    # 兼容旧API
26    def __getattr__(self, k):
27        return self.chain(k).get()
28
29    # 兼容旧API
30    def __setattr__(self, k, v):
31        if k in ["_data", "_keys"]:
32            super().__setattr__(k, v)
33        else:
34            self.chain(k).set(v)

ayaka缓存控制器,其数据空间在各群组、各插件间相互独立

AyakaCacheCtrl(data=None, *keys)
12    def __init__(self, data=None, *keys) -> None:
13        self._data = {} if data is None else data
14        self._keys = [str(k) for k in keys]
def chain(self, *keys):
22    def chain(self, *keys):
23        return AyakaCacheCtrl(self._data, *self._keys, *keys)