betty.cache package¶
Submodules¶
Module contents¶
Provide the Cache API.
- class betty.cache.Cache[source]¶
Bases:
Generic[_CacheItemValueContraT],ABCProvide a cache.
Implementations MUST be thread-safe.
- abstract get(cache_item_id: str) AsyncContextManager[CacheItem[_CacheItemValueContraT] | None][source]¶
Get the cache item with the given ID.
- abstract getset(cache_item_id: str) AsyncContextManager[tuple[CacheItem[_CacheItemValueContraT] | None, Callable[[_CacheItemValueContraT], Awaitable[None]]]][source]¶
- abstract getset(cache_item_id: str, *, wait: Literal[False] = False) AsyncContextManager[tuple[CacheItem[_CacheItemValueContraT] | None, Callable[[_CacheItemValueContraT], Awaitable[None]] | None]]
Get the cache item with the given ID, and provide a setter to add or update it within the same atomic operation.
If
waitisFalseand no lock can be acquired, returnNone, None. Otherwise return: 0. A cache item if one could be found, or elseNone. 1. An asynchronous setter that takes the cache item’s value as its only argument.