import pkgutil from importlib.util import module_from_spec from sys import modules _backends = [] for module_finder, module_name, is_pkg in pkgutil.iter_modules( __path__, prefix=__name__ + ".", ): # skip .py files (like libdevice.py) if not is_pkg: continue # import backends (like cuda and hip) that are included during setup.py spec = module_finder.find_spec(module_name) if spec is None or spec.loader is None: continue module = module_from_spec(spec) spec.loader.exec_module(module) _backends.append(module_name) modules[module_name] = module __all__ = _backends del _backends