Cement core cache module.

class cement.core.cache.CementCacheHandler(*args, **kw)

Bases: cement.core.handler.CementBaseHandler

Base class that all Cache Handlers should sub-class from.

class Meta

Bases: object

Handler meta-data (can be passed as keyword arguments to the parent class).


The interface that this handler class implements.

alias of ICache

label = None

String identifier of this handler implementation.

class cement.core.cache.ICache

Bases: cement.core.interface.Interface

This class defines the Cache Handler Interface. Classes that implement this handler must provide the methods and attributes defined below.

Implementations do not subclass from interfaces.


from cement.core import cache

class MyCacheHandler(object):
    class Meta:
        interface = cache.ICache
        label = 'my_cache_handler'
class IMeta

Bases: object

Interface meta-data.

label = 'cache'

The label (or type identifier) of the interface.

validator(klass, obj)

Interface validator function.


The _setup function is called during application initialization and must ‘setup’ the handler object making it ready for the framework or the application to make further calls to it.

Parameters:app_obj – The application object.

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:boolean
ICache.get(key, fallback=None)

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).

  • key – The key of the value stored in cache
  • fallback – Optional value that is returned if the cache is expired or the key does not exist. Default: None

Unknown (whatever the value is in cache, or the fallback)


Clears all data from the cache.

ICache.set(key, value, time=None)

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

  • key – The key of the value to store in cache.
  • value – The value of that key to store in cache.
  • time (int (seconds) or None) – A one-off expire time. If no time is given, then a default value is used (determined by the implementation).


cement.core.cache.cache_validator(klass, obj)

Validates a handler implementation against the ICache interface.