2.5.2
- Ignore all methods except Close and Close-OK when channel/connection is closing
- Fix faulty ssl sni intiation parameters
- Undeprecate auto_delete flag for exchanges.
- Improved tests and testing environments
2.5.1
- Ignore all methods except Close and Close-OK when channel/connection is closing
- Fix faulty ssl sni intiation parameters
- Undeprecate auto_delete flag for exchanges.
- Improved tests and testing environments
2.4.2:
- Added support for the Cygwin platform
- Correct offset incrementation when parsing bitmaps.
- Consequent bitmaps are now parsed correctly.
Previously the bit counter was reset with every bit.
We now reset it once per 8 bits, when we consume the next byte.
2.4.1:
- To avoid breaking the API basic_consume() now returns the consumer tag
instead of a tuple when nowait is True.
- Fix crash in basic_publish when broker does not support connection.blocked
capability.
- read_frame() is now Python 3 compatible for large payloads.
- Support float read_timeout/write_timeout.
- Always treat SSLError timeouts as socket timeouts.
- Treat EWOULDBLOCK as timeout.
This fixes a regression on Windows from 2.4.0.
2.4.0
- Fix inconsistent frame_handler return value.
The function returned by frame_handler is meant to return True
once the complete message is received and the callback is called,
False otherwise.
This fixes the return value for messages with a body split across
multiple frames, and heartbeat frames.
- Don't default content_encoding to utf-8 for bytes.
This is not an acceptable default as the content may not be
valid utf-8, and even if it is, the producer likely does not
expect the message to be decoded by the consumer.
- Fix encoding of messages with multibyte characters.
Body length was previously calculated using string length,
which may be less than the length of the encoded body when
it contains multibyte sequences. This caused the body of
the frame to be truncated.
- Respect content_encoding when encoding messages.
Previously the content_encoding was ignored and messages
were always encoded as utf-8. This caused messages to be
incorrectly decoded if content_encoding is properly respected
when decoding.
- Fix AMQP protocol header for AMQP 0-9-1.
- Add support for Python 3.7.
Change direct SSLSocket instantiation with wrap_socket.
Added Python 3.7 to CI.
- Add support for field type "x" (byte array).
- If there is an exception raised on Connection.connect or Connection.close,
ensure that the underlying transport socket is closed.
- TCP_USER_TIMEOUT has to be excluded from KNOWN_TCP_OPTS in BSD platforms.
- Handle negative acknowledgments.
- Added integration tests.
- Fix basic_consume() with no consumer_tag provided.
- Improved empty AMQPError string representation.
- Drain events before publish.
- Don't revive channel when connection is closing.
2.3.1
- Fix a regression that occurs when running amqp under Python 2.7.
2.3.2
- Fix a regression that occurs when running amqp under Python 2.7 on OSX.
TCP_USER_TIMEOUT is not available when running on OSX.
We now remove it from the set of known TCP options.
Changes 2.2.2:
- Sending empty messages no longer hangs. Instead an empty message is sent correctly.
- Fixed compatibility issues in UTF-8 encoding behavior between Py2/Py3
- Fix random delays in task execution.
- Calling ``conn.collect()`` multiple times will no longer raise an ``AttributeError`` when no channels exist.
- Fix compatibility code for Python 2.7.6.
- When running in Windows, py-amqp will no longer use the unsupported TCP option TCP_MAXSEG.
- Added support for setting the SNI hostname header.
- Authentication mechanisms were refactored to be more modular. GSSAPI authentication is now supported.
- Do not reconnect on collect.
Removes byte string comparison warnings when running under python -b.
Fix contributed by Jon Dufresne.
Linux version parsing broke when the version included a ‘+’ character (Issue 119).
Now sets default TCP settings for platforms that support them (e.g. Linux).
=====
- Now keeps buffer when socket times out.
- Adds ``Connection.Transport`` attribute that can be used to specify
a different transport implementation.
- Can now deserialize more AMQP types.
Now handles types ``short string``, ``short short int``,
``short short unsigned int``, ``short int``, ``short unsigned int``,
``long unsigned int``, ``long long int``, ``long long unsigned int``
and ``float`` which for some reason was missing, even in the original
amqplib module.
- SSL: Workaround for Python SSL bug.
A bug in the python socket library causes ``ssl.read/write()``
on a closed socket to raise :exc:`AttributeError` instead of
:exc:`IOError`.
Fix contributed by Craig Jellick.
- ``Transport.__del_`` now handles errors occurring at late interpreter
shutdown (Issue #36).
distfile. From Changelog:
1.4.2
=====
- Heartbeat negotiation would use heartbeat value from server even
if heartbeat disabled (Issue #31).
1.4.1
=====
- Fixed error occurring when heartbeats disabled.
1.4.0
=====
- Heartbeat implementation improved (Issue #6).
The new heartbeat behavior is the same approach as taken by the
RabbitMQ java library.
This also means that clients should preferably call the ``heartbeat_tick``
method more frequently (like every second) instead of using the old
``rate`` argument (which is now ignored).
- Heartbeat interval is negotiated with the server.
- Some delay is allowed if the heartbeat is late.
- Monotonic time is used to keep track of the heartbeat
instead of relying on the caller to call the checking function
at the right time.
- NoneType is now supported in tables and arrays.
- SSLTransport: Now handles ``ENOENT``.
This is a fork of amqplib which was originally written by Barry Pederson. It is
maintained by the Celery project, and used by kombu as a pure python alternative
when librabbitmq is not available.
This library should be API compatible with librabbitmq.