code: def reject(self, condition=None, description=None):
          
          if self._can_settle_message():
              self._response = errors.MessageRejected(
                  condition=condition,
                  description=description,
                  encoding=self._encoding)
              self._settler(self._response)
              self.state = constants.MessageState.ReceivedSettled
              return True
          return False
docs: Send a response disposition to the service to indicate that
          a received message has been rejected. If the client is running in PeekLock
          mode, the service will wait on this disposition. Otherwise it will
          be ignored. A rejected message will increment the messages delivery count.
          Returns `True` is message was rejected, or `False` if the message
          was already settled.
  
          :param condition: The AMQP rejection code. By default this is `amqp:internal-error`.
          :type condition: bytes or str
          :param description: A description/reason to accompany the rejection.
          :type description: bytes or str
          :rtype: bool
          :raises: TypeError if the message is being sent rather than received.