wikidata.cache
— Caching policies¶
Changed in version 0.5.0.
-
class
wikidata.cache.
CachePolicy
¶ Interface for caching policies.
-
get
(key: <function NewType.<locals>.new_type at 0x7f65316b99d8>) → typing.Union[<function NewType.<locals>.new_type at 0x7f65316b98c8>, NoneType]¶ Look up a cached value by its
key
.Parameters: key ( CacheKey
) – The key string to look up a cached value.Returns: The cached value if it exists. None
if there’s no suchkey
.Return type: Optional
[CacheValue
]
-
set
(key: <function NewType.<locals>.new_type at 0x7f65316b99d8>, value: typing.Union[<function NewType.<locals>.new_type at 0x7f65316b98c8>, NoneType]) → None¶ Create or update a cache.
Parameters: - key (
CacheKey
) – A key string to create or update. - value (
Optional
[CacheValue
]) – A value to cache.None
to remove cache.
- key (
-
-
wikidata.cache.
CacheValue
(x)¶ The type of cached values.
-
class
wikidata.cache.
MemoryCachePolicy
(max_size: int = 128) → None¶ LRU (least recently used) cache in memory.
Parameters: max_size ( int
) – The maximum number of values to cache. 128 by default.
-
class
wikidata.cache.
NullCachePolicy
¶ No-op cache policy.
-
class
wikidata.cache.
ProxyCachePolicy
(cache_object, timeout: int, property_timeout: typing.Union[int, NoneType] = None, namespace: str = 'wd_') → None¶ This proxy policy is a proxy or an adaptor to another cache object. Cache objects can be anything if they satisfy the following interface:
def get(key: str) -> Optional[bytes]: pass def set(key: str, value: bytes, timeout: int=0) -> None: pass def delete(key: str) -> None: pass
(The above methods omit
self
parameters.) It’s compatible with de facto interface for caching libraries in Python (e.g. python-memcached,werkzeug.contrib.cache
).Parameters: - cache_object – The cache object to adapt. Read the above explanation.
- timeout (
int
) – Lifespan of every cache in seconds. 0 means no expiration. - property_timeout (
int
) – Lifespan of caches for properties (in seconds). Since properties don’t change frequently or their changes usually don’t make important effect, longer lifespan of properties’ cache can be useful. 0 means no expiration. Set to the same astimeout
by default. - namespace (
str
) – The common prefix attached to every cache key.'wd_'
by default.