wikidata.cache — Caching policies#

New in version 0.5.0.

class wikidata.cache.CacheKey#

The type of keys to look up cached values. Alias of str.

alias of str

class wikidata.cache.CachePolicy#

Interface for caching policies.

get(key: CacheKey) CacheValue | None#

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 such key.

Return type:

Optional[CacheValue]

set(key: CacheKey, value: CacheValue | None) 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.

class wikidata.cache.CacheValue#

The type of cached values.

alias of object

class wikidata.cache.MemoryCachePolicy(max_size: int = 128)#

LRU (least recently used) cache in memory.

Parameters:

max_size (int) – The maximum number of values to cache. 128 by default.

get(key: CacheKey) CacheValue | None#

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 such key.

Return type:

Optional[CacheValue]

set(key: CacheKey, value: CacheValue | None) 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.

class wikidata.cache.NullCachePolicy#

No-op cache policy.

get(key: CacheKey) CacheValue | None#

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 such key.

Return type:

Optional[CacheValue]

set(key: CacheKey, value: CacheValue | None) 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.

class wikidata.cache.ProxyCachePolicy(cache_object, timeout: int, property_timeout: int | None = None, namespace: str = 'wd_')#

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 as timeout by default.

  • namespace (str) – The common prefix attached to every cache key. 'wd_' by default.

get(key: CacheKey) CacheValue | None#

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 such key.

Return type:

Optional[CacheValue]

set(key: CacheKey, value: CacheValue | None) 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.