Cache manager

The cache manager can be used to store python object attached to an uniq key. The cache can be controlled in different manner, with a object limit or a timeout.

For example, we can create a new cache with a limit of 10 objects and a timeout of 5 seconds:

# register a new Cache
Cache.register('mycache', limit=10, timeout=5)

# create an object + id
label = 'objectid'
instance = MTLabel(label=label)
Cache.append('mycache', label, instance)

# retrieve the cached object
instance = Cache.get('mycache', label)

If the instance is NULL, the cache may have trash it, because you’ve not used the label since 5 seconds, and you’ve reach the limit.

class kivy.cache.Cache

Bases: object

See module documentation for more information.

static append(category, key, obj, timeout=None)

Add a new object in the cache.

Parameters :
category : str

Identifier of the category

key : str

Uniq identifier of the object to store

obj : object

Object to store in cache

timeout : double (optionnal)

Custom time to delete the object if it’s not used.

static get(category, key, default=None)

Get a object in cache.

Parameters :
category : str

Identifier of the category

key : str

Uniq identifier of the object to store

default : anything, default to None

Default value to be returned if key is not found

static get_lastaccess(category, key, default=None)

Get the object last access time in cache.

Parameters :
category : str

Identifier of the category

key : str

Uniq identifier of the object to store

default : anything, default to None

Default value to be returned if key is not found

static get_timestamp(category, key, default=None)

Get the object timestamp in cache.

Parameters :
category : str

Identifier of the category

key : str

Uniq identifier of the object to store

default : anything, default to None

Default value to be returned if key is not found

static print_usage()

Print the cache usage on the console

static register(category, limit=None, timeout=None)

Register a new category in cache, with limit

Parameters :
category : str

Identifier of the category

limit : int (optionnal)

Maximum number of object in the cache. If None, no limit is applied.

timeout : double (optionnal)

Time to delete the object when it’s not used. if None, no timeout is applied.

static remove(category, key=None)

Purge the cache

Parameters :
category : str (optionnal)

Identifier of the category

key : str (optionnal)

Uniq identifier of the object to store