Permalink
Browse files

Merge branch 'master' into asynchronous-broadcasts

  • Loading branch information...
2 parents c0244d5 + b7c5f06 commit f1fe4e6881916e6993d7aa548f9d8601562a225e @ask ask committed Aug 29, 2012
View
@@ -13,6 +13,7 @@ Anton Gyllenberg <anton@iki.fi>
Ask Solem <ask@celeryproject.org>
Bobby Beever <bobby.beever@yahoo.com>
Brian Bernstein
+C Anthony Risinger <anthony+corvisa.com@xtfx.me>
Christophe Chauvet <christophe.chauvet@gmail.com>
Christopher Grebs <cg@webshox.org>
Clay Gerrard <clay.gerrard@gmail.com>
View
158 Changelog
@@ -4,6 +4,164 @@
Change history
================
+.. _version-2.4.3:
+
+2.4.3
+=====
+:release-date: 2012-08-25 10:30 P.M BST
+
+- Fixed problem with amqp transport alias (Issue #154).
+
+.. _version-2.4.2:
+
+2.4.2
+=====
+:release-date: 2012-08-24 05:00 P.M BST
+
+- Having an empty transport name broke in 2.4.1.
+
+
+.. _version-2.4.1:
+
+2.4.1
+=====
+:release-date: 2012-08-24 04:00 P.M BST
+
+- Redis: Fixed race condition that could cause the consumer to crash (Issue #151)
+
+ Often leading to the error message ``"could not convert string to float"``
+
+- Connection retry could cause an inifite loop (Issue #145).
+
+- The ``amqp`` alias is now resolved at runtime, so that eventlet detection
+ works even if patching was done later.
+
+.. _version-2.4.0:
+
+2.4.0
+=====
+:release-date: 2012-08-17 08:00 P.M BST
+
+- New experimental :mod:`ZeroMQ <kombu.transport.zmq` transport.
+
+ Contributed by John Watson.
+
+- Redis: Ack timed-out messages were not restored when using the eventloop.
+
+- Now uses pickle protocol 2 by default to be cross-compatible with Python 3.
+
+ The protocol can also now be changed using the :envvar:`PICKLE_PROTOCOL`
+ environment variable.
+
+- Adds ``Transport.supports_ev`` attribute.
+
+- Pika: Queue purge was not working properly.
+
+ Fix contributed by Steeve Morin.
+
+- Pika backend was no longer working since Kombu 2.3
+
+ Fix contributed by Steeve Morin.
+
+.. _version-2.3.2:
+
+2.3.2
+=====
+:release-date: 2012-08-01 06:00 P.M BST
+
+- Fixes problem with deserialization in Python 3.
+
+.. _version-2.3.1:
+
+2.3.1
+=====
+:release-date: 2012-08-01 04:00 P.M BST
+
+- librabbitmq: Can now handle messages that does not have a
+ content_encoding/content_type set (Issue #149).
+
+ Fix contributed by C Anthony Risinger.
+
+- Beanstalk: Now uses localhost by default if the URL does not contain a host.
+
+.. _version-2.3.0:
+
+2.3.0
+=====
+:release-date: 2012-07-24 03:50 P.M BST
+
+- New ``pyamqp://`` transport!
+
+ The new `py-amqp`_ library is a fork of amqplib started with the
+ following goals:
+
+ - Uses AMQP 0.9.1 instead of 0.8
+ - Should support all RabbitMQ extensions
+ - API compatible with :mod:`librabbitmq` so that it can be used
+ as a pure-python replacement in environments where rabbitmq-c cannot
+ be compiled.
+
+ .. _`py-amqp`: http://amqp.readthedocs.org/
+
+ If you start using use py-amqp instead of amqplib you can enjoy many
+ advantages including:
+
+ - Heartbeat support (Issue #79 + Issue #131)
+ - Consumer Cancel Notifications (Issue #131)
+ - Publisher Confirms
+
+ amqplib has not been updated in a long while, so maintaining our own fork
+ ensures that we can quickly roll out new features and fixes without
+ resorting to monkey patching.
+
+ To use the py-amqp transport you must install the :mod:`amqp` library::
+
+ $ pip install amqp
+
+ and change the connection URL to use the correct transport::
+
+ >>> conn = Connection('pyamqp://guest:guest@localhost//')
+
+
+ The ``pyamqp://`` transport will be the default fallback transport
+ in Kombu version 3.0, when :mod:`librabbitmq` is not installed,
+ and librabbitmq will also be updated to support the same features.
+
+- Connection now supports heartbeat argument.
+
+ If enabled you must make sure to manually maintain heartbeats
+ by calling the ``Connection.heartbeat_check`` at twice the rate
+ of the specified heartbeat interval.
+
+ E.g. if you have ``Connection(heartbeat=10)``,
+ then you must call ``Connection.heartbeat_check()`` every 5 seconds.
+
+ if the server has not sent heartbeats at a suitable rate then
+ the heartbeat check method must raise an error that is listed
+ in ``Connection.connection_errors``.
+
+ The attribute ``Connection.supports_heartbeats`` has been added
+ for the ability to inspect if a transport supports heartbeats
+ or not.
+
+ Calling ``heartbeat_check`` on a transport that does
+ not support heartbeats results in a noop operation.
+
+- SQS: Fixed bug with invalid characters in queue names.
+
+ Fix contributed by Zach Smith.
+
+- utils.reprcall: Fixed typo where kwargs argument was an empty tuple by
+ default, and not an empty dict.
+
+.. _version-2.2.6:
+
+2.2.6
+=====
+:release-date: 2012-07-10 17:00 P.M BST
+
+- Adds ``messaging.entry_to_queue`` for compat with previous versions.
+
.. _version-2.2.5:
2.2.5
View
@@ -2,7 +2,7 @@
kombu - Messaging Framework for Python
========================================
-:Version: 2.2.5
+:Version: 2.4.3
`Kombu` is a messaging framework for Python.
View
@@ -22,10 +22,12 @@
kombu.transport
kombu.transport.amqplib
kombu.transport.librabbitmq
+ kombu.transport.pyamqp
kombu.transport.pika
kombu.transport.pika2
kombu.transport.memory
kombu.transport.redis
+ kombu.transport.zmq
kombu.transport.beanstalk
kombu.transport.mongodb
kombu.transport.couchdb
@@ -0,0 +1,36 @@
+.. currentmodule:: kombu.transport.pyamqp
+
+.. automodule:: kombu.transport.pyamqp
+
+ .. contents::
+ :local:
+
+ Transport
+ ---------
+
+ .. autoclass:: Transport
+ :members:
+ :undoc-members:
+
+ Connection
+ ----------
+
+ .. autoclass:: Connection
+ :members:
+ :undoc-members:
+ :inherited-members:
+
+ Channel
+ -------
+
+ .. autoclass:: Channel
+ :members:
+ :undoc-members:
+
+ Message
+ -------
+
+ .. autoclass:: Message
+ :members:
+ :undoc-members:
+
@@ -0,0 +1,9 @@
+.. currentmodule:: kombu.transport.zmq
+
+.. automodule:: kombu.transport.zmq
+
+ .. contents::
+ :local:
+
+ :members:
+ :undoc-members:
@@ -44,6 +44,10 @@ Each option has its advantages and disadvantages.
smaller messages when sending binary files, and a slight speedup
over `JSON` processing.
+ By default Kombu uses pickle protocol 2, but this can be changed
+ using the :envvar:`PICKLE_PROTOCOL` environment variable or by changing
+ the global :data:`kombu.serialization.pickle_protocol` flag.
+
`yaml` -- YAML has many of the same characteristics as `json`,
except that it natively supports more data types (including dates,
recursive references, etc.)
@@ -0,0 +1,6 @@
+from funtests import transport
+
+
+class test_pyamqp(transport.TransportCase):
+ transport = "pyamqp"
+ prefix = "pyamqp"
View
@@ -1,7 +1,7 @@
"""Messaging Framework for Python"""
from __future__ import absolute_import
-VERSION = (2, 2, 5)
+VERSION = (2, 4, 3)
__version__ = '.'.join(map(str, VERSION[0:3])) + ''.join(VERSION[3:])
__author__ = 'Ask Solem'
__contact__ = 'ask@celeryproject.org'
View
@@ -11,7 +11,7 @@
from __future__ import absolute_import
from __future__ import with_statement
-from threading import Lock
+import threading
__all__ = ['LamportClock']
@@ -57,7 +57,7 @@ class LamportClock(object):
def __init__(self, initial_value=0):
self.value = initial_value
- self.mutex = Lock()
+ self.mutex = threading.Lock()
def adjust(self, other):
with self.mutex:
View
@@ -19,6 +19,9 @@
__all__ = ['Publisher', 'Consumer']
+# XXX compat attribute
+entry_to_queue = Queue.from_dict
+
def _iterconsume(connection, consumer, no_ack=False, limit=None):
consumer.consume(no_ack=no_ack)
View
@@ -38,7 +38,7 @@ def register(encoder, decoder, content_type, aliases=[]):
def encoders():
"""Returns a list of available compression methods."""
- return _encoders.keys()
+ return list(_encoders)
def get_encoder(t):
Oops, something went wrong.

0 comments on commit f1fe4e6

Please sign in to comment.