Table Of Contents
Cache manager¶
The cache manager can be used to store python objects attached to a unique key. The cache can be controlled in two ways: 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
key = 'objectid'
instance = Label(text=text)
Cache.append('mycache', key, instance)
# retrieve the cached object
instance = Cache.get('mycache', key)
If the instance is NULL, the cache may have trashed it because you’ve not used the label for 5 seconds and you’ve reach the limit.
-
class
kivy.cache.
Cache
[source]¶ Bases:
builtins.object
See module documentation for more information.
-
static
append
(category, key, obj, timeout=None)[source]¶ Add a new object to the cache.
- Parameters
- category: str
Identifier of the category.
- key: str
Unique identifier of the object to store.
- obj: object
Object to store in cache.
- timeout: double (optional)
Time after which to delete the object if it has not been used. If None, no timeout is applied.
-
static
get
(category, key, default=None)[source]¶ Get a object from the cache.
- Parameters
- category: str
Identifier of the category.
- key: str
Unique identifier of the object in the store.
- default: anything, defaults to None
Default value to be returned if the key is not found.
-
static
get_lastaccess
(category, key, default=None)[source]¶ Get the objects last access time in the cache.
- Parameters
- category: str
Identifier of the category.
- key: str
Unique identifier of the object in the store.
- default: anything, defaults to None
Default value to be returned if the key is not found.
-
static
get_timestamp
(category, key, default=None)[source]¶ Get the object timestamp in the cache.
- Parameters
- category: str
Identifier of the category.
- key: str
Unique identifier of the object in the store.
- default: anything, defaults to None
Default value to be returned if the key is not found.
-
static
register
(category, limit=None, timeout=None)[source]¶ Register a new category in the cache with the specified limit.
- Parameters
- category: str
Identifier of the category.
- limit: int (optional)
Maximum number of objects allowed in the cache. If None, no limit is applied.
- timeout: double (optional)
Time after which to delete the object if it has not been used. If None, no timeout is applied.
-
static