Releases: gmr/pamqp
Releases · gmr/pamqp
The "Reject without Requeue Bugfix" release
This release fixes an issue with Basic.Reject
requeue=False
always being set to True
(#29 - eandersson)
The v3 Release
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
The "Nearing Release" Release
More docs, cleaner, stricter code
- 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 ofamqp-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
Fix Basic.Properties.__eq__
- Make comparison of Basic.Properties against other object types raise
NotImplementedError
- Return test coverage to 100%
Stricter AMQP Rule Enforcement
- 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
.
The don't forget your name, ContentBody, release
3.0.0a1 Add downloads
3.0.0a0
- Update to support Python 3.6+ only
- Add typing annotations to all modules, callables, and classes
- Moved exceptions from
pamqp.specification
topamqp.exceptions
- Moved constants from
pamqp.specification
topamqp.constants
- Moved base classes out of
pamqp.specification
topamqp.base
- Changed the structure of nested classes for AMQP Commands (Classes & Methods) in
pamqp.specification
to functions inpamqp.commands
- Renamed
pamqp.specification.ERRORS
topamqp.exceptions.CLASS_MAPPING
- Remove convenience exports of
pamqp.headers.ContentHeader
andpamqp.header.ProtocolHeader
- pamqp.body.ContentBody.value now only supports
bytes
- Changed
pamqp.decode.timestamp
to return adatetime.datetime
instance instead oftime.struct_time
. - Updated
pamqp.encode.support_deprecated_rabbitmq()
to allow for toggling support. - Changed
pamqp.encode.timestamp
to only supportdatetime.datetime
andtime.struct_time
values, dropping epoch (int
) support. - Removed
pamqp.frame.BasicProperties.to_dict()
in favor of behavior allowing fordict(pamqp.frame.BasicProperties)
- Optimized
pamqp.heartbeat.Heartbeat
to marshal the static frame value as a predefined class attribute. - Add support for
Connection.UpdateSecret
andConnection.UpdateSecretOk
. - Removed the ability to unset a
Basic.Property
by invokingdel properties[key]
- Removed the deprecated
pamqp.codec
sub-package
2.3.0
2.0.0
- 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.
- This may be a breaking change means in Python3 keys will always be type str for short strings. This includes frame
- 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