pamqp

Low level AMQP frame encoding and decoding library

BSD-3-CLAUSE License

Downloads
2.1M
Stars
51
Committers
11
pamqp - The "Reject without Requeue Bugfix" release Latest Release

Published by gmr about 4 years ago

This release fixes an issue with Basic.Reject requeue=False always being set to True (#29 - eandersson)

pamqp - The v3 Release

Published by gmr about 4 years ago

This represents the first stable release of the 3.0 branch for pamqp. It is Python 3.6+ only and is focused on protocol correctness and completeness.

Changes

  • Bugfix for encoding of unsigned small integers being treated as signed small integers
  • Updated tests around timezone behavior issues
pamqp - The "Nearing Release" Release

Published by gmr over 4 years ago

  • Rename pamqp.frame._frame_parts to pamqp.frame.frame_parts (#15 again)
  • pamqp.commands.Basic.QoS.global_ renamed to pamqp.commands.Basic.QoS.globally
  • Removed mypy checking due to errors in mypy and recursive type aliases
  • Added pamqp/py.typed for PEP-561 compatibility (#21 - michael-k)
pamqp - More docs, cleaner, stricter code

Published by gmr almost 5 years ago

  • Refactor codegen.py
  • Revert the behaviors added in 3.0.0a2 with regard to documented defaults and None
  • Use amqp0-9-1.extended.xml instead of amqp-0-9-1.xml to get the documentation for RabbitMQ added classes/methods
  • Add strict value checking for deprecated values
  • Remove empty __init__ functions from method classes
pamqp - Fix Basic.Properties.__eq__

Published by gmr almost 5 years ago

  • Make comparison of Basic.Properties against other object types raise NotImplementedError
  • Return test coverage to 100%
pamqp - Stricter AMQP Rule Enforcement

Published by gmr almost 5 years ago

  • Added mypy as part of the test pipeline and made updates based upon its findings.
  • Added length checking and regex checking for values specified in AMQP spec
  • Fixed some of the type annotations added in 3.0.0a0
  • Fixed some of the documentation and label usage in pamqp.commands
  • Removed redundant inline documentation in pamqp.commands
  • Updated default values to only reflect defaults specified in the XML and JSON specs. If no default is specified, the value will now be None.
pamqp - The don't forget your name, ContentBody, release

Published by gmr almost 5 years ago

pamqp - 3.0.0a0

Published by gmr almost 5 years ago

  • Update to support Python 3.6+ only
  • Add typing annotations to all modules, callables, and classes
  • Moved exceptions from pamqp.specification to pamqp.exceptions
  • Moved constants from pamqp.specification to pamqp.constants
  • Moved base classes out of pamqp.specification to pamqp.base
  • Changed the structure of nested classes for AMQP Commands (Classes & Methods) in pamqp.specification to functions in pamqp.commands
  • Renamed pamqp.specification.ERRORS to pamqp.exceptions.CLASS_MAPPING
  • Remove convenience exports of pamqp.headers.ContentHeader and pamqp.header.ProtocolHeader
  • pamqp.body.ContentBody.value now only supports bytes
  • Changed pamqp.decode.timestamp to return a datetime.datetime instance instead of time.struct_time.
  • Updated pamqp.encode.support_deprecated_rabbitmq() to allow for toggling support.
  • Changed pamqp.encode.timestamp to only support datetime.datetime and time.struct_time values, dropping epoch (int) support.
  • Removed pamqp.frame.BasicProperties.to_dict() in favor of behavior allowing for dict(pamqp.frame.BasicProperties)
  • Optimized pamqp.heartbeat.Heartbeat to marshal the static frame value as a predefined class attribute.
  • Add support for Connection.UpdateSecret and Connection.UpdateSecretOk.
  • Removed the ability to unset a Basic.Property by invoking del properties[key]
  • Removed the deprecated pamqp.codec sub-package
pamqp - 2.3.0

Published by gmr over 5 years ago

Add support for RabbitMQ versions < 3.6.0 by adding the pamqp.encode.support_deprecated_rabbitmq() method, restricting the data types that can be sent in a table-field value

pamqp -

Published by gmr about 6 years ago

  • Change Python versions supported to 2.7 and 3.4+
  • Always decode field table keys as strings (#6)
    • This may be a breaking change means in Python3 keys will always be type str for short strings. This includes frame
      values and field table values.
    • In Python 2.7 if a short-string (key, frame field value, etc) has UTF-8 characters in it, it will be a unicode object.
  • Combine test coverage across all Python versions
  • Fix range for signed short integer (#7)
  • Fix guards for usage of unsigned short usage in pamqp.encode (#7)
  • Fix encoding and decoding of unsigned short (#7)
  • Add support for unsigned short integer and long integer in field tables (#10)
  • Address edge case of small value in long type (#8)
  • Address long string encoding inconsistency (#9)
  • Cleanup unicode object & conditionals in py3 (#9)
  • Add pamqp.exceptions.PAMQPException as a base class for pamqp specific exceptions (#4)
  • Fix decoding of void values in a field table or array