diff --git a/python/dune/perftool/generation/context.py b/python/dune/perftool/generation/context.py index d96e7e9cd65123e93f1f70e7e91801a37df001cb..85ea60a9dbc8bde8751a8281ed2ab9718a099e81 100644 --- a/python/dune/perftool/generation/context.py +++ b/python/dune/perftool/generation/context.py @@ -5,8 +5,9 @@ _cache_context_stack = [] class _CacheContext(object): - def __init__(self, tags): + def __init__(self, tags, delete=False): self.tags = tags + self.delete = delete def __enter__(self): _cache_context_stack.append(self.tags) @@ -14,9 +15,13 @@ class _CacheContext(object): def __exit__(self, exc_type, exc_value, traceback): _cache_context_stack.pop() + if self.delete: + from dune.perftool.generation.cache import delete_cache_items + delete_cache_items(condition=" and ".join(self.tags)) -def cache_context(*tags): - return _CacheContext(tags) + +def cache_context(*tags, **kwargs): + return _CacheContext(tags, **kwargs) def get_context_tags():