diff options
Diffstat (limited to 'Lib/enum.py')
-rw-r--r-- | Lib/enum.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Lib/enum.py b/Lib/enum.py index 86928b4f79f..93ea1bea36d 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -763,7 +763,7 @@ class EnumType(type): """ metacls = cls.__class__ bases = (cls, ) if type is None else (type, cls) - _, first_enum = cls._get_mixins_(cls, bases) + _, first_enum = cls._get_mixins_(class_name, bases) classdict = metacls.__prepare__(class_name, bases) # special processing needed for names? @@ -848,8 +848,8 @@ class EnumType(type): % (class_name, base.__name__) ) - @staticmethod - def _get_mixins_(class_name, bases): + @classmethod + def _get_mixins_(cls, class_name, bases): """ Returns the type for creating enum members, and the first inherited enum class. @@ -890,9 +890,8 @@ class EnumType(type): if not issubclass(first_enum, Enum): raise TypeError("new enumerations should be created as " "`EnumName([mixin_type, ...] [data_type,] enum_type)`") + cls._check_for_existing_members(class_name, bases) member_type = _find_data_type(bases) or object - if first_enum._member_names_: - raise TypeError("Cannot extend enumerations") return member_type, first_enum @staticmethod |