code: def set_return_listener(self, cb):
          '''
          Set a callback for basic.return listening. Will be called with a single
          Message argument.
  
          The return_info attribute of the Message will have the following
          properties:
              'channel': Channel instance
              'reply_code': reply code (int)
              'reply_text': reply text
              'exchange': exchange name
              'routing_key': routing key
  
          RabbitMQ NOTE: if the channel was in confirmation mode when the message
          was published, then basic.return will still be followed by basic.ack
          later.
  
          :param cb: callable cb(Message); pass None to reset
          '''
          if cb is not None and not callable(cb):
              raise ValueError('return_listener callback must either be None or '
                               'a callable, but got: %r' % (cb,))
          self._return_listener = cf set_return_listener(self, cb):
          '''
          Set a callback for basic.return listening. Will be called with a single
          Message argument.
  
          The return_info attribute of the Message will have the following
          properties:
              'channel': Channel instance
              'reply_code': reply code (int)
              'reply_text': reply text
              'exchange': exchange name
              'routing_key': routing key
  
          RabbitMQ NOTE: if the channel was in confirmation mode when the message
          was published, then basic.return will still be followed by basic.ack
          later.
  
          :param cb: callable cb(Message); pass None to reset
          '''
          if cb is not None and not callable(cb):
              raise ValueError('return_listener callback must either be None or '
                               'a callable, but got: %r' % (cb,))
          self._return_listener = cb
docs: Set a callback for basic.return listening. Will be called with a single
          Message argument.
  
          The return_info attribute of the Message will have the following
          properties:
              'channel': Channel instance
              'reply_code': reply code (int)
              'reply_text': reply text
              'exchange': exchange name
              'routing_key': routing key
  
          RabbitMQ NOTE: if the channel was in confirmation mode when the message
          was published, then basic.return will still be followed by basic.ack
          later.
  
          :param cb: callable cb(Message); pass None to reset