示例#1
0
文件: enum.py 项目: mammo0/LED-Matrix
    def __getattr__(cls, name):
        # first test for empty element
        if name == DynamicEnumMeta.empty_attr:
            return EnumMeta.__getattr__(
                cls.__get_dynamic_enum_class(
                    {DynamicEnumMeta.empty_attr: object()}),
                DynamicEnumMeta.empty_attr)
        # ignore dunder attributes
        elif _is_dunder(name):
            return EnumMeta.__getattr__(cls, name)

        # this avoids recursion
        enum_dict = cls.dynamic_enum_dict
        if name in enum_dict:
            return EnumMeta.__getattr__(
                cls.__get_dynamic_enum_class(enum_dict), name)
        else:
            return EnumMeta.__getattr__(cls, name)