Source code for caspia.toolbox.storage.proxy

from .base import Storage


[docs]class ProxyStorage(Storage): def __init__(self, target, prefix): super().__init__() self._prefix = prefix self._target = target def _get_store(self): # pylint: disable=protected-access return self._target._get_store() def _adj_key(self, key): return self._prefix + key def __getitem__(self, key): return super().__getitem__(self._adj_key(key)) def __setitem__(self, key, value): return super().__setitem__(self._adj_key(key), value) def __delitem__(self, key): return super().__delitem__(self._adj_key(key)) def __iter__(self): for key in super().__iter__(): if key.startswith(self._prefix): yield key[len(self._prefix):]