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.

qdk_chemistry.remote.cache.base.CoreDataClass

alias of DataClass

qdk_chemistry.remote.cache.base.is_cacheable(value)[source]

Return whether a value can be stored as a cache data entry.

Return type:

bool

Parameters:

value (Any)

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 and put_job persist Job metadata by run hash.

  • get_data and put_data store supported values by content hash.

  • delete_job and delete_data remove cached metadata or blobs.

  • clear removes all cache entries.

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.

__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 cached data by its content hash, or None.

Return type:

Any | None

Parameters:

content_hash (str)

abstractmethod put_data(content_hash, data, *, shared_only=False)[source]

Store data by content hash, optionally requiring shared storage.

Return type:

None

Parameters:
  • content_hash (str)

  • data (Any)

  • shared_only (bool)

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, *, shared_only=False)[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. When shared_only is true, non-shared backends always return False.

Return type:

bool

Parameters:
  • content_hash (str)

  • shared_only (bool)

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

for_remote()[source]

Return the cache view reachable from a remote compute node.

Return type:

CacheBackend | None