diff --git a/pottery/cache.py b/pottery/cache.py index 4599f315..a7d510df 100644 --- a/pottery/cache.py +++ b/pottery/cache.py @@ -167,6 +167,11 @@ def bypass(*args: Hashable, **kwargs: Hashable) -> JSONTypes: cast(Redis, redis).expire(cast(str, key), timeout) return return_value + @functools.wraps(func) + def drop(*args: Hashable, **kwargs: Hashable) -> None: + hash_ = _arg_hash(*args, **kwargs) + del cache[hash_] + def cache_info() -> CacheInfo: return CacheInfo( hits=hits, @@ -182,6 +187,7 @@ def cache_clear() -> None: wrapper.__wrapped__ = func # type: ignore wrapper.__bypass__ = bypass # type: ignore + wrapper.__drop__ = drop # type: ignore wrapper.cache_info = cache_info # type: ignore wrapper.cache_clear = cache_clear # type: ignore return cast(F, wrapper)