code: def receive_message(source, auth=None, timeout=0, debug=False):
      
      received = receive_messages(source, auth=auth, max_batch_size=1, timeout=timeout, debug=debug)
      if received:
          return received[0]
      return None
docs: Receive a single message from an AMQP endpoint.
  
      :param source: The AMQP source endpoint to receive from.
      :type source: str, bytes or ~uamqp.address.Source
      :param auth: The authentication credentials for the endpoint.
       This should be one of the subclasses of uamqp.authentication.AMQPAuth. Currently
       this includes:
          - uamqp.authentication.SASLAnonymous
          - uamqp.authentication.SASLPlain
          - uamqp.authentication.SASTokenAuth
       If no authentication is supplied, SASLAnnoymous will be used by default.
      :type auth: ~uamqp.authentication.common.AMQPAuth
      :param timeout: The timeout in milliseconds after which to return None if no messages
       are retrieved. If set to `0` (the default), the receiver will not timeout and
       will continue to wait for messages until interrupted.
      :param debug: Whether to turn on network trace logs. If `True`, trace logs
       will be logged at INFO level. Default is `False`.
      :type debug: bool
      :rtype: ~uamqp.message.Message or None