def load(cls, module): assert module not in cls._installed, 'module already loaded' assert Permissions.is_protected(module), 'module not authorized' # Priority given to earlier dirs for dir_ in cls._ordered_dirs: try: cls._load(module, dir_) logging.info('Successfully loaded ' + module) # Only one module of this name peritted return except ModuleNotFoundError: pass except Exception as err: logging.error('Error loading ' + module + traceback.format_exc()) break msg = 'Load("' + module + '") failed' raise ModuleNotFoundError(msg)