- update to version 3.0.24:
- The `Qpid <http://qpid.apache.org/>`_ broker is supported for Python 2.x
environments. The Qpid transport includes full SSL support within Kombu. See
the :mod:`kombu.transport.qpid` docs for more info.
- Dependencies: extra[librabbitmq] now requires librabbitmq 1.6.0
- Docstrings for :class:`~kombu.utils.limit.TokenBucket` did not match
implementation.
- :func:`~kombu.common.oid_from` accidentally called ``uuid.getnode()`` but
did not use the return value.
- Redis: Now ignores errors when cosing the underlying connection.
- Redis: Restoring messages will now use a single connection.
- ``kombu.five.monotonic``: Can now be imported even if ctypes is not
available for some reason (e.g. App Engine)
- Documentation: Improved example to use the ``declare`` argument to
``Producer`` (Issue #423).
- Django: Fixed ``app_label`` for older Django versions (``< 1.7``).
(Issue #414).
- fixed python-amqp BuildRequire
OBS-URL: https://build.opensuse.org/request/show/262477
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=103
- update to 3.0.16:
- ``kombu[librabbitmq]`` now depends on librabbitmq 1.5.1.
- Tests: Some unit tests accidentally required the `redis-py` library.
- librabbitmq: Would crash when using an older version of :mod:`librabbitmq`,
now emits warning instead.
- remove kombu-fix-redis-tests.patch: Fixed differently upstream
- add kombu-fix-redis-tests.patch
* Add skip_if_no_module decorator
- update to 3.0.15:
* Now depends on :mod:`amqp` 1.4.5.
* RabbitMQ 3.3 changes QoS semantics (Issue #339).
* Users of :mod:`librabbitmq` is encouraged to upgrade to librabbitmq 1.5.0.
* Pools: Now takes transport options into account when comparing connections
(Issue #333).
* MongoDB: Fixes Python 3 compatibility.
* Async: select: Ignore socket errors when attempting to unregister handles
from the loop.
* Pidbox: Can now be configured to use a serializer other than json,
but specifying a serializer argument to :class:`~kombu.pidbox.Mailbox`.
* Message decompression now works with Python 3.
- update to 3.0.14:
* **MongoDB**: Now endures a connection failover (Issue #123).
* **MongoDB**: Fixed ``KeyError`` when a replica set member is removed.
* **MongoDB**: Fixed MongoDB broadcast cursor re-initialization bug.
* **Async**: Fixed bug in lax semaphore implementation where in
some usage patterns the limit was not honored correctly.
* **Redis**: Fixed problem with fanout when using Python 3 (Issue #324).
* **Redis**: Fixed ``AttributeError`` from attempting to close a non-existing
OBS-URL: https://build.opensuse.org/request/show/235453
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=97
- update to 3.0.10:
* Now depends on amqp 1.4.1.
* maybe_declare now raises a “recoverable connection error”
if the channel is disconnected
* Redis: Consumer.cancel() is now thread safe.
* Fixed “unhashable type” error on Python 3
* Do not attempt to unregister operations on an already closed
poller instance
- update to 3.0.9:
- Now depends on :mod:`amqp` 1.4.0.
- Redis: Basic cancel for fanout based queues now sends a corresponding
``UNSUBSCRIBE`` command to the server.
- MongoDB: Improved connection string and options handling
(Issue #266 + Issue #120).
- SQS: Limit the number of messages when receiving in batch to 10.
- ConsumerMixin: ``consume`` now checks heartbeat every time the
socket times out.
- Retry Policy: A max retries of 0 did not retry forever.
- Simple: If passing a Queue object the simple utils will now take
default routing key from that queue.
- Redis: The map of Redis error classes are now exposed at the module level
using the :func:`kombu.transport.redis.get_redis_error_classes` function.
- Async: ``Hub.close`` now sets ``.poller`` to None.
OBS-URL: https://build.opensuse.org/request/show/214588
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=93
- update to 3.0.8:
- Redis: Would attempt to read from the wrong connection if a select/epoll/kqueue
exception event happened.
- Redis: Disabling ack emulation now works properly.
- Redis: :exc:`IOError` and :exc:`OSError` are now treated as recoverable
connection errors.
- SQS: Improved performance by reading messages in bulk.
- Connection Pool: Attempting to acquire from a closed pool will now
- Changes from 3.0.7:
- Fixes Python 2.6 compatibility.
- Redis: Fixes 'bad file descriptor' issue.
OBS-URL: https://build.opensuse.org/request/show/213834
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=92
- Don't require python-msgpack-python for testing until issues are fixed.
It's an optional feature anyway
- Expanded test coverage
- Don't require python-msgpack-python for testing until issues are fixed.
It's an optional feature anyway
- Drop link to python3-kombu, it's not really support Py3K ATM
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=84
Kombu 3 consumers will no longer accept pickle/yaml or msgpack
by default, and you will have to explicitly enable untrusted deserializers
either globally using kombu.enable_insecure_serializers, or
using the accept argument to kombu.Consumer.
- New utility function to disable/enable untrusted serializers.
- kombu.disable_insecure_serializers
- kombu.enable_insecure_serializers
- Consumer: `accept` can now be used to specify a whitelist
of content types to accept.
If the accept whitelist is set and a message is received
with a content type that is not in the whitelist then a
:exc:`~kombu.exceptions.ContentDisallowed` exception
is raised. Note that this error can be handled by the already
existing `on_decode_error` callback
Examples:
Consumer(accept=['application/json'])
Consumer(accept=['pickle', 'json'])
- Now depends on amqp 1.0.11
- pidbox: Mailbox now supports the `accept` argument.
- Redis: More friendly error for when keys are missing.
- Connection URLs: The parser did not work well when there were
multiple '+' tokens.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=76
- Pidbox: Now warns if there are multiple nodes consuming from
the same pidbox.
- Adds Queue.on_declared <kombu.Queue.on_declared>
A callback to be called when the queue is declared,
with signature (name, messages, consumers).
- Now uses fuzzy matching to suggest alternatives to typos in transport
names.
- SQS: Adds new transport option queue_prefix.
Contributed by j0hnsmith.
- pyamqp: No longer overrides verify_connection.
- SQS: Now specifies the driver_type and driver_name
attributes.
Fix contributed by Mher Movsisyan.
- Fixed bug with kombu.utils.retry_over_time when no errback
specified.
- Update to 2.5.9:
- Pidbox: Now warns if there are multiple nodes consuming from
the same pidbox.
- Adds Queue.on_declared <kombu.Queue.on_declared>
A callback to be called when the queue is declared,
with signature (name, messages, consumers).
- Now uses fuzzy matching to suggest alternatives to typos in transport
names.
- SQS: Adds new transport option queue_prefix.
Contributed by j0hnsmith.
- pyamqp: No longer overrides verify_connection.
- SQS: Now specifies the driver_type and driver_name
attributes.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=75
- Now depends on amqp 1.0.10 which fixes a Python 3 compatibility
error.
- Redis: Fixed a possible race condition (Issue #171).
- Redis: Ack emulation/visibility_timeout can now be disabled
using a transport option.
Ack emulation adds quite a lot of overhead to ensure data is safe
even in the event of an unclean shutdown. If data loss do not worry
you there is now an `ack_emulation` transport option you can use
to disable it:
Connection('redis://', transport_options={'ack_emulation': False})
- SQS: Fixed boto v2.7 compatibility (Issue #207).
- Exchange: Should not try to re-declare default exchange ("")
(Issue #209).
- SQS: Long polling is now disabled by default as it was not
implemented correctly, resulting in long delays between receiving
messages (Issue #202).
- Fixed Python 2.6 incompatibility depending on exc.errno
being available.
Fix contributed by Ephemera.
- Update to 2.5.8:
- Now depends on amqp 1.0.10 which fixes a Python 3 compatibility
error.
- Redis: Fixed a possible race condition (Issue #171).
- Redis: Ack emulation/visibility_timeout can now be disabled
using a transport option.
Ack emulation adds quite a lot of overhead to ensure data is safe
even in the event of an unclean shutdown. If data loss do not worry
you there is now an `ack_emulation` transport option you can use
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=74
- Now depends on amqp 1.0.9
- Redis: A regression in 2.5.6 caused the redis transport to
ignore options set in transport_options.
- Redis: New socket_timeout transport option.
- Redis: InconsistencyError is now regarded as a recoverable error.
- Resource pools: Will no longer attempt to release resource
that was never acquired.
- MongoDB: Now supports the ssl option.
Contributed by Sebastian Pawlus.
- Update to 2.5.7:
- Now depends on amqp 1.0.9
- Redis: A regression in 2.5.6 caused the redis transport to
ignore options set in transport_options.
- Redis: New socket_timeout transport option.
- Redis: InconsistencyError is now regarded as a recoverable error.
- Resource pools: Will no longer attempt to release resource
that was never acquired.
- MongoDB: Now supports the ssl option.
Contributed by Sebastian Pawlus.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=73
SQS: Now supports long polling (Issue #176).
The polling interval default has been changed to 0 and a new
transport option (wait_time_seconds) has been added.
This parameter specifies how long to wait for a message from
SQS, and defaults to 20 seconds, which is the maximum
value currently allowed by Amazon SQS.
Contributed by James Saryerwinnie.
- SQS: Now removes unpickleable fields before restoring messages.
- Consumer.__exit__ now ignores exceptions occurring while
cancelling the consumer.
- Virtual: Routing keys can now consist of characters also used
in regular expressions (e.g. parens) (Issue #194).
- Virtual: Fixed compression header when restoring messages.
Fix contributed by Alex Koshelev.
- Virtual: ack/reject/requeue now works while using basic_get.
- Virtual: Message.reject is now supported by virtual transports
(requeue depends on individual transport support).
- Fixed typo in hack used for static analyzers.
Fix contributed by Basil Mironenko.
- Update to 2.5.5:
SQS: Now supports long polling (Issue #176).
The polling interval default has been changed to 0 and a new
transport option (wait_time_seconds) has been added.
This parameter specifies how long to wait for a message from
SQS, and defaults to 20 seconds, which is the maximum
value currently allowed by Amazon SQS.
Contributed by James Saryerwinnie.
- SQS: Now removes unpickleable fields before restoring messages.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=70
- Pidbox: Fixed compatibility with Python 2.6
- Aditional changes from 2.5.2:
- [Redis] Fixed connection leak and added a new 'max_connections'
transport option.
- Aditional changes from 2.5.1
- Fixed bug where return value of Queue.as_dict could not be
serialized with JSON (Issue #177).
- Aditional changes from 2.5.0
- py-amqp is now the new default transport, replacing amqplib.
The new py-amqp library is a fork of amqplib started with the
following goals:
- Uses AMQP 0.9.1 instead of 0.8
- Support for heartbeats (Issue #79 + Issue #131)
- Automatically revives channels on channel errors.
- Support for all RabbitMQ extensions
- Consumer Cancel Notifications (Issue #131)
- Publisher Confirms (Issue #131).
- Exchange-to-exchange bindings: exchange_bind /
exchange_unbind.
- API compatible with librabbitmq so that it can be used
as a pure-python replacement in environments where rabbitmq-c
cannot be compiled. librabbitmq will be updated to support
all the same features as py-amqp.
- Support for using multiple connection URL's for failover.
The first argument to kombu.Connection can now be a list of connection
URLs:
Connection(['amqp://foo', 'amqp://bar'])
or it can be a single string argument with several URLs separated by
semicolon:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=60
- Redis: Fixed race condition that could occur while trying to
restore messages (Issue #171).
Fix contributed by Ollie Walsh.
- Redis: Each channel is now using a specific connection pool
instance, which is disconnected on connection failure.
- ProducerPool: Fixed possible dead-lock in the acquire method.
- ProducerPool: force_close_all no longer tries to call the
non-existent Producer._close.
- librabbitmq: Now implements transport.verify_connection so
that connection pools will not give back connections that are
no longer working.
- New and better repr() for Queue and Exchange objects.
- Python3: Fixed problem with running the unit test suite.
- Python3: Fixed problem with JSON codec.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=57
- Redis: Fair queue cyle implementation improved (Issue #166).
Contributed by Kevin McCarthy.
- Redis: Number of messages to restore in one iteration is now
unlimited, but can be configured using the unacked_restore_limit
transport option.
- Redis: A Redis based mutex is now used while restoring messages.
- LamportClock.adjust now returns the new clock value.
- Heartbeats can now be specified in URLs.
Fix contributed by Mher Movsisyan.
- Kombu can now be used with PyDev, PyCharm and other static
analysis tools.
- Fixes problem with msgpack on Python 3 (Issue #162).
Fix contributed by Jasper Bryant-Greene
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=56
- Virtual: Unknown exchanges now default to 'direct' when sending
a message.
- MongoDB: Fixed memory leak when merging keys stored in the db
(Issue #159)
Fix contributed by Michael Korbakov.
- MongoDB: Better index for MongoDB transport (Issue #158).
This improvement will create a new compund index for queue and
_id in order to be able to use both indexed fields for getting
a new message (using queue field) and sorting by _id. It'll be
necessary to manually delete the old index from the collection.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=55