Exemple #1
0
    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
Exemple #2
0
        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
Exemple #3
0
        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
Exemple #4
0
    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
Exemple #5
0
    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