Kombu

Latest version: v5.5.0

Safety actively analyzes 714919 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 27 of 30

1.3.0

Not secure
=====
:release-date: 2011-10-05 01:00 P.M BST
:release-by: Ask Solem

* Broker connection info can be now be specified using URLs

The broker hostname can now be given as a URL instead, of the format:

.. code-block:: text

transport://user:passwordhostname:port/virtual_host

for example the default broker is expressed as:

.. code-block:: pycon

>>> Connection('amqp://guest:guestlocalhost:5672//')

Transport defaults to amqp, and is not required.
user, password, port and virtual_host is also not mandatory and
will default to the corresponding transports default.

.. note::

Note that the path component (virtual_host) always starts with a
forward-slash. This is necessary to distinguish between the virtual
host '' (empty) and '/', which are both acceptable virtual host names.

A virtual host of '/' becomes::

.. code-block:: text

amqp://guest:guestlocalhost:5672//

and a virtual host of '' (empty) becomes:

.. code-block:: text

amqp://guest:guestlocalhost:5672/

So the leading slash in the path component is **always required**.

* Now comes with default global connection and producer pools.

The acquire a connection using the connection parameters
from a :class:`Connection`:

.. code-block:: pycon

>>> from kombu import Connection, connections
>>> connection = Connection('amqp://guest:guestlocalhost//')
>>> with connections[connection].acquire(block=True):
... do something with connection

To acquire a producer using the connection parameters
from a :class:`Connection`:

.. code-block:: pycon

>>> from kombu import Connection, producers
>>> connection = Connection('amqp://guest:guestlocalhost//')
>>> with producers[connection].acquire(block=True):
... producer.publish({'hello': 'world'}, exchange='hello')

Acquiring a producer will in turn also acquire a connection
from the associated pool in ``connections``, so you the number
of producers is bound the same limit as number of connections.

The default limit of 100 connections per connection instance
can be changed by doing:

.. code-block:: pycon

>>> from kombu import pools
>>> pools.set_limit(10)

The pool can also be forcefully closed by doing:

.. code-block:: pycon

>>> from kombu import pools
>>> pool.reset()

* SQS Transport: Persistence using SimpleDB is now disabled by default,
after reports of unstable SimpleDB connections leading to errors.

* :class:`Producer` can now be used as a context manager.

* ``Producer.__exit__`` now properly calls ``release`` instead of close.

The previous behavior would lead to a memory leak when using
the :class:`kombu.pools.ProducerPool`

* Now silences all exceptions from `import ctypes` to match behaviour
of the standard Python uuid module, and avoid passing on MemoryError
exceptions on SELinux-enabled systems (Issue 52 + Issue 53)

* ``amqp`` is now an alias to the ``amqplib`` transport.

* ``kombu.syn.detect_environment`` now returns 'default', 'eventlet', or
'gevent' depending on what monkey patches have been installed.

* Serialization registry has new attribute ``type_to_name`` so it is
possible to lookup serializater name by content type.

* Exchange argument to ``Producer.publish`` can now be an :class:`Exchange`
instance.

* ``compat.Publisher`` now supports the ``channel`` keyword argument.

* Acking a message on some transports could lead to :exc:`KeyError` being
raised (Issue 57).

* Connection pool: Connections are no long instantiated when the pool is
created, but instantiated as needed instead.

* Tests now pass on PyPy.

* ``Connection.as_uri`` now includes the password if the keyword argument
``include_password`` is set.

* Virtual transports now comes with a default ``default_connection_params``
attribute.

.. _version-1.2.1:

1.2.1

Not secure
=====
:release-date: 2011-07-29 12:52 P.M BST
:release-by: Ask Solem

* Now depends on amqplib >= 1.0.0.

* Redis: Now automatically deletes auto_delete queues at ``basic_cancel``.

* ``serialization.unregister`` added so it is possible to remove unwanted
seralizers.

* Fixes MemoryError while importing ctypes on SELinux (Issue 52).

* ``Connection.autoretry`` is a version of ``ensure`` that works
with arbitrary functions (i.e. it does not need an associated object
that implements the ``revive`` method.

Example usage:

.. code-block:: python

channel = connection.channel()
try:
ret, channel = connection.autoretry(send_messages, channel=channel)
finally:
channel.close()

* ``ConnectionPool.acquire`` no longer force establishes the connection.

The connection will be established as needed.

* ``Connection.ensure`` now supports an ``on_revive`` callback
that is applied whenever the connection is re-established.

* ``Consumer.consuming_from(queue)`` returns True if the Consumer is
consuming from ``queue``.

* ``Consumer.cancel_by_queue`` did not remove the queue from ``queues``.

* ``compat.ConsumerSet.add_queue_from_dict`` now automatically declared
the queue if ``auto_declare`` set.

.. _version-1.2.0:

1.2.0

Not secure
=====
:release-date: 2011-07-15 12:00 P.M BST
:release-by: Ask Solem

* Virtual: Fixes cyclic reference in Channel.close (Issue 49).

* Producer.publish: Can now set additional properties using keyword
arguments (Issue 48).

* Adds Queue.no_ack option to control the no_ack option for individual queues.

* Recent versions broke pylibrabbitmq support.

* SimpleQueue and SimpleBuffer can now be used as contexts.

* Test requirements specifies PyYAML==3.09 as 3.10 dropped Python 2.4 support

* Now properly reports default values in Connection.info/.as_uri

.. _version-1.1.6:

1.1.6

Not secure
=====
:release-date: 2011-06-13 04:00 P.M BST
:release-by: Ask Solem

* Redis: Fixes issue introduced in 1.1.4, where a redis connection
failure could leave consumer hanging forever.

* SQS: Now supports fanout messaging by using SimpleDB to store routing
tables.

This can be disabled by setting the `supports_fanout` transport option:

>>> Connection(transport='SQS',
... transport_options={'supports_fanout': False})

* SQS: Now properly deletes a message when a message is acked.

* SQS: Can now set the Amazon AWS region, by using the ``region``
transport option.

* amqplib: Now uses `localhost` as default hostname instead of raising an
error.

.. _version-1.1.5:

1.1.5

Not secure
=====
:release-date: 2011-06-07 06:00 P.M BST
:release-by: Ask Solem

* Fixes compatibility with redis-py 2.4.4.

.. _version-1.1.4:

1.1.4

Not secure
=====
:release-date: 2011-06-07 04:00 P.M BST
:release-by: Ask Solem

* Redis transport: Now requires redis-py version 2.4.4 or later.

* New Amazon SQS transport added.

Usage:

>>> conn = Connection(transport='SQS',
... userid=aws_access_key_id,
... password=aws_secret_access_key)

The environment variables :envvar:`AWS_ACCESS_KEY_ID` and
:envvar:`AWS_SECRET_ACCESS_KEY` are also supported.

* librabbitmq transport: Fixes default credentials support.

* amqplib transport: Now supports `login_method` for SSL auth.

:class:`Connection` now supports the `login_method`
keyword argument.

Default `login_method` is ``AMQPLAIN``.

.. _version-1.1.3:

Page 27 of 30

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.