Exemple #1
0
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