Beispiel #1
0
def ParsePythonEnum(string: str,
                    enumType: typing.Type[enum_lib.Enum]) -> typing.Any:
    if not isinstance(string, str):
        raise Exceptions.IncorrectTypeException(string, "string", (str, ))

    if not isinstance(enumType, type):
        raise Exceptions.IncorrectTypeException(enumType, "enumType", (type, ))

    if not issubclass(enumType, enum_lib.Enum):
        raise Exceptions.DoesNotInheritException("enumType", (enum_lib.Enum, ))

    if "." in string:
        stringSplit = string.split(".")  # type: typing.List[str]

        if len(stringSplit) == 2:
            if stringSplit[0] == enumType.__name__:
                string = stringSplit[1]
            else:
                raise ValueError("Cannot parse '" + string + "' to '" +
                                 Types.GetFullName(enumType) + "'.")
        else:
            raise ValueError("Cannot parse '" + string + "' to '" +
                             Types.GetFullName(enumType) + "'.")

    try:
        return enumType[string]
    except KeyError:
        pass

    raise ValueError("'" + string + "' is not an attribute of '" +
                     Types.GetFullName(enumType) + "'.")
Beispiel #2
0
    def __init__(self, setting: typing.Type[AbstractSettings.SettingAbstract]):
        """
		A wrapper for the standard settings system used by NeonOcean
		"""

        if not isinstance(setting, type):
            raise Exceptions.IncorrectTypeException(setting, "setting",
                                                    (type, ))

        if not issubclass(setting, AbstractSettings.SettingAbstract):
            raise Exceptions.DoesNotInheritException(
                "setting", (AbstractSettings.SettingAbstract, ))

        super().__init__(setting)
Beispiel #3
0
def SetupAnnouncer(announcer: typing.Type[Announcer]) -> None:
    if not isinstance(announcer, type):
        raise Exceptions.IncorrectTypeException(announcer, "announcer",
                                                (type, ))

    if not issubclass(announcer, Announcer):
        raise Exceptions.DoesNotInheritException("announcer", (Announcer, ))

    if announcer in _announcers:
        return

    _Register(announcer)

    _SortAnnouncer()