qdk_chemistry.remote.cache.base module

Abstract cache backend for QDK/Chemistry job results.

Cache backends provide content-addressed storage for algorithm results, allowing repeated runs with identical inputs to skip execution entirely.

class qdk_chemistry.remote.cache.base.CacheBackend(*, is_shared=False)[source]

Bases: ABC

Abstract base class for result caches.

Implementations must provide these operations:

  • get_job / put_job: persist Job metadata keyed by the deterministic run_hash.

  • get_data / put_data: content-addressed storage for DataClass objects. Primitives (floats, ints, …) are stored inline in the Job metadata and never touch these methods.

  • delete_job / delete_data: remove cached metadata or blobs.

  • clear: remove all entries from the cache.

Parameters:

is_shared (bool) – Set to True when the backing store is reachable from multiple machines (e.g. a network-mounted folder). Defaults to False.

name: str
__init__(*, is_shared=False)[source]

Initialise the cache backend.

Parameters:

is_shared (bool)

Return type:

None

abstractmethod get_job(run_hash)[source]

Retrieve job metadata by run_hash, or None on miss.

Return type:

Job | None

Parameters:

run_hash (str)

abstractmethod put_job(run_hash, job)[source]

Store (or update) job metadata keyed by run_hash.

Return type:

None

Parameters:
abstractmethod get_data(content_hash)[source]

Retrieve a DataClass object (or list) by its content hash, or None.

Return type:

DataClass | list | None

Parameters:

content_hash (str)

abstractmethod put_data(content_hash, data)[source]

Store a DataClass object (or list) by its content hash.

Return type:

None

Parameters:
abstractmethod delete_job(run_hash)[source]

Remove job metadata by run_hash. Returns True if it existed.

Return type:

bool

Parameters:

run_hash (str)

abstractmethod delete_data(content_hash)[source]

Remove a DataClass blob by content hash. Returns True if it existed.

Return type:

bool

Parameters:

content_hash (str)

abstractmethod clear()[source]

Remove all entries from the cache.

Return type:

None

property is_shared: bool[source]

Whether this cache is reachable from both local and remote.

has_data(content_hash)[source]

Check whether a DataClass blob exists without deserializing it.

The default implementation calls get_data() and checks for None. Backends that can answer this more cheaply (e.g. a HEAD request or a glob) should override.

Return type:

bool

Parameters:

content_hash (str)

to_config()[source]

Return constructor kwargs sufficient to recreate this backend.

Subclasses should override this if they accept configuration (paths, URLs, credentials, etc.). The default returns an empty dict, which is only valid for backends that need no arguments.

Return type:

dict