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):]