cement.core.cache

Cement core cache module.

class cement.core.cache.CacheHandler(**kw: Any)[source]

Bases: CacheInterface, Handler

Cache handler implementation.

class Meta[source]

Bases: Meta

class cement.core.cache.CacheInterface(**kw: Any)[source]

Bases: Interface

This class defines the Cache Interface. Handlers that implement this interface must provide the methods and attributes defined below. In general, most implementations should sub-class from the provided CacheHandler base class as a starting point.

class Meta[source]

Bases: Meta

Handler meta-data.

interface: str = 'cache'

The string identifier of the interface.

abstract delete(key: str) bool[source]

Deletes a key/value from the cache.

Parameters:

key – The key in the cache to delete

Returns:

True if the key is successfully deleted, False otherwise

Return type:

bool

abstract get(key: str, fallback: Any = None) Any[source]

Get the value for a key in the cache.

If the key does not exist or the key/value in cache is expired, this functions must return fallback (which in turn must default to None).

Parameters:

key (str) – The key of the value stored in cache

Keyword Arguments:

fallback – Optional value that is returned if the cache is expired or the key does not exist.

Returns:

Whatever the value is in the cache, or the fallback

Return type:

Unknown

abstract purge() None[source]

Clears all data from the cache.

abstract set(key: str, value: Any, time: int | None = None) None[source]

Set the key/value in the cache for a set amount of time.

Parameters:
  • key (str) – The key of the value to store in cache

  • value (unknown) – The value of that key to store in cache

Keyword Arguments:

time (int) – A one-off expire time in seconds (or None. If no time is given, then a default value is used (determined by the implementation).

Returns: None