summaryrefslogtreecommitdiff
path: root/kombu
Commit message (Collapse)AuthorAgeFilesLines
* Allowing `Connection.ensure()` to retry on specific exceptions given by ↵Tomer Nosrati2022-12-181-1/+18
| | | | | | | | | policy (#1629) * Added unit test: test_ensure_retry_errors_is_not_looping_infinitely() * Added unit test: test_ensure_retry_errors_is_limited_by_max_retries() * Added retry_errors arg to Connection.ensure() to allow applying retry policy for specific errors additionally
* Bump version: 5.3.0b1 → 5.3.0b2v5.3.0b2Asif Saif Uddin2022-10-191-1/+1
|
* Allow azurestoragequeues transport to be used with Azurite emulator in ↵David Bossanyi2022-10-161-1/+8
| | | | | | | | | | | | | | | docker-compose (#1611) * Parse credential as a dict when using Azurite emulator This more flexible credential allows the use of Azurite for integration testing in local docker-compose configurations. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix some lint errors Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix errors from flake8 lintMarti Raudsepp2022-10-121-2/+2
| | | | | Python's `del` is a statement, not a function, and doesn't need parenthesis.
* Add separate transport option for retry loop timeout (#1599)Marti Raudsepp2022-10-121-1/+4
| | | | | | | | | | | | | | | | | | | | | * Add separate transport option for retry loop timeout This only applies when using `Connect.default_channel`. Before this change, the retry loop timeout was set equal to TCP connect timeout (`connect_timeout`), meaning when first connection attempt timeouted, no retry would be attempted. Now if a new transport option `connect_total_timeout` is provided, this overrides `connect_timeout` for the retry loop (but not for TCP connect). * Add tests * Fix isort * Rename to connect_retry_timeout * Reformat * connect_retry_timeout -> connect_retries_timeout * Fix flake8
* importlib_metadata remove deprecated entry point interfaces (#1601)woutdenolf2022-10-091-1/+6
| | | | | * importlib_metadata removed deprecated entry point interfaces * importlib-metadata usage requires 3.6
* Solve Kombu filesystem transport not thread safekarajan10012022-09-231-30/+34
| | | | | | partly fix: #398 1. add exclusive lock during the whole exchange file update. 2. add some unit test for file lock
* Make JSONEncoder keep the same type for date/datetime.Manuel Vázquez Acosta2022-09-211-1/+6
| | | | | | | Otherwise Celery jobs start to get `datetime` in place of `date` and that could lead to errors. See https://github.com/celery/celery/issues/7754, related PR #1515.
* Revert "Solve Kombu filesystem transport not thread safe (#1593)" (#1595)Gao2022-09-091-59/+28
| | | This reverts commit 8699920e050727d385a6d5a19c939e55a86688d6.
* Solve Kombu filesystem transport not thread safe (#1593)Gao2022-09-071-28/+59
| | | | | | | | | | | | | | * Solve Kombu filesystem transport not thread safe fix: #398 Currently only write lock used in msg/exchange file written. Cause reading in other thread got some incomplete result. 1. Add timeout for the lock acquire. 2. Add Share locks when reading message from filesystem. 3. Add a unit test for the `lock` and `unlock` 4. Add a unit test to test the lock during message processing. * Replace deprecated function.
* Fix incompatibility with redis in disconnect() (#1589)Shalabh Chaturvedi2022-08-251-2/+2
| | | | | * Accept *args in disconnect() * Add test for redis connection timeout error
* hub: tick delay fix (#1587)Shahar Lev2022-08-241-3/+4
| | | | | | | | | | | | | | | | | | | | | * hub: tick delay fix todo and timer callbacks can perform actions that require a tick callback to be executed right away without polling. the current order can cause issues when using single worker with no prefetch (acks late). related issue in celery: https://github.com/celery/celery/issues/7718 * add unit test for hub delay fix * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix: save QueueProperties to _queue_name_cache instead of QueueClientdavidbossanyi2022-08-211-1/+1
|
* Bump version: 5.3.0a1 → 5.3.0b1v5.3.0b1Asif Saif Uddin2022-08-011-1/+1
|
* Avoid losing type of UUID when serializing/deserializing (#1575)Carlos Gottberg2022-07-171-1/+5
| | | | | | | | | | | | | | | | | | | | | * Avoid losing type of UUID when serializing/deserializing Serializing UUIDs as strs and deserializing them as strs can lead to somewhat obscure bugs such as the one that led to the creation of this PR in django-cacheback https://github.com/codeinthehole/django-cacheback/pull/100 which some would call unexpected behaviour. After all, an UUID is altogether a different type from strs and if bytes got their own serializer/deserializer for UUID the same logic should apply. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update documentation for JSON serialization Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add WATCH to prefixed complex commandsDan Cecile2022-07-141-0/+1
|
* Add support to SQS DelaySeconds (#1567)eloranger2022-07-121-11/+16
| | | | | | | | | | | | | * Add DelaySeconds to kwargs * Add test * add default value for DelaySeconds * Fix tests and add check for properties * Fix flake8 style issue Co-authored-by: Edmund Lam <2623895+edmundlam@users.noreply.github.com>
* Bump version: 5.2.4 → 5.3.0a1v5.3.0a1Asif Saif Uddin2022-06-291-1/+1
|
* fix typing flake8 (#1560)Asif Saif Uddin2022-06-211-1/+1
| | | | | | | | | | | * fix typing flake8 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove unused imports Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* [pre-commit.ci] auto fixes from pre-commit.com hookspre-commit-ci[bot]2022-06-191-1/+1
| | | | for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hookspre-commit-ci[bot]2022-06-191-4/+4
| | | | for more information, see https://pre-commit.ci
* Annotate `matcher.py` (#1532)Marcelo Trylesinski2022-06-031-11/+20
|
* Datetime serialization and deserialization fixed (#1515)dobosevych2022-05-311-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Datetime serialization and deserialization fixed * Unit test fixed * Unit test fixed * Fixed pylint * Added Undocumented Autodoc Modules * Update kombu/utils/json.py Co-authored-by: Omer Katz <omer.katz@omerkatz.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Clean and freeze now * Clean and freeze now * Clean and freeze now * Clean and freeze now Co-authored-by: Asif Saif Uddin <auvipy@gmail.com> Co-authored-by: Omer Katz <omer.katz@omerkatz.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Annotate `abstract.py` (#1522)Marcelo Trylesinski2022-05-152-22/+52
| | | | | | | | | | | | | | | | | | | * Annotate `abstract.py` * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * apply pre-commit * Use quotes * Add typing_extensions as requirement * Add quotes * Add quotes Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Added HLEN to the list of prefixed redis commands (#1540)vinay karanam2022-04-281-0/+1
|
* Upgrade Azure Storage Queues transport to version 12 (#1539)Jonas Miederer2022-04-231-26/+70
| | | | | | | | | | | | | | | | * updated azurestoragequeues transport for azure-storage-queues v12 + added basic tests * fixed flake8 issues * pinned azure-storage-queue lib to >= v12.0.0 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * azure-storage-queue>=12.2.0 Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
* Kafka support (#1506)CountRedClaw2022-04-212-0/+380
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add kafka support * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix checks * Fix checks * Update kombu/transport/confluentkafka.py Co-authored-by: Asif Saif Uddin <auvipy@gmail.com> * Add customization ability * Add docs * Fix pypi integration tests * Fix pydocstyle * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Cleanup * Disable PyPy tests * Fix tests * Add docs Co-authored-by: ilbo0518 <ilia.borsuk@netcracker.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
* Annotate `exceptions.py` and `clocks.py` (#1526)Marcelo Trylesinski2022-04-182-17/+38
| | | | | * Annotate `exceptions.py` * Annotate `clocks.py`
* Support pymongo 4.x (#1536)Jakub Pieńkowski2022-04-181-30/+44
| | | | | | | | | | | * Support pymongo 4.x * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix problems detected by CI Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* json.py cleaning from outdated libs (#1533)dobosevych2022-04-161-16/+5
| | | | | | | | | | | | * json.py cleaning from outdated libs * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * 1. Removed cjson and simplejson from documentation, as those libraries aren't supported anymore 2. Removed _json_extra_kwargs from json.py Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Bump pyupgrade version and add __future__.annotations importMarcelo Trylesinski2022-04-1574-83/+230
|
* Annotate init files (#1527)Marcelo Trylesinski2022-04-147-21/+41
| | | | | * Annotate init files * Fix fmatch_best annotation
* chore: Update `__exit__` signaturesSondre Lillebø Gundersen2022-04-129-13/+106
| | | | Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Annotate `utils/uuid.py` and `utils/text.py` (#1514)Marcelo Trylesinski2022-04-122-14/+16
| | | | | | | * Annotate `utils/uuid.py` and `utils/text.py` * Use callable without any parameter * Update kombu/utils/text.py
* Added possibility to serialize and deserialize binary messages in json (#1516)dobosevych2022-04-121-2/+20
| | | | | | | | | | | | | | | | | * Added possibility to serialize and deserialize binary messages in json * Flake8 fixed * Hypothesis added to improve test range. Fixed issue b'\x80' serialization. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Added docstring * Fixed pylint Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore: Annotate semaphore.pySondre Lillebø Gundersen2022-04-121-12/+35
| | | | Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Add `mypy` to the pipeline (#1512)Marcelo Trylesinski2022-04-091-4/+2
| | | | | | | | | * Add `mypy` to the pipeline * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Use new entry_points interfaceKeoni Garner2022-04-071-1/+5
|
* Protect set of ready tasks by lock to avoid concurrent updates. (#1489)Oliver Nemček2022-03-241-5/+12
| | | | | | | | | | When there is no locking then there is a possibility that multiple threads manipulate with the same object at the same time. The issue is manifested as: ``` RuntimeError: Set changed size during iteration ``` See: https://github.com/celery/celery/issues/7162
* Add fanout to filesystem (#1499)Gao2022-03-151-1/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Create a folder for each queue when using filesystem transport and add fanout support * clean up unused variables * Add fanout support to filesystem transport filesystem transport lacks of fanout support. 1. Add fanout support to filesystem transport. 2. Add a unit test for it. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Remove the refactoring work and make the test passed 1. Remove all of refactoring work 2. make the test pass * Use pathlib for some Path operation * Some reviewed changes Co-authored-by: Yuriy Halytskyy <y.halytskyy@auckland.ac.nz> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Bump version: 5.2.3 → 5.2.4v5.2.4Asif Saif Uddin2022-03-061-1/+1
|
* Fix SQS extract_task_name message referenceMateusz Marczak2022-03-041-2/+2
|
* Add an option to not base64-encode SQS messages.Shane Hathaway2022-03-041-14/+18
| | | | | Also simplify the base64 decoding logic so that we don't have to run base64 decoding twice for every message.
* Added global_keyprefix support for pubsub clients (#1495)vinay karanam2022-02-281-2/+60
| | | | | * Added global_keyprefix support for pubsub clients * Added test cases
* All supported versions of Python define __package__.Mads Jensen2022-02-021-7/+1
| | | | | https://www.python.org/dev/peps/pep-0366/ lists Python 2.6 and 3.0 as the minimum requirements for this attribute. sys.__dict__ contains it.
* Warn about missing hostname only when default one is available (#1488)Michael Manganiello2022-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Warn about missing hostname only when default one is available The `No hostname was supplied` warning is affecting projects that use AWS SQS (as detailed in #1357), as a hostname is not required when setting up the broker URL. Instead, the official documentation [0] specifies that the valid broker URL formats are: * `sqs://` * `sqs://aws_access_key_id:aws_secret_access_key@` With these formats, the `kombu.utils.url.parse_url` util doesn't return a hostname, and workers end up triggering the following warning: > No hostname was supplied. Reverting to default 'None' As the SQS transport doesn't provide a default value for hostname, this diff changes the behavior to only warn the user when the hostname hasn't been supplied but a default one is being set by the default connection parameters for the defined transport. Fixes #1357. [0] https://docs.celeryproject.org/en/stable/getting-started/backends-and-brokers/sqs.html#configuration * Use caplog default logging level of WARNING
* Remove use of OrderedDict in various places (#1483)Mads Jensen2022-01-303-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | * Remove use of OrderedDict in Connection.info. * Remove remnant use of collections.OrderedDict * Undo QoS._delivered move to Python standard dictionary. This requires more work to convert, due to a hack in how the dictionary is used. * Undo LRUCache.data to dict conversion. It's also problematic, and caused tests to fail. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Revert QoS._delivered comment chagne. * Update comment Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Some small updates (#1486)Mads Jensen2022-01-303-8/+5
| | | | | * Some small updates * Update QpidException super-call to Python 3 syntax.
* Set redelivered property for Celery with Redis (#1484)Denis Kubashevskiy2022-01-281-0/+1
| | | | | | | | | * Set redelivered property for Celery with Redis Fixed setting `redelivered` value for Celery when Redis broker is used. * Add `test_do_restore_message_celery` test * Fix long line
* The times of retrying is not correctmasterLemon Shi2022-01-221-1/+1
| | | | The times of retrying was 'max_retries' plus 1 which is fixed now.