amqp_object.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. """Base classes that are extended by low level AMQP frames and higher level
  2. AMQP classes and methods.
  3. """
  4. class AMQPObject(object):
  5. """Base object that is extended by AMQP low level frames and AMQP classes
  6. and methods.
  7. """
  8. NAME = 'AMQPObject'
  9. INDEX = None
  10. def __repr__(self):
  11. items = list()
  12. for key, value in self.__dict__.items():
  13. if getattr(self.__class__, key, None) != value:
  14. items.append('%s=%s' % (key, value))
  15. if not items:
  16. return "<%s>" % self.NAME
  17. return "<%s(%s)>" % (self.NAME, sorted(items))
  18. class Class(AMQPObject):
  19. """Is extended by AMQP classes"""
  20. NAME = 'Unextended Class'
  21. class Method(AMQPObject):
  22. """Is extended by AMQP methods"""
  23. NAME = 'Unextended Method'
  24. synchronous = False
  25. def _set_content(self, properties, body):
  26. """If the method is a content frame, set the properties and body to
  27. be carried as attributes of the class.
  28. :param pika.frame.Properties properties: AMQP Basic Properties
  29. :param bytes body: The message body
  30. """
  31. self._properties = properties # pylint: disable=W0201
  32. self._body = body # pylint: disable=W0201
  33. def get_properties(self):
  34. """Return the properties if they are set.
  35. :rtype: pika.frame.Properties
  36. """
  37. return self._properties
  38. def get_body(self):
  39. """Return the message body if it is set.
  40. :rtype: str|unicode
  41. """
  42. return self._body
  43. class Properties(AMQPObject):
  44. """Class to encompass message properties (AMQP Basic.Properties)"""
  45. NAME = 'Unextended Properties'