in uamqp/message.py [0:0]
def gather(self):
"""Return all the messages represented by this object. This will convert
the batch data into individual Message objects, which may be one
or more if multi_messages is set to `True`.
:rtype: list[~uamqp.message.Message]
"""
if self._multi_messages:
return self._multi_message_generator()
new_message = self._create_batch_message()
message_size = new_message.get_message_encoded_size() + self.size_offset
body_size = 0
for data in self._body_gen:
message_bytes = None
try:
# try to get the internal uamqp Message
internal_uamqp_message = data.message
except AttributeError:
# no inernal message, data could be uamqp Message or raw data
internal_uamqp_message = data
try:
# uamqp Message
if (
not internal_uamqp_message.application_properties
and self.application_properties
):
internal_uamqp_message.application_properties = (
self.application_properties
)
message_bytes = internal_uamqp_message.encode_message()
except AttributeError: # raw data
wrap_message = Message(
body=internal_uamqp_message,
application_properties=self.application_properties,
)
message_bytes = wrap_message.encode_message()
body_size += len(message_bytes)
if (body_size + message_size) > self.max_message_length:
raise errors.MessageContentTooLarge()
new_message._body.append(message_bytes) # pylint: disable=protected-access
new_message.on_send_complete = self.on_send_complete
return [new_message]