- update to 5.4.2:
* Fixed issue with SQS #2113
* tzdata is required for machines without IANA database
* blacksmith.sh: Migrate workflows to Blacksmith
* Revert "Validate SQS SSL certs by default"
- update to 5.4.1:
* Update mypy to 1.11.2
* SQS: Fixes#2091 queue_delete() method doesn't actually
delete the queue
* Validate SQS SSL certs by default
* Resolving TypeError, during version unpacking
* Revert: allow users to disable broker heartbeats by not
providing a timeout
- update to 5.4.0:
* fix: Fanout exchange messages mixed across virtual databases
in Redis sentinel
* Pin pymongo to latest version 4.7.2
* enable/fix test_etcd.py (resolves#2001)
* Limit requests<2.32.0 due to docker-py issue 3256
* enhance: allow users to disable broker heartbeats
* enhance: allow uses to disable broker heartbeats by not
providing a timeout
* chore(typing): annotate `utils/debug.py`
* ConnectionPool can't be used after .resize(..., reset=True)
(resolves#2018)
* Fix Redis connections after reconnect - consumer starts
consuming the tasks after crash.
* Add support for mongodb+srv scheme
* Reverted limiting requests<2.32.0 in requirements/default.txt
but kept in tox.ini due to docker-py issue 3256
OBS-URL: https://build.opensuse.org/request/show/1205381
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=84
* Fixed issue with SQS #2113
* tzdata is required for machines without IANA database
* blacksmith.sh: Migrate workflows to Blacksmith
* Revert "Validate SQS SSL certs by default"
- update to 5.4.1:
* Update mypy to 1.11.2
* SQS: Fixes#2091 queue_delete() method doesn't actually
delete the queue
* Validate SQS SSL certs by default
* Resolving TypeError, during version unpacking
* Revert: allow users to disable broker heartbeats by not
providing a timeout
- update to 5.4.0:
* fix: Fanout exchange messages mixed across virtual databases
in Redis sentinel
* Pin pymongo to latest version 4.7.2
* enable/fix test_etcd.py (resolves#2001)
* Limit requests<2.32.0 due to docker-py issue 3256
* enhance: allow users to disable broker heartbeats
* enhance: allow uses to disable broker heartbeats by not
providing a timeout
* chore(typing): annotate `utils/debug.py`
* ConnectionPool can't be used after .resize(..., reset=True)
(resolves#2018)
* Fix Redis connections after reconnect - consumer starts
consuming the tasks after crash.
* Add support for mongodb+srv scheme
* Reverted limiting requests<2.32.0 in requirements/default.txt
but kept in tox.ini due to docker-py issue 3256
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=186
- update to 5.3.6:
* boto3>=1.26.143
* Always convert azureservicebus namespace to fully qualified
* Pin pytest-sugar to latest version 1.0.0
* Upgrade to pytest v8 that removed nose compatibility
* fix warning for usage of utcfromtimestamp
* Update pytest to 8.0.2
* Hotfix: Fix CI failures (limit redis to <5.0.2 instead of
* Expose cancel callback from py-amqp channel.basic_consume
* Update mypy to 1.9.0
* Update pytest to 8.1.1
* Pin hypothesis to hypothesis<7
* redis>=4.5.2,<5.0.2,!=4.5.5 -> redis>=4.5.2,!=5.0.2,!=4.5.5
* add escape hatch for custom JSON serialization
* Pin pytest-cov to latest version 5.0.0
* Added Changelog for v5.3.6
OBS-URL: https://build.opensuse.org/request/show/1164300
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=82
* boto3>=1.26.143
* Always convert azureservicebus namespace to fully qualified
* Pin pytest-sugar to latest version 1.0.0
* Upgrade to pytest v8 that removed nose compatibility
* fix warning for usage of utcfromtimestamp
* Update pytest to 8.0.2
* Hotfix: Fix CI failures (limit redis to <5.0.2 instead of
* Expose cancel callback from py-amqp channel.basic_consume
* Update mypy to 1.9.0
* Update pytest to 8.1.1
* Pin hypothesis to hypothesis<7
* redis>=4.5.2,<5.0.2,!=4.5.5 -> redis>=4.5.2,!=5.0.2,!=4.5.5
* add escape hatch for custom JSON serialization
* Pin pytest-cov to latest version 5.0.0
* Added Changelog for v5.3.6
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=182
- update to 5.3.5:
* Fix ReadTheDocs CI
* fix(docs): add Redis to the list of transports where SSL is
supported
* Fixed Improper Method Call: Replaced `mktemp`
* fix: freeze set during ticks iter in async hub
* azure service bus: fix TypeError when using Managed
Identities
* Fix unacknowledge typo in restore_visible()
* Changed pyup -> dependabot for updating dependencies
* Fix crash when using global_keyprefix with a sentinel
connection
- update to 5.3.4:
* Use the correct protocol for SQS requests
- update to 5.3.3:
* Update redis.txt to align with celery main
* Handle Access Denied Exception in basic_ack Method
* fix azure servicebus using managed identity support
* Added as_uri method to MongoDB transport - Fixes#1795
* Revert "[fix#1726] Use boto3 for SQS async requests"
* Create a lock on cached_property if not present
* added Python 3.12 in the CI
* using assert_called_once() in est__pop_ready_uses_lock
* fix: redis requeue concurrency bug #1800
- update to 5.3.2:
* Reverted unwanted constraint introduced in #1629 with
max_retries
* Doc fix (hotfix for #1755)
* Python3.12: fix imports in kombu/utils/objects.py
* [fix#1726] Use boto3 for SQS async requests
OBS-URL: https://build.opensuse.org/request/show/1143296
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=80
* Fix ReadTheDocs CI
* fix(docs): add Redis to the list of transports where SSL is
supported
* Fixed Improper Method Call: Replaced `mktemp`
* fix: freeze set during ticks iter in async hub
* azure service bus: fix TypeError when using Managed
Identities
* Fix unacknowledge typo in restore_visible()
* Changed pyup -> dependabot for updating dependencies
* Fix crash when using global_keyprefix with a sentinel
connection
- update to 5.3.4:
* Use the correct protocol for SQS requests
- update to 5.3.3:
* Update redis.txt to align with celery main
* Handle Access Denied Exception in basic_ack Method
* fix azure servicebus using managed identity support
* Added as_uri method to MongoDB transport - Fixes#1795
* Revert "[fix#1726] Use boto3 for SQS async requests"
* Create a lock on cached_property if not present
* added Python 3.12 in the CI
* using assert_called_once() in est__pop_ready_uses_lock
* fix: redis requeue concurrency bug #1800
- update to 5.3.2:
* Reverted unwanted constraint introduced in #1629 with
max_retries
* Doc fix (hotfix for #1755)
* Python3.12: fix imports in kombu/utils/objects.py
* [fix#1726] Use boto3 for SQS async requests
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=178
- update to 5.2.4:
* allow getting recoverable_connection_errors without an active transport
* [pre-commit.ci] pre-commit autoupdate
* prevent KeyError: 'purelib'
* Revert "try pining setuptools (#1466)"
* Fix issue #789: Async http code not allowing for proxy config
* The times of retrying is not correct
* Set redelivered property for Celery with Redis
* Some small updates
* Remove use of OrderedDict in various places
* Warn about missing hostname only when default one is available
* All supported versions of Python define package.
* Added global_keyprefix support for pubsub clients
* try pytest 7
* Add an option to not base64-encode SQS messages.
* SQS: Fix message arg in backoff policy
OBS-URL: https://build.opensuse.org/request/show/963484
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=75
* allow getting recoverable_connection_errors without an active transport
* [pre-commit.ci] pre-commit autoupdate
* prevent KeyError: 'purelib'
* Revert "try pining setuptools (#1466)"
* Fix issue #789: Async http code not allowing for proxy config
* The times of retrying is not correct
* Set redelivered property for Celery with Redis
* Some small updates
* Remove use of OrderedDict in various places
* Warn about missing hostname only when default one is available
* All supported versions of Python define package.
* Added global_keyprefix support for pubsub clients
* try pytest 7
* Add an option to not base64-encode SQS messages.
* SQS: Fix message arg in backoff policy
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=168
* Bump required amqp version to 5.0.0.
* Removed kombu.five from the reference documentation since it no longer
exists
* Adjusted the stable documentation's version in Sphinx's configuration
since that was overlooked in the latest release
* BREAKING CHANGE: Dropped support for Python 2 (#1232)
* Add an SQS transport option for custom botocore config (#1219)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=161
- update to 4.6.10:
- set _connection in _ensure_connection (#1205)
- Fix for the issue #1172
- reuse connection [bug fix]
- Prevent failure if AWS creds are not explicitly defined on predefined.
- Raise RecoverableConnectionError in maybe_declare with retry on and.
- possible fix for #1174 .
- Fix: make SQLAlchemy Channel init thread-safe
- Added integration testing infrastructure for RabbitMQ
- Initial redis integration tests implementation
- SQLAlchemy transport: Use Query.with_for_update() instead of deprecated
- Fix Consumer Encoding
- Added Integration tests for direct, topic and fanout exchange types
- Added TTL integration tests
- Added integration tests for priority queues
- fix 100% cpu usage on linux while using sqs
- Modified Mutex to use redis LuaLock implementation
- Fix: eliminate remaining race conditions from SQLAlchemy Channel
- Fix connection imaybe_declare (#1196)
- Fix for issue #1198: Celery crashes in cases where there aren’t enough
- Ensure connection when connecting to broker
- update pyamqp to 2.6 with optional cythonization
OBS-URL: https://build.opensuse.org/request/show/814552
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=68
- set _connection in _ensure_connection (#1205)
- Fix for the issue #1172
- reuse connection [bug fix]
- Prevent failure if AWS creds are not explicitly defined on predefined.
- Raise RecoverableConnectionError in maybe_declare with retry on and.
- possible fix for #1174 .
- Fix: make SQLAlchemy Channel init thread-safe
- Added integration testing infrastructure for RabbitMQ
- Initial redis integration tests implementation
- SQLAlchemy transport: Use Query.with_for_update() instead of deprecated
- Fix Consumer Encoding
- Added Integration tests for direct, topic and fanout exchange types
- Added TTL integration tests
- Added integration tests for priority queues
- fix 100% cpu usage on linux while using sqs
- Modified Mutex to use redis LuaLock implementation
- Fix: eliminate remaining race conditions from SQLAlchemy Channel
- Fix connection imaybe_declare (#1196)
- Fix for issue #1198: Celery crashes in cases where there aren’t enough
- Ensure connection when connecting to broker
- update pyamqp to 2.6 with optional cythonization
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=157
- Update to 4.6.7:
- Use importlib.metadata from the standard library on Python 3.8+ (#1086).
- Add peek lock settings to be changed using transport options (#1119).
- Fix redis health checks (#1122).
- Reset ready before execute callback (#1126).
- Add missing parameter queue_args in kombu.connection.SimpleBuffer (#1128)
- Update to 4.6.6:
- Revert _lookup_direct and related changes of redis.
- Python 3.8 support
- Fix 'NoneType' object has no attribute 'can_read' bug of redis transport
- Issue #1019 Fix redis transport socket timeout
- Add wait timeout settings to receive queue message (#1110)
- Bump py-amqp to 2.5.2
- Remove patches now included upstream:
- python38.patch
OBS-URL: https://build.opensuse.org/request/show/756812
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=149
- Update to 4.6.5:
- Revert _lookup api and correct redis implemetnation.
- Major overhaul of redis test cases by adding more full featured fakeredis module.
- Add more test cases to boost coverage of kombu redis transport.
- Refactor the producer consumer test cases to be based on original mocks and be passing
- Fix lingering line length issue in test.
- Sanitise url when include_password is false
- Pinned pycurl to 7.43.0.2 as it is the latest build with wheels provided
- Bump py-amqp to 2.5.2
- Rebase python38.patch
OBS-URL: https://build.opensuse.org/request/show/736029
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=63
- Revert _lookup api and correct redis implemetnation.
- Major overhaul of redis test cases by adding more full featured fakeredis module.
- Add more test cases to boost coverage of kombu redis transport.
- Refactor the producer consumer test cases to be based on original mocks and be passing
- Fix lingering line length issue in test.
- Sanitise url when include_password is false
- Pinned pycurl to 7.43.0.2 as it is the latest build with wheels provided
- Bump py-amqp to 2.5.2
- Rebase python38.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=147
- Update to 4.6.4:
- Use importlib-metadata instead of pkg_resources for better performance
- Allow users to switch URLs while omitting the resource identifier (#1032)
- Don't stop receiving tasks on 503 SQS error. (#1064)
- Fix maybe declare (#1066)
- Revert "Revert "Use SIMEMBERS instead of SMEMBERS to check for queue (Redis Broker)
- Fix MongoDB backend to work properly with TTL (#1076)
- Make sure that max_retries=0 is treated differently than None (#1080)
- Bump py-amqp to 2.5.1
- Add patch to fix build with py 3.8:
* python38.patch
OBS-URL: https://build.opensuse.org/request/show/730150
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=62
- Use importlib-metadata instead of pkg_resources for better performance
- Allow users to switch URLs while omitting the resource identifier (#1032)
- Don't stop receiving tasks on 503 SQS error. (#1064)
- Fix maybe declare (#1066)
- Revert "Revert "Use SIMEMBERS instead of SMEMBERS to check for queue (Redis Broker)
- Fix MongoDB backend to work properly with TTL (#1076)
- Make sure that max_retries=0 is treated differently than None (#1080)
- Bump py-amqp to 2.5.1
- Add patch to fix build with py 3.8:
* python38.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=145
- version update to 4.4.0
* Restore bz2 import checks in compression module.
* Fix regression that occurred in 4.3.0
when parsing Redis Sentinel master URI containing password.
* Handle the case when only one Redis Sentinel node is provided.
* Support SSL URL parameters correctly for `rediss://`` URIs.
* Revert `celery/kombu#954 <https://github.com/celery/kombu/pull/954>`_.
Instead bump the required redis-py dependency to 3.2.0
to include this fix `andymccurdy/redis-py@4e1e748
* Added support for broadcasting using a regular expression pattern
or a glob pattern to multiple Pidboxes.
OBS-URL: https://build.opensuse.org/request/show/689320
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=135
- Updated to 4.2.1
* The 4.2.0 release contained remains of the ``async`` module by accident.
This is now fixed.
* Handle librabbitmq fileno raising a ValueError when socket is not
connected.
* Now passing ``max_retries``, ``interval_start``,
``interval_step``, ``interval_max`` parameters from broker
``transport_options`` to
:meth:`~kombu.Connection.ensure_connection` when returning
:meth:`~kombu.Connection.default_connection` (Issue #765).
* Qpid: messages are now durable by default
* Kombu now requires version 2.10.4 or greater of the redis
library, in line with Celery
* Fixed ImportError in some environments with outdated simplejson
* MongoDB: fixed failure on MongoDB versions with an "-rc" tag
* Ensure periodic polling frequency does not exceed timeout in
virtual transport
* Fixed string handling when using python-future module
* Replaced "async" with "asynchronous" in preparation for Python
3.7
* Allow removing pool size limit when in use
* Codebase improvements and fixes
* Documentation improvements
- added python as requirement for ssl module is needed by amqp
OBS-URL: https://build.opensuse.org/request/show/629552
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=53
- Now depends on :mod:`amqp` 2.0.
The new py-amqp version have been refactored for better performance,
using modern Python socket conventions, and API consistency.
- No longer depends on :mod:`anyjson`.
Kombu will now only choose between :pypi:`simplejson` and the built-in
:mod:`json`.
- Removed transports that are no longer supported in this version:
- Django ORM transport
- SQLAlchemy ORM transport
- Beanstalk transport
- ZeroMQ transport
- amqplib transport (use pyamqp).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=116
- 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 (forwarded request 235453 from dirkmueller)
OBS-URL: https://build.opensuse.org/request/show/236013
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=39
- 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. (forwarded request 214588 from dirkmueller)
OBS-URL: https://build.opensuse.org/request/show/214649
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=37
- 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. (forwarded request 213834 from dirkmueller)
OBS-URL: https://build.opensuse.org/request/show/213839
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=36
- 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
- Add requirements on Python-2.6 compat modules Python-2.6 for SLES:
+ python-importlib and python-ordereddict
- Update to 2.5.3:
- 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:
OBS-URL: https://build.opensuse.org/request/show/144413
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=20
- 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
- Update to 2.4.2:
- Having an empty transport name broke in 2.4.1.
- Aditional changes from 2.4.1:
- 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=50
- New experimental ZeroMQ 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 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=49
- Fixes problem with deserialization in Python 3.
- Aditional changes from 2.3.1:
- 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=48
- 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 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 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 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),
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=47
- Re-enable testsuite and add it's build-time dependencies
- Update to 2.2.6:
- Adds ``messaging.entry_to_queue`` for compat with previous versions.
- Update to 2.2.5:
- Pidbox: Now sets queue expire at 10 seconds for reply queues.
- EventIO: Now ignores ``ValueError`` raised by epoll unregister.
- MongoDB: Fixes Issue #142
Fix by Flavio Percoco Premoli
- Update to 2.2.4:
- Support for msgpack-python 0.2.0 (Issue #143)
The latest msgpack version no longer supports Python 2.5, so if you're
still using that you need to depend on an earlier msgpack-python version.
Fix contributed by Sebastian Insua
- kombu.common.maybe_declare no longer caches entities with the
auto_delete flag set.
- New experimental filesystem transport.
Contributed by Bobby Beever.
- Virtual Transports: Now support anonymous queues and exchanges.
- Update to 2.2.3:
- BrokerConnection now renamed to Connection.
The name Connection has been an alias for a very long time,
but now the rename is official in the documentation as well.
The Connection alias has been available since version 1.1.3,
and BrokerConnection will still work and is not deprecated.
- Connection.clone() now works for the sqlalchemy transport.
- kombu.common.eventloop, kombu.utils.uuid,
OBS-URL: https://build.opensuse.org/request/show/127657
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-kombu?expand=0&rev=15
+ Adds messaging.entry_to_queue for compat with previous versions.
+ Changes from version 2.2.5:
+ Pidbox: Now sets queue expire at 10 seconds for reply queues.
+ EventIO: Now ignores ValueError raised by epoll unregister.
+ MongoDB: Fixes Issue #142
- Changes from version 2.2.4:
+ Support for msgpack-python 0.2.0 (Issue #143)
+ kombu.common.maybe_declare no longer caches entities with the
auto_delete flag set.
+ New experimental filesystem transport.
+ Virtual Transports: Now support anonymous queues and exchanges.
- retry argument to Producer.publish now works properly,
and only later bound using .revive(channel).
* ProducerPool now takes Producer argument.
* We now patch amqplib's __del__ method to skip trying to close the socket
* The Connection.ensure methods now accepts a max_retries value
A value of 0 now means *do not retry*, which is distinct from :const:None
* SQS Transport: Now has a lowercase sqs alias, so that it can be
This can be disabled by setting the supports_fanout transport option:
* SQS: Can now set the Amazon AWS region, by using the region
* amqplib: Now uses localhost as default hostname instead of raising an
* amqplib transport: Now supports login_method for SSL auth.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=46
- Support for msgpack-python 0.2.0 (Issue #143)
The latest msgpack version no longer supports Python 2.5, so if you're
still using that you need to depend on an earlier msgpack-python version.
Fix contributed by Sebastian Insua
- kombu.common.maybe_declare no longer caches entities with the
auto_delete flag set.
- New experimental filesystem transport.
Contributed by Bobby Beever.
- Virtual Transports: Now support anonymous queues and exchanges.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=43
- BrokerConnection now renamed to Connection.
The name Connection has been an alias for a very long time,
but now the rename is official in the documentation as well.
The Connection alias has been available since version 1.1.3,
and BrokerConnection will still work and is not deprecated.
- Connection.clone() now works for the sqlalchemy transport.
- kombu.common.eventloop, kombu.utils.uuid,
and kombu.utils.url.parse_url can now be
imported from the kombu module directly.
- Pidbox transport callback after_reply_message_received now happens
in a finally block.
- Trying to use the librabbitmq:// transport will now show the right
name in the ImportError if librabbitmq is not installed.
The librabbitmq falls back to the older pylibrabbitmq name for
compatibility reasons and would therefore show No module named
pylibrabbitmq instead of librabbitmq.
- Update to 2.2.2:
- Now depends on anyjson 0.3.3
- Json serializer: Now passes buffer objects directly,
since this is supported in the latest anyjson version.
- Fixes blocking epoll call if timeout was set to 0.
Fix contributed by John Watson.
- setup.py now takes requirements from the requirements/ directory.
- The distribution directory contrib/ is now renamed to extra/
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=42
- SQS: Default visibility timeout is now 30 minutes.
Since we have ack emulation the visibility timeout is
only in effect if the consumer is abrubtly terminated.
- retry argument to ``Producer.publish`` now works properly,
when the declare argument is specified.
- Json serializer: didn't handle buffer objects (Issue #135).
Fix contributed by Jens Hoffrichter.
- Virtual: Now supports passive argument to exchange_declare.
- Exchange & Queue can now be bound to connections (which will use
the default channel):
>>> exchange = Exchange("name")
>>> bound_exchange = exchange(connection)
>>> bound_exchange.declare()
- SimpleQueue & SimpleBuffer can now be bound to connections (which
will use the default channel).
- Connection.manager.get_bindings now works for librabbitmq and pika.
- Adds new transport info attributes:
- Transport.driver_type
Type of underlying driver, e.g. "amqp", "redis", "sql".
- Transport.driver_name
Name of library used e.g. "amqplib", "redis", "pymongo".
- Transport.driver_version()
Version of underlying library.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=41
* Bound Exchange/Queue's are now pickleable.
* Consumer/Producer can now be instantiated without a channel,
and only later bound using ``.revive(channel)``.
* ProducerPool now takes ``Producer`` argument.
* kombu.utils.fxrange now counts forever if the
stop argument is set to None.
(fxrange is like xrange but for decimals).
* Auto delete support for virtual transports were incomplete
and could lead to problems so it was removed.
* Cached declarations (kombu.common.maybe_declare)
are now bound to the underlying connection, so that
entities are redeclared if the connection is lost.
This also means that previously uncacheable entities
(e.g. non-durable) can now be cached.
* compat ConsumerSet: can now specify channel.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=39
* SQLAlchemy transport was not working correctly after URL parser change.
* maybe_declare now stores cached declarations per underlying connection
instead of globally, in the rare case that data disappears from the
broker after connection loss.
* Django: Added South migrations.
Contributed by Joseph Crosland.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=37
* The url parser removed more than the first leading slash (Issue #121).
* SQLAlchemy: Can now specify url using + separator
Example::
BrokerConnection("sqla+mysql://localhost/db")
* Better support for anonymous queues (Issue #116).
Contributed by Michael Barrett.
* Connection.as_uri now quotes url parts (Issue #117).
* Beanstalk: Can now set message TTR as a message property.
Contributed by Andrii Kostenko
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=36
* MongoDB: URL parsing are now delegated to the pymongo library
(Fixes Issue #103 and Issue #87).
Fix contributed by Flavio Percoco Premoli and James Sullivan
* SQS: A bug caused SimpleDB to be used even if sdb persistence
was not enabled (Issue #108).
Fix contributed by Anand Kumria.
* Django: Transaction was committed in the wrong place, causing
data cleanup to fail (Issue #115).
Fix contributed by Daisuke Fujiwara.
* MongoDB: Now supports replica set URLs.
Contributed by Flavio Percoco Premoli.
* Redis: Now raises a channel error if a queue key that is currently
being consumed from disappears.
Fix contributed by Stephan Jaekel.
* All transport 'channel_errors' lists now includes
kombu.exception.StdChannelError.
* All kombu exceptions now inherit from a common
kombu.exceptions.KombuError.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=35
* Connection URLs now supports encoded characters.
* Fixed a case where connection pool could not recover from connection loss.
* We now patch amqplib's ``__del__`` method to skip trying to close the socket
if it is not connected, as this resulted in an annoying warning.
* Compression can now be used with binary message payloads.
- Don't install INSTALL
- Run testsuite
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=28
* MongoDB: Now supports fanout (broadcast) (Issue #98).
Contributed by Scott Lyons.
* pika transport: Now works with pika 0.9.5 and 0.9.6dev.
The old pika transport (supporting 0.5.x) is now available
as alias oldpika.
(Note terribly latency has been experienced with the new pika
versions, so this is still an experimental transport).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=27
Important Notes
- No longer supports Python 2.4.
New Transports
- django-kombu is now part of Kombu core.
- kombu-sqlalchemy is now part of Kombu core.
News
- kombu.mixins.ConsumerMixin is a mixin class that lets you
easily write consumer programs and threads.
- SQS Transport: Added support for SQS queue prefixes (Issue #84).
- Producer.publish now supports automatic retry.
- Producer.publish now supports a declare keyword argument.
Fixes
- Redis transport: Timeout was multiplied by 1000 seconds when
using select for event I/O (Issue #86).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=26
* kombu.pools: Fixed a bug resulting in resources not being properly released.
This was caused by the use of __hash__ to distinguish them.
* Virtual transports: Dead-letter queue is now disabled by default.
The dead-letter queue was enabled by default to help application
authors, but now that Kombu is stable it should be removed.
There are after all many cases where messages should just be dropped
when there are no queues to buffer them, and keeping them without
supporting automatic cleanup is rather considered a resource leak
than a feature.
If wanted the dead-letter queue can still be enabled, by using
the deadletter_queue transport option:
>>> x = BrokerConnection("redis://",
... transport_options={"deadletter_queue": "ae.undeliver"})
In addition, an UndeliverableWarning is now emitted when
the dead-letter queue is enabled and a message ends up there.
* MongoDB transport now supports Replicasets (Issue #81).
* The Connection.ensure`` methods now accepts a max_retries value
of 0.
A value of 0 now means *do not retry*, which is distinct from :const:`None`
which means *retry indefinitely*.
* SQS Transport: Now has a lowercase `sqs alias, so that it can be
used with broker URLs (Issue #82).
* SQS Transport: Fixes KeyError on message acknowledgements (Issue #73).
The SQS transport now uses UUID's for delivery tags, rather than
a counter.
* SQS Transport: Unicode related fixes (Issue #82).
* Redis version check could crash because of improper handling of types
(Issue #63).
* Fixed error with Resource.force_close_all, when resources
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=24
- Eventio: Polling should ignore errno.EINTR
- SQS: str.encode did only start accepting kwargs after Py2.7.
- simple_task_queue example didn’t run correctly (Issue #72).
- Empty messages would not raise an exception not able to be
handled by on_decode_error (Issue #72)
- CouchDB: Properly authenticate if user/password set (Issue #70)
- BrokerConnection.Consumer had the wrong signature.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=21
- Adds module kombu.mixins.
- New example: Task Queue Example
- MongoDB transport did not work with MongoDB >= 2.0 (Issue #66)
- Redis-py version check did not account for beta identifiers in
version string.
- Producer and Consumer now accepts a connection instance as the
first argument.
- BrokerConnection has aquired a connected attribute that can be
used to check if the connection instance has established a
connection.
- ConnectionPool.acquire_channel now returns the connections
default channel rather than establising a new channel that must be manually handled.
- Added kombu.common.maybe_declare
- kombu.compat.entry_to_queue() has been moved to kombu.common
- New module kombu.clocks now contains an implementation of
Lamports logical clock.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=19
* Broke Python 2.5 compatibility by importing parse_qsl from urlparse
* Connection.default_channel is now closed when connection is revived
after connection failures.
* Pika: Channel now supports the connection.client attribute
as required by the simple interface.
* pools.set_limit now raises an exception if the limit is lower
than the previous limit.
* pools.set_limit no longer resets the pools.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=16
* Last release broke after fork for pool reinitialization.
* Producer/Consumer now has a connection attribute,
giving access to the BrokerConnection of the
instance.
* Pika: Channels now have access to the underlying
BrokerConnection instance using channel.connection.client.
This was previously required by the Simple classes and is now
also required by Consumer and Producer.
* Connection.default_channel is now closed at object revival.
* Adds kombu.clocks.LamportClock.
* compat.entry_to_queue has been moved to new module kombu.common.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=15
* Broker connection info can be now be specified using URLs
* Now comes with default global connection and producer pools
* SQS Transport: Persistence using SimpleDB is now disabled by
default, after reports of unstable SimpleDB connections leading
to errors
* Producer can now be used as a context manager
* Producer.__exit__ now properly calls release instead of close
* 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 Exchange
instance
* compat.Publisher now supports the channel keyword argument
* Acking a message on some transports could lead to 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
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=14
* 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).
* BrokerConnection.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.
* ConnectionPool.acquire no longer force establishes the connection.
The connection will be established as needed.
* BrokerConnection.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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=13
* 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
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=12
* 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:
>>> BrokerConnection(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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=11
* Redis: Consuming from multiple connections now works with
Eventlet.
* Redis: Can now perform channel operations while the channel
is in BRPOP/LISTEN mode (Issue #35).
Also the async BRPOP now times out after 1 second, this
means that cancelling consuming from a queue/starting
consuming from additional queues has a latency of up to
one second (BRPOP does not support subsecond timeouts).
* Virtual: Allow channel objects to be closed multiple times
without error.
* amqplib: AttributeError has been added to the list of known
connection related errors (Connection.connection_errors).
* amqplib: Now converts SSLError timeout errors to
socket.timeout (http://bugs.python.org/issue10272)
* Ensures cyclic references are destroyed when the connection
is closed.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=9
* Redis: Fixes serious issue where messages could be lost.
The issue could happen if the message exceeded a certain number
of kilobytes in size.
It is recommended that all users of the Redis transport should
upgrade to this version, even if not currently experiencing any
issues.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=6
* Virtual transports: Message body is now base64 encoded by
default (Issue #27).
This should solve problems sending binary data with virtual
transports.
Message compatibility is handled by adding a body_encoding
property, so messages sent by older versions is compatible
with this release. However – If you are accessing the
messages directly not using Kombu, then you have to respect
the body_encoding property.
For transport authors:
You don’t have to change anything in your custom
transports, as this is handled automatically by the base
class.
If you want to use a different encoder you can do so by
adding a key to Channel.codecs. Default encoding is
specified by the Channel.body_encoding attribute.
A new codec must provide two methods: encode(data) and
decode(data).
* ConnectionPool/ChannelPool/Resource: Setting limit=None
(or 0) now disables pool semantics, and will establish and
close the resource whenever acquired or released.
* ConnectionPool/ChannelPool/Resource: Is now using a LIFO
queue instead of the previous FIFO behavior.
* BrokerConnection: Cloned connections did not inherit
transport_options (__copy__).
* contrib/requirements is now located in the top directory of
the distribution.
* MongoDB: Now supports authentication using the userid and
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=5
* Now depends on anyjson 0.3.1
cjson is no longer a recommended json implementation, and anyjson
will now emit a deprecation warning if used.
* Please note that the Pika backend only works with version 0.5.2.
The latest version (0.9.x) drastically changed API, and it is not
compatible yet.
* on_decode_error is now called for exceptions in message_to_python
(Issue #24).
* Redis: did not respect QoS settings.
* Redis: Creating a connection now ensures the connection is established.
This means BrokerConnection.ensure_connection works properly with
Redis.
* consumer_tag argument to Queue.consume can't be None
(Issue #21).
A None value is now automatically converted to empty string.
An empty string will make the server generate a unique tag.
* BrokerConnection now supports a transport_options argument.
This can be used to pass additional arguments to transports.
* Pika: drain_events raised socket.timeout even if no timeout
set (Issue #8).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=4
- The delivery_mode aliases (persistent/transient) were not
automatically converted to integer, and would cause a crash if
using the amqplib transport.
- Redis: The redis-py InvalidData exception suddenly changed
name to DataError.
- The KOMBU_LOG_DEBUG environment variable can now be set to log
all channel method calls.
- Support for the following environment variables have been added:
- KOMBU_LOG_CHANNEL will wrap channels in an object that logs
every method call.
- KOMBU_LOG_DEBUG both enables channel logging and configures
the root logger to emit messages to standard error.
- Aditional changes from 1.0.5:
- Fixed memory leak when creating virtual channels. All virtual
transports affected (redis, mongodb, memory, django, sqlalchemy,
couchdb, beanstalk).
- Virtual Transports: Fixed potential race condition when acking
messages.
- If you have been affected by this, the error would show itself
as an exception raised by the OrderedDict implementation.
(object no longer exists).
- MongoDB transport requires the findandmodify command only
available in MongoDB 1.3+, so now raises an exception if
connected to an incompatible server version.
- Virtual Transports: basic.cancel should not try to remove
unknown consumer tag.
- Added AUTHORS Changelog FAQ INSTALL README THANKS TODO files
as documentation.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=3
@@ -42,9 +42,9 @@ from kombu.utils.objects import cached_p
--- kombu-5.5.4.orig/kombu/transport/pyro.py
+++ kombu-5.5.4/kombu/transport/pyro.py
@@ -44,9 +44,9 @@ from kombu.utils.objects import cached_p
from . import virtual
try:
- import Pyro4 as pyro
- from Pyro4.errors import NamingError
- from Pyro4.util import SerializerBase
+ from Pyro5.compatibility import Pyro4 as pyro
+ import Pyro5.api as pyro
+ from Pyro5.errors import NamingError
+ from Pyro5.api import SerializerBase
+ from Pyro5.serializers import SerializerBase
except ImportError: # pragma: no cover
pyro = NamingError = SerializerBase = None
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.