diff --git a/python/dune/perftool/generation/__init__.py b/python/dune/perftool/generation/__init__.py index 7801d1a1bd9982cb474ef1e750fe2a48d1721e6f..32463b4b1ccd0af0ececa244c5578b5ccc4a6d67 100644 --- a/python/dune/perftool/generation/__init__.py +++ b/python/dune/perftool/generation/__init__.py @@ -1,5 +1,9 @@ from __future__ import absolute_import +from dune.perftool.generation.backend import (backend, + get_backend, + ) + from dune.perftool.generation.counter import get_counter from dune.perftool.generation.cache import (cached, diff --git a/python/dune/perftool/generation/backend.py b/python/dune/perftool/generation/backend.py new file mode 100644 index 0000000000000000000000000000000000000000..a08c85b9663384a9ccb9f034dd851d1458e167a5 --- /dev/null +++ b/python/dune/perftool/generation/backend.py @@ -0,0 +1,16 @@ +""" Some decorators to implement a backend selection mechanism """ + +_backend_mapping = {} + + +def backend(name): + def _dec(func): + assert(name not in _backend_mapping) + _backend_mapping[name] = func + return func + + return _dec + + +def get_backend(name): + return _backend_mapping[name]