def _handle_data()

in awsiot/eventstreamrpc.py [0:0]


    def _handle_data(self, model_name, payload):
        """
        Pass APPLICATION_MESSAGE payload along as a 1st response,
        or subsequent stream-event. Any exceptions raised by this function
        will be passed to _handle_error().
        """
        if self._message_count == 1:
            # 1st message is "response"
            expected_type = self._response_type()
            expected_name = expected_type._model_name()
            if model_name != expected_name:
                msg = "Unexpected response type: {}, expected: {}".format(model_name, expected_name)
                raise UnmappedDataError(msg, payload)
            shape = self._shape_from_json_payload(payload, expected_type)
            self._initial_response_future.set_result(shape)
        else:
            # messages after the 1st are "stream events"
            expected_type = self._response_stream_type()
            if expected_type is None:
                msg = "Operation does not support response stream events, received type: {}".format(model_name)
                raise UnmappedDataError(msg, payload)
            expected_name = expected_type._model_name()
            if model_name != expected_name:
                msg = "Unexpected response stream event type: {}, expected: {}".format(model_name, expected_name)
                raise UnmappedDataError(msg, payload)
            shape = self._shape_from_json_payload(payload, expected_type)
            self._stream_handler.on_stream_event(shape)