| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103 |
- Changes
- =======
- py-amqp is fork of amqplib used by Kombu containing additional features and improvements.
- The previous amqplib changelog is here:
- http://code.google.com/p/py-amqplib/source/browse/CHANGES
- .. _version-2.4.1:
- 2.4.1
- =====
- :release-date: 2018-04-02 9:00 A.M UTC+2
- :release-by: Omer Katz
- - To avoid breaking the API basic_consume() now returns the consumer tag
- instead of a tuple when nowait is True.
- Fix contributed by **Matus Valo**
- - Fix crash in basic_publish when broker does not support connection.blocked
- capability.
- Fix contributed by **Matus Valo**
- - read_frame() is now Python 3 compatible for large payloads.
- Fix contributed by **Antonio Ojea**
- - Support float read_timeout/write_timeout.
- Fix contributed by **:github_user:`cadl`**
- - Always treat SSLError timeouts as socket timeouts.
- Fix contributed by **Dirk Mueller** and **Antonio Ojea**
- - Treat EWOULDBLOCK as timeout.
- This fixes a regression on Windows from 2.4.0.
- Fix contributed by **Lucian Petrut**
- Test Coverage & CI Improvements:
- - **Matus Valo**
- - **Antonio Ojea**
- .. _version-2.4.0:
- 2.4.0
- =====
- :release-date: 2018-13-01 1:00 P.M UTC+2
- :release-by: Omer Katz
- - 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.
- Fix contributed by **:github_user:`evanunderscore`**
- - 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 contributed by **:github_user:`evanunderscore`**
- - 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.
- Fix contributed by **:github_user:`evanunderscore`**
- - 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 contributed by **:github_user:`evanunderscore`**
- - Fix AMQP protocol header for AMQP 0-9-1.
- Previously it was set to a different value for unknown reasons.
- Fix contributed by **Carl Hörberg**
- - Add support for Python 3.7.
- Change direct SSLSocket instantiation with wrap_socket.
- Added Python 3.7 to CI.
- Fix contributed by **Omer Katz** and **:github_user:`avborhanian`**
- - Add support for field type "x" (byte array).
- Fix contributed by **Davis Kirkendall**
- - If there is an exception raised on Connection.connect or Connection.close,
- ensure that the underlying transport socket is closed.
- Adjust exception message on connection errors as well.
- Fix contributed by **:github_user:`tomc797`**
- - TCP_USER_TIMEOUT has to be excluded from KNOWN_TCP_OPTS in BSD platforms.
- Fix contributed by **George Tantiras**
- - Handle negative acknowledgments.
- Fix contributed by **Matus Valo**
- - Added integration tests.
- Fix contributed by **Matus Valo**
- - Fix basic_consume() with no consumer_tag provided.
- Fix contributed by **Matus Valo**
- - Improved empty AMQPError string representation.
- Fix contributed by **Matus Valo**
- - Drain events before publish.
- This is needed to capture out of memory messages for clients that only
- publish. Otherwise on_blocked is never called.
- Fix contributed by **Jelte Fennema** and **Matus Valo**
- - Don't revive channel when connection is closing.
- When connection is closing don't raise error when Channel.Close method is received.
- Fix contributed by **Matus Valo**
- .. _version-2.3.2:
- 2.3.2
- =====
- :release-date: 2018-05-29 15:30 P.M UTC+3
- :release-by: Omer Katz
- - Fix a regression that occurs when running amqp on OSX.
- TCP_USER_TIMEOUT is not available when running on OSX.
- We now remove it from the set of known TCP options.
- Fix contributed by **Ofer Horowitz**
- .. _version-2.3.1:
- 2.3.1
- =====
- :release-date: 2018-05-28 16:30 P.M UTC+3
- :release-by: Omer Katz
- - Fix a regression that occurs when running amqp under Python 2.7.
- #182 mistakenly replaced a type check with unicode to string_t which is str
- in Python 2.7. text_t should have been used instead.
- This is now fixed and the tests have been adjusted to ensure this never regresses
- again.
- Fix contributed by **Omer Katz**
- .. _version-2.3.0:
- 2.3.0
- =====
- :release-date: 2018-05-27 16:30 P.M UTC+3
- :release-by: Omer Katz
- - Cleanup TCP configurations across platforms and unified defaults.
- Fix contributed by **Dan Chowdhury**
- - Fix for TypeError when setting socket options.
- Fix contributed by **Matthias Erll**
- - Ensure that all call sites for decoding bytes to str allow surrogates,
- as the encoding mechanism now supports.
- Fix contributed by **Stephen Hatch**
- - Don't send AAAA DNS request when domain resolved to IPv4 address.
- Fix contributed by **Ihar Hrachyshka & Omer Katz**
- - Support for EXTERNAL authentication and specific login_method.
- Fix contributed by **Matthias Erll**
- - If the old python-gssapi library is installed the gssapi module will be available.
- We now ensure that we only use the new gssapi library.
- Fix contributed by **Jacopo Notarstefano**
- Code Cleanups & Test Coverage:
- - :github_user:`eric-eric-eric`
- - **Omer Katz**
- - **Jon Dufresne**
- - **Matthias Urlichs**
- .. _version-2.2.2:
- 2.2.2
- =====
- :release-date: 2017-09-14 09:00 A.M UTC+2
- :release-by: Omer Katz
- - Sending empty messages no longer hangs. Instead an empty message is sent correctly.(addresses #151)
- Fix contributed by **Christian Blades**
- - Fixed compatibility issues in UTF-8 encoding behavior between Py2/Py3 (#164)
- Fix contributed by **Tyler James Harden**
- .. _version-2.2.1:
- 2.2.1
- =====
- :release-date: 2017-07-14 09:00 A.M UTC+2
- :release-by: Omer Katz
- - Fix implicit conversion from bytes to string on the connection object. (Issue #155)
- This issue has caused Celery to crash on connection to RabbitMQ.
- Fix contributed by **Omer Katz**
- .. _version-2.2.0:
- 2.2.0
- =====
- :release-date: 2017-07-12 10:00 A.M UTC+2
- :release-by: Ask Solem
- - Fix random delays in task execution.
- This is a bug that caused performance issues due to polling timeouts that occur when receiving incomplete AMQP frames. (Issues #3978 #3737 #3814)
- Fix contributed by **Robert Kopaczewski**
- - Calling ``conn.collect()`` multiple times will no longer raise an ``AttributeError`` when no channels exist.
- Fix contributed by **Gord Chung**
- - Fix compatibility code for Python 2.7.6.
- Fix contributed by **Jonathan Schuff**
- - When running in Windows, py-amqp will no longer use the unsupported TCP option TCP_MAXSEG.
- Fix contributed by **Tony Breeds**
- - Added support for setting the SNI hostname header.
- The SSL protocol version is now set to SSLv23
- Contributed by **Dhananjay Sathe**
- - Authentication mechanisms were refactored to be more modular. GSSAPI authentication is now supported.
- Contributed by **Alexander Dutton**
- - Do not reconnect on collect.
- Fix contributed by **Gord Chung**
- .. _version-2.1.4:
- 2.1.4
- =====
- :release-date: 2016-12-14 03:40 P.M PST
- :release-by: Ask Solem
- - 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).
- +----------------------+---------------+
- | Constant | Value |
- +======================+===============+
- | ``TCP_KEEPIDLE`` | ``60`` |
- +----------------------+---------------+
- | ``TCP_KEEPINTVL`` | ``10`` |
- +----------------------+---------------+
- | ``TCP_KEEPCNT`` | ``9`` |
- +----------------------+---------------+
- | ``TCP_USER_TIMEOUT`` | ``1000`` (1s) |
- +----------------------+---------------+
- This will help detecting the socket being closed earlier, which is very
- important in failover and load balancing scenarios.
- .. _version-2.1.3:
- 2.1.3
- =====
- :release-date: 2016-12-07 06:00 P.M PST
- :release-by: Ask Solem
- - Fixes compatibility with Python 2.7.5 and below (Issue #107).
- .. _version-2.1.2:
- 2.1.2
- =====
- :release-date: 2016-12-07 02:00 P.M PST
- - Linux: Now sets the :data:`~socket.TCP_USER_TIMEOUT` flag if available
- for better failed connection detection.
- Contributed by **Jelte Fennema**.
- The timeout is set to the ``connect_timeout`` value by default,
- but can also be specified by using the ``socket_settings`` argument
- to :class:`~amqp.Connection`:
- .. code-block:: python
- from amqp import Connection
- from amqp.platform import TCP_USER_TIMEOUT
- conn = Connection(socket_settings={
- TCP_USER_TIMEOUT: int(60 * 1000), # six minutes in ms.
- })
- When using :pypi:`Kombu` this can be specified as part of the
- ``transport_options``:
- .. code-block:: python
- from amqp.platform import TCP_USER_TIMEOUT
- from kombu import Connection
- conn = Connection(transport_options={
- 'socket_settings': {
- TCP_USER_TIMEOUT: int(60 * 1000), # six minutes in ms.
- },
- })
- Or when using :pypi:`Celery` it can be specified using the
- ``broker_transport_options`` setting:
- .. code-block:: python
- from amqp.platform import TCP_USER_TIMEOUT
- from celery import Celery
- app = Celery()
- app.conf.update(
- broker_transport_options={
- TCP_USER_TIMEOUT: int(60 * 1000), # six minutes in ms.
- }
- )
- - Python compatibility: Fixed compatibility when using the python ``-b`` flag.
- Fix contributed by Jon Dufresne.
- .. _version-2.1.1:
- 2.1.1
- =====
- :release-date: 2016-10-13 06:36 P.M PDT
- :release-by: Ask Solem
- .. _version-2.1.0:
- - **Requirements**
- - Now depends on :ref:`Vine 1.1.3 <vine:version-1.1.3>`.
- - Frame writer: Account for overhead when calculating frame size.
- The client would crash if the message was within a certain size.
- - Fixed struct unicode problems (#108)
- * Standardize pack invocations on bytestrings.
- * Leave some literals as strings to enable interpolation.
- * Fix flake8 fail.
- Fix contributed by **Brendan Smithyman**.
- 2.1.0
- =====
- :release-date: 2016-09-07 04:23 P.M PDT
- :release-by: Ask Solem
- - **Requirements**
- - Now depends on :ref:`Vine 1.1.2 <vine:version-1.1.2>`.
- - Now licensed under the BSD license!
- Thanks to Barry Pederson for approving the license change,
- which unifies the license used across all projects in the Celery
- organization.
- - Datetimes in method frame arguments are now handled properly.
- - Fixed compatibility with Python <= 2.7.6
- - Frame_writer is no longer a generator, which should solve
- a rare "generator already executing" error (Issue #103).
- .. _version-2.0.3:
- 2.0.3
- =====
- :release-date: 2016-07-11 08:00 P.M PDT
- :release-by: Ask Solem
- - SSLTransport: Fixed crash "no attribute sslopts" when ``ssl=True``
- (Issue #100).
- - Fixed incompatible argument spec for ``Connection.Close`` (Issue #45).
- This caused the RabbitMQ server to raise an exception (INTERNAL ERROR).
- - Transport: No longer implements `__del__` to make sure gc can collect
- connections.
- It's the responsibility of the caller to close connections, this was
- simply a relic from the amqplib library.
- .. _version-2.0.2:
- 2.0.2
- =====
- :release-date: 2016-06-10 5:40 P.M PDT
- :release-by: Ask Solem
- - Python 3: Installation requirements ended up being a generator
- and crashed setup.py.
- Fix contributed by ChangBo Guo(gcb).
- - Python <= 2.7.7: struct.pack arguments cannot be unicode
- Fix contributed by Alan Justino and Xin Li.
- - Python 3.4: Fixed use of `bytes % int`.
- Fix contributed by Alan Justino.
- - Connection/Transport: Fixed handling of default port.
- Fix contributed by Quentin Pradet.
- .. _version-2.0.1:
- 2.0.1
- =====
- :release-date: 2016-05-31 6:20 P.M PDT
- :release-by: Ask Solem
- - Adds backward compatibility layer for the 1.4 API.
- Using the connection without calling ``.connect()`` first will now work,
- but a warning is emitted and the behavior is deprecated and will be
- removed in version 2.2.
- - Fixes kombu 3.0/celery 3.1 compatibility (Issue #88).
- Fix contributed by Bas ten Berge.
- - Fixed compatibility with Python 2.7.3 (Issue #85)
- Fix contributed by Bas ten Berge.
- - Fixed bug where calling drain_events() with a timeout of 0 would actually
- block until a frame is received.
- - Documentation moved to http://amqp.readthedocs.io (Issue #89).
- See https://blog.readthedocs.com/securing-subdomains/ for the reasoning
- behind this change.
- Fix contributed by Adam Chainz.
- .. _version-2.0.0:
- 2.0.0
- =====
- :release-date: 2016-05-26 1:44 P.M PDT
- :release-by: Ask Solem
- - No longer supports Python 2.6
- - You must now call Connection.connect() to establish the connection.
- The Connection constructor no longer has side effects, so you have
- to explicitly call connect first.
- - Library rewritten to anticipate async changes.
- - Connection now exposes underlying socket options.
- This change allows to set arbitrary TCP socket options during the creation of
- the transport.
- Those values can be set passing a dictionray where the key is the name of
- the parameter we want to set.
- The names of the keys are the ones reported above.
- Contributed by Andrea Rosa, Dallas Marlow and Rongze Zhu.
- - Additional logging for heartbeats.
- Contributed by Davanum Srinivas, and Dmitry Mescheryakov.
- - SSL: Fixes issue with remote connection hanging
- Fix contributed by Adrien Guinet.
- - SSL: ``ssl`` dict argument now supports the ``check_hostname`` key
- (Issue #63).
- Contributed by Vic Kumar.
- - Contributions by:
- Adrien Guinet
- Andrea Rosa
- Artyom Koval
- Corey Farwell
- Craig Jellick
- Dallas Marlow
- Davanum Srinivas
- Federico Ficarelli
- Jared Lewis
- Rémy Greinhofer
- Rongze Zhu
- Yury Selivanov
- Vic Kumar
- Vladimir Bolshakov
- :github_user:`lezeroq`
- .. _version-1.4.9:
- 1.4.9
- =====
- :release-date: 2016-01-08 5:50 P.M PST
- :release-by: Ask Solem
- - Fixes compatibility with Linux/macOS instances where the ``ctypes`` module
- does not exist.
- Fix contributed by Jared Lewis.
- .. _version-1.4.8:
- 1.4.8
- =====
- :release-date: 2015-12-07 12:25 A.M
- :release-by: Ask Solem
- - ``abstract_channel.wait`` now accepts a float `timeout` parameter expressed
- in seconds
- Contributed by Goir.
- .. _version-1.4.7:
- 1.4.7
- =====
- :release-date: 2015-10-02 05:30 P.M PDT
- :release-by: Ask Solem
- - Fixed libSystem error on macOS 10.11 (El Capitan)
- Fix contributed by Eric Wang.
- - ``channel.basic_publish`` now raises :exc:`amqp.exceptions.NotConfirmed` on
- ``basic.nack``.
- - AMQP timestamps received are now converted from GMT instead of local time
- (Issue #67).
- - Wheel package installation now supported by both Python 2 and Python3.
- Fix contributed by Rémy Greinhofer.
- .. _version-1.4.6:
- 1.4.6
- =====
- :release-date: 2014-08-11 06:00 P.M UTC
- :release-by: Ask Solem
- - Now keeps buffer when socket times out.
- Fix contributed by Artyom Koval.
- - Adds ``Connection.Transport`` attribute that can be used to specify
- a different transport implementation.
- Contributed by Yury Selivanov.
- .. _version-1.4.5:
- 1.4.5
- =====
- :release-date: 2014-04-15 09:00 P.M UTC
- :release-by: Ask Solem
- - 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).
- .. _version-1.4.4:
- 1.4.4
- =====
- :release-date: 2014-03-03 04:00 P.M UTC
- :release-by: Ask Solem
- - SSL transport accidentally disconnected after read timeout.
- Fix contributed by Craig Jellick.
- .. _version-1.4.3:
- 1.4.3
- =====
- :release-date: 2014-02-09 03:00 P.M UTC
- :release-by: Ask Solem
- - Fixed bug where more data was requested from the socket
- than was actually needed.
- Contributed by Ionel Cristian Mărieș.
- .. _version-1.4.2:
- 1.4.2
- =====
- :release-date: 2014-01-23 05:00 P.M UTC
- - Heartbeat negotiation would use heartbeat value from server even
- if heartbeat disabled (Issue #31).
- .. _version-1.4.1:
- 1.4.1
- =====
- :release-date: 2014-01-14 09:30 P.M UTC
- :release-by: Ask Solem
- - Fixed error occurring when heartbeats disabled.
- .. _version-1.4.0:
- 1.4.0
- =====
- :release-date: 2014-01-13 03:00 P.M UTC
- :release-by: Ask Solem
- - 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.
- Contributed by Dustin J. Mitchell.
- - NoneType is now supported in tables and arrays.
- Contributed by Dominik Fässler.
- - SSLTransport: Now handles ``ENOENT``.
- Fix contributed by Adrien Guinet.
- .. _version-1.3.3:
- 1.3.3
- =====
- :release-date: 2013-11-11 03:30 P.M UTC
- :release-by: Ask Solem
- - SSLTransport: Now keeps read buffer if an exception is raised
- (Issue #26).
- Fix contributed by Tommie Gannert.
- .. _version-1.3.2:
- 1.3.2
- =====
- :release-date: 2013-10-29 02:00 P.M UTC
- :release-by: Ask Solem
- - Message.channel is now a channel object (not the channel id).
- - Bug in previous version caused the socket to be flagged as disconnected
- at EAGAIN/EINTR.
- .. _version-1.3.1:
- 1.3.1
- =====
- :release-date: 2013-10-24 04:00 P.M UTC
- :release-by: Ask Solem
- - Now implements Connection.connected (Issue #22).
- - Fixed bug where ``str(AMQPError)`` did not return string.
- .. _version-1.3.0:
- 1.3.0
- =====
- :release-date: 2013-09-04 02:39 P.M UTC
- :release-by: Ask Solem
- - Now sets ``Message.channel`` on delivery (Issue #12)
- amqplib used to make the channel object available
- as ``Message.delivery_info['channel']``, but this was removed
- in py-amqp. librabbitmq sets ``Message.channel``,
- which is a more reasonable solution in our opinion as that
- keeps the delivery info intact.
- - New option to wait for publish confirmations (Issue #3)
- There is now a new Connection ``confirm_publish`` that will
- force any ``basic_publish`` call to wait for confirmation.
- Enabling publisher confirms like this degrades performance
- considerably, but can be suitable for some applications
- and now it's possible by configuration.
- - ``queue_declare`` now returns named tuple of type
- :class:`~amqp.protocol.basic_declare_ok_t`.
- Supporting fields: ``queue``, ``message_count``, and
- ``consumer_count``.
- - Contents of ``Channel.returned_messages`` is now named tuples.
- Supporting fields: ``reply_code``, ``reply_text``, ``exchange``,
- ``routing_key``, and ``message``.
- - Sockets now set to close on exec using the ``FD_CLOEXEC`` flag.
- Currently only supported on platforms supporting this flag,
- which does not include Windows.
- Contributed by Tommie Gannert.
- .. _version-1.2.1:
- 1.2.1
- =====
- :release-date: 2013-08-16 05:30 P.M UTC
- :release-by: Ask Solem
- - Adds promise type: :meth:`amqp.utils.promise`
- - Merges fixes from 1.0.x
- .. _version-1.2.0:
- 1.2.0
- =====
- :release-date: 2012-11-12 04:00 P.M UTC
- :release-by: Ask Solem
- - New exception hierarchy:
- - :class:`~amqp.AMQPError`
- - :class:`~amqp.ConnectionError`
- - :class:`~amqp.RecoverableConnectionError`
- - :class:`~amqp.ConsumerCancelled`
- - :class:`~amqp.ConnectionForced`
- - :class:`~amqp.ResourceError`
- - :class:`~IrrecoverableConnectionError`
- - :class:`~amqp.ChannelNotOpen`
- - :class:`~amqp.FrameError`
- - :class:`~amqp.FrameSyntaxError`
- - :class:`~amqp.InvalidCommand`
- - :class:`~amqp.InvalidPath`
- - :class:`~amqp.NotAllowed`
- - :class:`~amqp.UnexpectedFrame`
- - :class:`~amqp.AMQPNotImplementedError`
- - :class:`~amqp.InternalError`
- - :class:`~amqp.ChannelError`
- - :class:`~RecoverableChannelError`
- - :class:`~amqp.ContentTooLarge`
- - :class:`~amqp.NoConsumers`
- - :class:`~amqp.ResourceLocked`
- - :class:`~IrrecoverableChannelError`
- - :class:`~amqp.AccessRefused`
- - :class:`~amqp.NotFound`
- - :class:`~amqp.PreconditionFailed`
- .. _version-1.1.0:
- 1.1.0
- =====
- :release-date: 2013-11-08 10:36 P.M UTC
- :release-by: Ask Solem
- - No longer supports Python 2.5
- - Fixed receiving of float table values.
- - Now Supports Python 3 and Python 2.6+ in the same source code.
- - Python 3 related fixes.
- .. _version-1.0.13:
- 1.0.13
- ======
- :release-date: 2013-07-31 04:00 P.M BST
- :release-by: Ask Solem
- - Fixed problems with the SSL transport (Issue #15).
- Fix contributed by Adrien Guinet.
- - Small optimizations
- .. _version-1.0.12:
- 1.0.12
- ======
- :release-date: 2013-06-25 02:00 P.M BST
- :release-by: Ask Solem
- - Fixed another Python 3 compatibility problem.
- .. _version-1.0.11:
- 1.0.11
- ======
- :release-date: 2013-04-11 06:00 P.M BST
- :release-by: Ask Solem
- - Fixed Python 3 incompatibility in ``amqp/transport.py``.
- .. _version-1.0.10:
- 1.0.10
- ======
- :release-date: 2013-03-21 03:30 P.M UTC
- :release-by: Ask Solem
- - Fixed Python 3 incompatibility in ``amqp/serialization.py``.
- (Issue #11).
- .. _version-1.0.9:
- 1.0.9
- =====
- :release-date: 2013-03-08 10:40 A.M UTC
- :release-by: Ask Solem
- - Publisher ack callbacks should now work after typo fix (Issue #9).
- - ``channel(explicit_id)`` will now claim that id from the array
- of unused channel ids.
- - Fixes Jython compatibility.
- .. _version-1.0.8:
- 1.0.8
- =====
- :release-date: 2013-02-08 01:00 P.M UTC
- :release-by: Ask Solem
- - Fixed SyntaxError on Python 2.5
- .. _version-1.0.7:
- 1.0.7
- =====
- :release-date: 2013-02-08 01:00 P.M UTC
- :release-by: Ask Solem
- - Workaround for bug on some Python 2.5 installations where (2**32) is 0.
- - Can now serialize the ARRAY type.
- Contributed by Adam Wentz.
- - Fixed tuple format bug in exception (Issue #4).
- .. _version-1.0.6:
- 1.0.6
- =====
- :release-date: 2012-11-29 01:14 P.M UTC
- :release-by: Ask Solem
- - ``Channel.close`` is now ignored if the connection attribute is None.
- .. _version-1.0.5:
- 1.0.5
- =====
- :release-date: 2012-11-21 04:00 P.M UTC
- :release-by: Ask Solem
- - ``Channel.basic_cancel`` is now ignored if the channel was already closed.
- - ``Channel.events`` is now a dict of sets::
- >>> channel.events['basic_return'].add(on_basic_return)
- >>> channel.events['basic_return'].discard(on_basic_return)
- .. _version-1.0.4:
- 1.0.4
- =====
- :release-date: 2012-11-13 04:00 P.M UTC
- :release-by: Ask Solem
- - Fixes Python 2.5 support
- .. _version-1.0.3:
- 1.0.3
- =====
- :release-date: 2012-11-12 04:00 P.M UTC
- :release-by: Ask Solem
- - Now can also handle float in headers/tables when receiving messages.
- - Now uses :class:`array.array` to keep track of unused channel ids.
- - The :data:`~amqp.exceptions.METHOD_NAME_MAP` has been updated for
- amqp/0.9.1 and Rabbit extensions.
- - Removed a bunch of accidentally included images.
- .. _version-1.0.2:
- 1.0.2
- =====
- :release-date: 2012-11-06 05:00 P.M UTC
- :release-by: Ask Solem
- - Now supports float values in headers/tables.
- .. _version-1.0.1:
- 1.0.1
- =====
- :release-date: 2012-11-05 01:00 P.M UTC
- :release-by: Ask Solem
- - Connection errors no longer includes :exc:`AttributeError`.
- - Fixed problem with using the SSL transport in a non-blocking context.
- Fix contributed by Mher Movsisyan.
- .. _version-1.0.0:
- 1.0.0
- =====
- :release-date: 2012-11-05 01:00 P.M UTC
- :release-by: Ask Solem
- - Channels are now restored on channel error, so that the connection does not
- have to closed.
- .. _version-0.9.4:
- Version 0.9.4
- =============
- - Adds support for ``exchange_bind`` and ``exchange_unbind``.
- Contributed by Rumyana Neykova
- - Fixed bugs in funtests and demo scripts.
- Contributed by Rumyana Neykova
- .. _version-0.9.3:
- Version 0.9.3
- =============
- - Fixed bug that could cause the consumer to crash when reading
- large message payloads asynchronously.
- - Serialization error messages now include the invalid value.
- .. _version-0.9.2:
- Version 0.9.2
- =============
- - Consumer cancel notification support was broken (Issue #1)
- Fix contributed by Andrew Grangaard
- .. _version-0.9.1:
- Version 0.9.1
- =============
- - Supports draining events from multiple channels (``Connection.drain_events``)
- - Support for timeouts
- - Support for heartbeats
- - ``Connection.heartbeat_tick(rate=2)`` must called at regular intervals
- (half of the heartbeat value if rate is 2).
- - Or some other scheme by using ``Connection.send_heartbeat``.
- - Supports RabbitMQ extensions:
- - Consumer Cancel Notifications
- - by default a cancel results in ``ChannelError`` being raised
- - but not if a ``on_cancel`` callback is passed to ``basic_consume``.
- - Publisher confirms
- - ``Channel.confirm_select()`` enables publisher confirms.
- - ``Channel.events['basic_ack'].append(my_callback)`` adds a callback
- to be called when a message is confirmed. This callback is then
- called with the signature ``(delivery_tag, multiple)``.
- - Support for ``basic_return``
- - Uses AMQP 0-9-1 instead of 0-8.
- - ``Channel.access_request`` and ``ticket`` arguments to methods
- **removed**.
- - Supports the ``arguments`` argument to ``basic_consume``.
- - ``internal`` argument to ``exchange_declare`` removed.
- - ``auto_delete`` argument to ``exchange_declare`` deprecated
- - ``insist`` argument to ``Connection`` removed.
- - ``Channel.alerts`` has been removed.
- - Support for ``Channel.basic_recover_async``.
- - ``Channel.basic_recover`` deprecated.
- - Exceptions renamed to have idiomatic names:
- - ``AMQPException`` -> ``AMQPError``
- - ``AMQPConnectionException`` -> ConnectionError``
- - ``AMQPChannelException`` -> ChannelError``
- - ``Connection.known_hosts`` removed.
- - ``Connection`` no longer supports redirects.
- - ``exchange`` argument to ``queue_bind`` can now be empty
- to use the "default exchange".
- - Adds ``Connection.is_alive`` that tries to detect
- whether the connection can still be used.
- - Adds ``Connection.connection_errors`` and ``.channel_errors``,
- a list of recoverable errors.
- - Exposes the underlying socket as ``Connection.sock``.
- - Adds ``Channel.no_ack_consumers`` to keep track of consumer tags
- that set the no_ack flag.
- - Slightly better at error recovery
|