),f"`{key}` already exist, are you sure you want to override it?"
self._data[key]=value
def__getattr__(self,item):
returnself._data[item]
def__delattr__(self,item):
delself._data[item]
defpop(self,item):
returnself._data.pop(item)
defupdate(self,values:Dict[str,Any]):
fork,vinvalues.items():
setattr(self,k,v)
defclear(self,expect_keys:Sequence[str]):
ifset(self._data.keys())!=set(expect_keys):
raiseException(
f"Unexpected keys when clearning. This may indicate you do not release memory early enough but leave it to here. {list(self._data.keys())=}{expect_keys=}"