"""
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?
% (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.
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
with self.assertRaisesRegex(TypeError, "EvenMoreColor: cannot extend enumeration 'Color'"):
class EvenMoreColor(Color, IntEnum):
chartruese = 7
+ with self.assertRaisesRegex(TypeError, "Foo: cannot extend enumeration 'Color'"):
+ Color('Foo', ('pink', 'black'))
def test_exclude_methods(self):
class whatever(Enum):