Source code for swh.vault.in_memory_backend

# Copyright (C) 2017-2023  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information

from datetime import timedelta
from typing import Any, Dict, List, Optional, Tuple

from swh.model.swhids import CoreSWHID

from .cache import VaultCache


[docs] class InMemoryVaultBackend: """Stub vault backend, for use in the CLI.""" def __init__(self): self._cache = VaultCache(cls="memory")
[docs] def fetch(self, bundle_type: str, swhid: CoreSWHID) -> Optional[bytes]: return self._cache.get(bundle_type, swhid)
[docs] def download_url( self, bundle_type: str, swhid: CoreSWHID, content_disposition: Optional[str] = None, expiry: Optional[timedelta] = None, ) -> Optional[str]: return None
[docs] def cook( self, bundle_type: str, swhid: CoreSWHID, email: Optional[str] = None ) -> Dict[str, Any]: raise NotImplementedError("InMemoryVaultBackend.cook()")
[docs] def progress(self, bundle_type: str, swhid: CoreSWHID): raise NotImplementedError("InMemoryVaultBackend.progress()")
# Cookers endpoints
[docs] def set_progress(self, bundle_type: str, swhid: CoreSWHID, progress: str) -> None: pass
[docs] def set_status(self, bundle_type: str, swhid: CoreSWHID, status: str) -> None: pass
[docs] def put_bundle(self, bundle_type: str, swhid: CoreSWHID, bundle) -> bool: self._cache.add(bundle_type, swhid, bundle) return True
[docs] def send_notif(self, bundle_type: str, swhid: CoreSWHID): pass
# Batch endpoints
[docs] def batch_cook(self, batch: List[Tuple[str, str]]) -> int: raise NotImplementedError("InMemoryVaultBackend.batch_cook()")
[docs] def batch_progress(self, batch_id: int) -> Dict[str, Any]: return {}