def _on_continuation_message()

in awsiot/eventstreamrpc.py [0:0]


    def _on_continuation_message(
            self,
            headers: Sequence[Header],
            payload: bytes,
            message_type: protocol.MessageType,
            flags: int,
            **kwargs):
        self._message_count += 1
        logger.debug("%r received #%d %s %s %r", self, self._message_count, message_type.name, headers, payload)
        try:
            model_name = self._find_header(headers, SERVICE_MODEL_TYPE_HEADER)
            if model_name is None:
                if flags & protocol.MessageFlag.TERMINATE_STREAM:
                    # it's ok for a TERMINATE_STREAM message to be empty
                    return
                msg = "Missing header: " + SERVICE_MODEL_TYPE_HEADER
                raise UnmappedDataError(msg, headers, payload)

            content_type = self._find_header(headers, CONTENT_TYPE_HEADER)
            if content_type is None:
                msg = "Missing header: " + CONTENT_TYPE_HEADER
                raise UnmappedDataError(msg, headers, payload)
            if content_type != CONTENT_TYPE_APPLICATION_JSON:
                msg = "Unexpected {}: '{}', expected: '{}'".format(
                    CONTENT_TYPE_HEADER, content_type, CONTENT_TYPE_APPLICATION_JSON)
                raise UnmappedDataError(msg, headers, payload)

            if message_type == protocol.MessageType.APPLICATION_MESSAGE:
                self._handle_data(model_name, payload)
                return

            # otherwise it's an APPLICATION_ERROR
            found_type = self._shape_index.find_shape_type(model_name)
            if found_type is None:
                msg = "Unknown error type: {}".format(model_name)
                raise UnmappedDataError(msg, payload)
            if not issubclass(found_type, Exception):
                msg = "Unexpected type: {} sent as APPLICATION_ERROR, expected subclass of Exception".format(model_name)
                raise UnmappedDataError(msg, payload)
            shape = self._shape_from_json_payload(payload, found_type)
            raise shape
        except Exception as e:
            self._handle_error(e, flags)