def register_unavailable(cls, interface_type, resource_class, msg): """Register an unavailable session class for a given interface type and resource class. raising a ValueError if called. :type interface_type: constants.InterfaceType :type resource_class: str """ # noinspection PyUnusedLocal class _internal(object): session_issue = msg def __init__(self, *args, **kwargs): raise ValueError(msg) _internal.session_issue = msg if (interface_type, resource_class) in cls._session_classes: logger.warning( '%s is already registered in the ResourceManager. ' 'Overwriting with unavailable %s', ((interface_type, resource_class), msg)) cls._session_classes[(interface_type, resource_class)] = _internal
def _internal(python_class): if (interface_type, resource_class) in cls._session_classes: logger.warning('%s is already registered in the ResourceManager. ' 'Overwriting with %s' % ((interface_type, resource_class), python_class)) cls._session_classes[(interface_type, resource_class)] = python_class return python_class
def _internal(python_class): if (interface_type, resource_class) in cls._session_classes: logger.warning('%s is already registered in the ResourceManager. ' 'Overwriting with %s' % ((interface_type, resource_class), python_class)) python_class.session_type = (interface_type, resource_class) cls._session_classes[(interface_type, resource_class)] = python_class return python_class
def register_unavailable( cls, interface_type: constants.InterfaceType, resource_class: str, msg: str ) -> None: """Register that no session class exists. This creates a fake session that will raise a ValueError if called. Parameters ---------- interface_type : constants.InterfaceType Type of interface. resource_class : str Class of the resource msg : str Message detailing why no session class exists for this particular interface type, resource class pair. Returns ------- Type[Session] Fake session. """ class _internal(Session): #: Message detailing why no session is available. session_issue: str = msg def __init__(self, *args, **kwargs) -> None: raise ValueError(msg) def _get_attribute(self, attr): raise NotImplementedError() def _set_attribute(self, attr, value): raise NotImplementedError() def close(self): raise NotImplementedError() if (interface_type, resource_class) in cls._session_classes: logger.warning( "%s is already registered in the ResourceManager. " "Overwriting with unavailable %s", ((interface_type, resource_class), msg), ) cls._session_classes[(interface_type, resource_class)] = _internal
def register_unavailable(cls, interface_type, resource_class, msg): """Register an unavailable session class for a given interface type and resource class. raising a ValueError if called. :type interface_type: constants.InterfaceType :type resource_class: str """ def _internal(*args, **kwargs): raise ValueError(msg) _internal.session_issue = msg if (interface_type, resource_class) in cls._session_classes: logger.warning('%s is already registered in the ResourceManager. ' 'Overwriting with unavailable %s' % ((interface_type, resource_class), msg)) cls._session_classes[(interface_type, resource_class)] = _internal