ahvn.cache.callback_cache module¶
Callback-based cache implementation (no storage, only triggers callbacks on set).
- class ahvn.cache.callback_cache.CallbackCache(callbacks=None, feeds=None, exclude=None, *args, **kwargs)[source]¶
Bases:
BaseCacheAn implementation of BaseCache that does not cache any data, but calls callbacks on set, and feeds on get.
- Parameters:
- __init__(callbacks=None, feeds=None, exclude=None, *args, **kwargs)[source]¶
Initialization.
- Parameters:
callbacks (Optional[Iterable[Callable[[int, Dict[str, Any]], None]]]) – List of callback functions to call on set. Each callback function must has API callback(key: int, value: Dict[str, Any]), which handles a cache set event.
feeds (Optional[Iterable[Callable[[Union[Callable, str], Any], None]]]) – List of feed functions to call on get. Each feed function must have API feed(func: Union[Callable, str], **kwargs), which handles a cache get event. The kwargs are the input to the function. Notice that feeds must be ordered: the first feed function with a non-Ellipsis return value will be used.
exclude (Optional[Iterable[str]]) – Keys to exclude from inputs when creating cache entries.
*args – Additional positional arguments.
**kwargs – Additional keyword arguments.
- get(func, **kwargs)[source]¶
Retrieves a cached value for the given function and inputs.
- Parameters:
func (Union[Callable, str]) – The function or its name to retrieve the cached value for. Notice that for CallbackCache, when all feed functions return …, the function will be called: # (deprecated) If the func is callable, it will be called with the provided keyword arguments. # (deprecated) Otherwise, it will NOT be called. For better stability, it is recommend to use a default feed function that can handle missing values.
**kwargs – Arbitrary keyword arguments representing the inputs to the function.
- Returns:
The cached output if found, otherwise Ellipsis (to avoid collisions with functions returning None).
- Return type: