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

1.3.3

release-date:2013-11-11 3:30 P.M UTC
  • SSLTransport: Now keeps read buffer if an exception is raised (Issue #26).

    Fix contributed by Tommie Gannert.

1.3.2

release-date:2013-10-29 2:00 P.M UTC
  • 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.

1.3.1

release-date:2013-10-24 04:00 P.M UTC
  • Now implements Connection.connected (Issue #22).
  • Fixed bug where str(AMQPError) did not return string.

1.3.0

release-date:2013-09-04 02:39 P.M UTC
  • 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 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.

1.2.1

release-date:2013-08-16 05:30 P.M UTC
  • Adds promise type: amqp.utils.promise()
  • Merges fixes from 1.0.x

1.2.0

release-date:2012-11-12 04:00 P.M UTC
  • New exception hierarchy:

    • AMQPError
      • ConnectionError
        • RecoverableConnectionError
          • ConsumerCancelled
          • ConnectionForced
          • ResourceError
        • IrrecoverableConnectionError
          • ChannelNotOpen
          • FrameError
          • FrameSyntaxError
          • InvalidCommand
          • InvalidPath
          • NotAllowed
          • UnexpectedFrame
          • AMQPNotImplementedError
          • InternalError
      • ChannelError
        • RecoverableChannelError
          • ContentTooLarge
          • NoConsumers
          • ResourceLocked
        • IrrecoverableChannelError
          • AccessRefused
          • NotFound
          • PreconditionFailed

1.1.0

release-date:2012-11-08 10:36 P.M UTC
  • 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.

1.0.13

release-date:2013-07-31 16:00 P.M BST
  • Fixed problems with the SSL transport (Issue #15).

    Fix contributed by Adrien Guinet.

  • Small optimizations

1.0.12

release-date:2013-06-25 14:00 P.M BST
  • Fixed another Python 3 compatibility problem.

1.0.11

release-date:2013-04-11 18:00 P.M BST
  • Fixed Python 3 incompatibility in amqp/transport.py.

1.0.10

release-date:2013-03-21 03:30 P.M UTC
  • Fixed Python 3 incompatibility in amqp/serialization.py. (Issue #11).

1.0.9

release-date:2013-03-08 10:40 A.M UTC
  • 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.

1.0.8

release-date:2013-02-08 01:00 P.M UTC
  • Fixed SyntaxError on Python 2.5

1.0.7

release-date:2013-02-08 01:00 P.M UTC
  • 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).

1.0.6

release-date:2012-11-29 01:14 P.M UTC
  • Channel.close is now ignored if the connection attribute is None.

1.0.5

release-date:2012-11-21 04:00 P.M UTC
  • 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)
    

1.0.4

release-date:2012-11-13 04:00 P.M UTC
  • Fixes Python 2.5 support

1.0.3

release-date:2012-11-12 04:00 P.M UTC
  • Now can also handle float in headers/tables when receiving messages.
  • Now uses array.array to keep track of unused channel ids.
  • The METHOD_NAME_MAP has been updated for amqp/0.9.1 and Rabbit extensions.
  • Removed a bunch of accidentally included images.

1.0.2

release-date:2012-11-06 05:00 P.M UTC
  • Now supports float values in headers/tables.

1.0.1

release-date:2012-11-05 01:00 P.M UTC
  • Connection errors no longer includes AttributeError.

  • Fixed problem with using the SSL transport in a non-blocking context.

    Fix contributed by Mher Movsisyan.

1.0.0

release-date:2012-11-05 01:00 P.M UTC
  • Channels are now restored on channel error, so that the connection does not have to closed.

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

  • 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

  • Consumer cancel notification support was broken (Issue #1)

    Fix contributed by Andrew Grangaard

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

Previous topic

amqp.five

This Page