Source code for refl1d.backends
# Authors: Paul Kienzle, Brian Maranville
"""
Reflectometry backend loader
"""
import importlib
from . import BACKEND_NAME, BACKEND_NAMES
BACKEND_MODULE_NAMES = {
"c_ext": "refl1d.reflmodule",
"numba": "refl1d.lib.numba",
"python": "refl1d.lib.python",
}
backend = None
[docs]
def set_backend(backend_name: BACKEND_NAMES):
global backend
backend_module_name = BACKEND_MODULE_NAMES.get(backend_name, None)
if backend_module_name is None:
raise ValueError(f"Unknown backend: {backend_name}")
backend = importlib.import_module(backend_module_name)
if BACKEND_NAME is not None:
set_backend(BACKEND_NAME)