<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_enum_labels(enum_cls):
 """ Return list of enumeration labels from Enum class. The list is useful when creating an attribute, for the `enum_labels` parameter. The enumeration values are checked to ensure they are unique, start at zero, and increment by one. :param enum_cls: the Enum class to be inspected :type enum_cls: :py:obj:`enum.Enum` :return: List of label strings :rtype: :py:obj:`list` :raises EnumTypeError: in case the given class is invalid """

    if not issubclass(enum_cls, enum.Enum):
        raise EnumTypeError("Input class '%s' must be derived from enum.Enum"
                            % enum_cls)

    # Check there are no duplicate labels
    try:
        enum.unique(enum_cls)
    except ValueError as exc:
        raise EnumTypeError("Input class '%s' must be unique - %s"
                            % (enum_cls, exc))

    # Check the values start at 0, and increment by 1, since that is
    # assumed by tango's DEV_ENUM implementation.
    values = [member.value for member in enum_cls]
    if not values:
        raise EnumTypeError("Input class '%s' has no members!" % enum_cls)
    expected_value = 0
    for value in values:
        if value != expected_value:
            raise EnumTypeError("Enum values for '%s' must start at 0 and "
                                "increment by 1.  Values: %s"
                                % (enum_cls, values))
        expected_value += 1

    return [member.name for member in enum_cls]