<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build_inbound_messages(self, break_on_empty=False, to_tuple=False, auto_decode=True):
 """Build messages in the inbound queue. :param bool break_on_empty: Should we break the loop when there are no more messages in our inbound queue. This does not guarantee that the upstream queue is empty, as it's possible that if messages are consumed faster than delivered, the inbound queue will then be emptied and the consumption will be broken. :param bool to_tuple: Should incoming messages be converted to a tuple before delivery. :param bool auto_decode: Auto-decode strings when possible. :raises AMQPChannelError: Raises if the channel encountered an error. :raises AMQPConnectionError: Raises if the connection encountered an error. :rtype: :py:class:`generator` """

        self.check_for_errors()
        while not self.is_closed:
            message = self._build_message(auto_decode=auto_decode)
            if not message:
                self.check_for_errors()
                sleep(IDLE_WAIT)
                if break_on_empty and not self._inbound:
                    break
                continue
            if to_tuple:
                yield message.to_tuple()
                continue
            yield message