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)