'Returns the type for creating enum members, and the first inherited
enum class.
bases: the tuple of bases that was given to __new__'

@staticmethod
def _get_mixins_(bases):

    if ((not bases) or (Enum is None)):
        return (object, Enum)
    member_type = first_enum = None
    for base in bases:
        if ((base is not Enum) and issubclass(base, Enum) and base._member_names_):
            raise TypeError('Cannot    extend    enumerations')
    if (not issubclass(base, Enum)):
        raise TypeError('new    enumerations    must    be    created    as    `ClassName([mixin_type,]    enum_type)`')
    if (not issubclass(bases[0], Enum)):
        member_type = bases[0]
        first_enum = bases[(-1)]
    else:
        for base in bases[0].__mro__:
            if issubclass(base, Enum):
                if (first_enum is None):
                    first_enum = base
            elif (member_type is None):
                member_type = base
    return (member_type, first_enum)
