class Cache(AbstractContextManager): def __init__(self, dbname=DEFAULT_DBNAME): self._dbname = dbname self._backing = None def __enter__(self) -> MutableMapping[str, Any]: self._backing = SqliteDict( self._dbname, autocommit=True, encode=cloudpickle.dumps, decode=cloudpickle.loads, ) return self._backing.__enter__() def __exit__(self, exc_type, exc_value, traceback): self._backing.__exit__(exc_type, exc_value, traceback) del self._backing