redis-message-queue 8.2.0__tar.gz → 8.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. redis_message_queue-8.2.1/.gitignore +158 -0
  2. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/PKG-INFO +16 -20
  3. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/README.md +7 -7
  4. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/pyproject.toml +56 -17
  5. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/LICENSE +0 -0
  6. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/__init__.py +0 -0
  7. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_abstract_redis_gateway.py +0 -0
  8. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_callable_utils.py +0 -0
  9. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_config.py +0 -0
  10. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_event.py +0 -0
  11. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_exceptions.py +0 -0
  12. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_payload_limits.py +0 -0
  13. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_queue_key_manager.py +0 -0
  14. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_redis_cluster.py +0 -0
  15. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_redis_gateway.py +0 -0
  16. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/_stored_message.py +0 -0
  17. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/asyncio/__init__.py +0 -0
  18. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/asyncio/_abstract_redis_gateway.py +0 -0
  19. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/asyncio/_redis_gateway.py +0 -0
  20. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/asyncio/redis_message_queue.py +0 -0
  21. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/interrupt_handler/__init__.py +0 -0
  22. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/interrupt_handler/_event_driven.py +0 -0
  23. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/interrupt_handler/_implementation.py +0 -0
  24. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/interrupt_handler/_interface.py +0 -0
  25. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/py.typed +0 -0
  26. {redis_message_queue-8.2.0 → redis_message_queue-8.2.1}/redis_message_queue/redis_message_queue.py +0 -0
@@ -0,0 +1,158 @@
1
+ .DS_Store
2
+
3
+ # Claude Code
4
+ .claude/
5
+
6
+ # Byte-compiled / optimized / DLL files
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # C extensions
12
+ *.so
13
+
14
+ # Distribution / packaging
15
+ .Python
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ share/python-wheels/
29
+ *.egg-info/
30
+ .installed.cfg
31
+ *.egg
32
+ MANIFEST
33
+
34
+ # PyInstaller
35
+ # Usually these files are written by a python script from a template
36
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
37
+ *.manifest
38
+ *.spec
39
+
40
+ # Installer logs
41
+ pip-log.txt
42
+ pip-delete-this-directory.txt
43
+
44
+ # Unit test / coverage reports
45
+ htmlcov/
46
+ .tox/
47
+ .nox/
48
+ .coverage
49
+ .coverage.*
50
+ .cache
51
+ nosetests.xml
52
+ coverage.xml
53
+ *.cover
54
+ *.py,cover
55
+ .hypothesis/
56
+ .pytest_cache/
57
+ cover/
58
+
59
+ # Translations
60
+ *.mo
61
+ *.pot
62
+
63
+ # Django stuff:
64
+ *.log
65
+ local_settings.py
66
+ db.sqlite3
67
+ db.sqlite3-journal
68
+
69
+ # Flask stuff:
70
+ instance/
71
+ .webassets-cache
72
+
73
+ # Scrapy stuff:
74
+ .scrapy
75
+
76
+ # Sphinx documentation
77
+ docs/_build/
78
+
79
+ # PyBuilder
80
+ .pybuilder/
81
+ target/
82
+
83
+ # Jupyter Notebook
84
+ .ipynb_checkpoints
85
+
86
+ # IPython
87
+ profile_default/
88
+ ipython_config.py
89
+
90
+ # pyenv
91
+ # For a library or package, you might want to ignore these files since the code is
92
+ # intended to run in multiple environments; otherwise, check them in:
93
+ # .python-version
94
+
95
+ # pipenv
96
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
97
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
98
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
99
+ # install all needed dependencies.
100
+ #Pipfile.lock
101
+
102
+ # pdm
103
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
104
+ #pdm.lock
105
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
106
+ # in version control.
107
+ # https://pdm.fming.dev/#use-with-ide
108
+ .pdm.toml
109
+
110
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
111
+ __pypackages__/
112
+
113
+ # Celery stuff
114
+ celerybeat-schedule
115
+ celerybeat.pid
116
+
117
+ # SageMath parsed files
118
+ *.sage.py
119
+
120
+ # Environments
121
+ .env
122
+ .venv
123
+ env/
124
+ venv/
125
+ ENV/
126
+ env.bak/
127
+ venv.bak/
128
+
129
+ # Spyder project settings
130
+ .spyderproject
131
+ .spyproject
132
+
133
+ # Rope project settings
134
+ .ropeproject
135
+
136
+ # mkdocs documentation
137
+ /site
138
+
139
+ # mypy
140
+ .mypy_cache/
141
+ .dmypy.json
142
+ dmypy.json
143
+
144
+ # Pyre type checker
145
+ .pyre/
146
+
147
+ # pytype static type analyzer
148
+ .pytype/
149
+
150
+ # Cython debug symbols
151
+ cython_debug/
152
+
153
+ # PyCharm
154
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
155
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
156
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
157
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
158
+ #.idea/
@@ -1,32 +1,29 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redis-message-queue
3
- Version: 8.2.0
3
+ Version: 8.2.1
4
4
  Summary: Python message queuing with Redis and message deduplication
5
+ Project-URL: Homepage, https://github.com/Elijas/redis-message-queue
6
+ Project-URL: Repository, https://github.com/Elijas/redis-message-queue
7
+ Project-URL: Issues, https://github.com/Elijas/redis-message-queue/issues
8
+ Author-email: Elijas <4084885+Elijas@users.noreply.github.com>
5
9
  License: MIT
6
10
  License-File: LICENSE
7
- Keywords: redis,message-queue,deduplication,task-queue
8
- Author: Elijas
9
- Author-email: 4084885+Elijas@users.noreply.github.com
10
- Requires-Python: >=3.12,<4.0
11
+ Keywords: deduplication,message-queue,redis,task-queue
11
12
  Classifier: Development Status :: 5 - Production/Stable
12
13
  Classifier: Intended Audience :: Developers
13
14
  Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Programming Language :: Python :: 3
15
15
  Classifier: Programming Language :: Python :: 3.12
16
16
  Classifier: Programming Language :: Python :: 3.13
17
- Classifier: Programming Language :: Python :: 3.14
18
17
  Classifier: Topic :: Software Development :: Libraries
19
18
  Classifier: Topic :: System :: Distributed Computing
20
- Requires-Dist: redis (>=5.0.0,<8.0.0)
21
- Requires-Dist: tenacity (>=8.1.0)
22
- Project-URL: Homepage, https://github.com/Elijas/redis-message-queue
23
- Project-URL: Issues, https://github.com/Elijas/redis-message-queue/issues
24
- Project-URL: Repository, https://github.com/Elijas/redis-message-queue
19
+ Requires-Python: <4.0,>=3.12
20
+ Requires-Dist: redis<8.0.0,>=5.0.1
21
+ Requires-Dist: tenacity>=8.1.0
25
22
  Description-Content-Type: text/markdown
26
23
 
27
24
  # redis-message-queue
28
25
 
29
- [![PyPI Version](https://img.shields.io/badge/v8.0.1-version?color=43cd0f&style=flat&label=pypi)](https://pypi.org/project/redis-message-queue)
26
+ [![PyPI Version](https://img.shields.io/pypi/v/redis-message-queue?color=43cd0f&style=flat&label=pypi)](https://pypi.org/project/redis-message-queue)
30
27
  [![PyPI Downloads](https://img.shields.io/pypi/dm/redis-message-queue?color=43cd0f&style=flat&label=downloads)](https://pypistats.org/packages/redis-message-queue)
31
28
  [![License: MIT](https://img.shields.io/badge/License-MIT-43cd0f.svg?style=flat&label=license)](LICENSE)
32
29
  [![Maintained: yes](https://img.shields.io/badge/yes-43cd0f.svg?style=flat&label=maintained)](https://github.com/Elijas/redis-message-queue/issues)
@@ -37,7 +34,7 @@ Description-Content-Type: text/markdown
37
34
  **Lightweight Python message queuing with Redis and built-in publish-side deduplication.** Deduplicate publishes within a TTL window, with optional crash recovery — across any number of producers and consumers.
38
35
 
39
36
  ```bash
40
- pip install "redis-message-queue>=8.0.0,<9.0.0"
37
+ pip install "redis-message-queue>=8.2.1,<9.0.0"
41
38
  ```
42
39
 
43
40
  Requires Redis server >= 6.2.
@@ -1090,14 +1087,13 @@ Try the [examples](https://github.com/Elijas/redis-message-queue/tree/main/examp
1090
1087
 
1091
1088
  ```bash
1092
1089
  # Two publishers
1093
- poetry run python -m examples.send_messages
1094
- poetry run python -m examples.send_messages
1090
+ uv run python -m examples.send_messages
1091
+ uv run python -m examples.send_messages
1095
1092
 
1096
1093
  # Three consumers
1097
- poetry run python -m examples.receive_messages
1098
- poetry run python -m examples.receive_messages
1099
- poetry run python -m examples.receive_messages
1094
+ uv run python -m examples.receive_messages
1095
+ uv run python -m examples.receive_messages
1096
+ uv run python -m examples.receive_messages
1100
1097
  ```
1101
1098
 
1102
1099
  ![GitHub Repo stars](https://img.shields.io/github/stars/elijas/redis-message-queue?style=flat&color=fcfcfc&labelColor=white&logo=github&logoColor=black&label=stars)
1103
-
@@ -1,6 +1,6 @@
1
1
  # redis-message-queue
2
2
 
3
- [![PyPI Version](https://img.shields.io/badge/v8.0.1-version?color=43cd0f&style=flat&label=pypi)](https://pypi.org/project/redis-message-queue)
3
+ [![PyPI Version](https://img.shields.io/pypi/v/redis-message-queue?color=43cd0f&style=flat&label=pypi)](https://pypi.org/project/redis-message-queue)
4
4
  [![PyPI Downloads](https://img.shields.io/pypi/dm/redis-message-queue?color=43cd0f&style=flat&label=downloads)](https://pypistats.org/packages/redis-message-queue)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-43cd0f.svg?style=flat&label=license)](LICENSE)
6
6
  [![Maintained: yes](https://img.shields.io/badge/yes-43cd0f.svg?style=flat&label=maintained)](https://github.com/Elijas/redis-message-queue/issues)
@@ -11,7 +11,7 @@
11
11
  **Lightweight Python message queuing with Redis and built-in publish-side deduplication.** Deduplicate publishes within a TTL window, with optional crash recovery — across any number of producers and consumers.
12
12
 
13
13
  ```bash
14
- pip install "redis-message-queue>=8.0.0,<9.0.0"
14
+ pip install "redis-message-queue>=8.2.1,<9.0.0"
15
15
  ```
16
16
 
17
17
  Requires Redis server >= 6.2.
@@ -1064,13 +1064,13 @@ Try the [examples](https://github.com/Elijas/redis-message-queue/tree/main/examp
1064
1064
 
1065
1065
  ```bash
1066
1066
  # Two publishers
1067
- poetry run python -m examples.send_messages
1068
- poetry run python -m examples.send_messages
1067
+ uv run python -m examples.send_messages
1068
+ uv run python -m examples.send_messages
1069
1069
 
1070
1070
  # Three consumers
1071
- poetry run python -m examples.receive_messages
1072
- poetry run python -m examples.receive_messages
1073
- poetry run python -m examples.receive_messages
1071
+ uv run python -m examples.receive_messages
1072
+ uv run python -m examples.receive_messages
1073
+ uv run python -m examples.receive_messages
1074
1074
  ```
1075
1075
 
1076
1076
  ![GitHub Repo stars](https://img.shields.io/github/stars/elijas/redis-message-queue?style=flat&color=fcfcfc&labelColor=white&logo=github&logoColor=black&label=stars)
@@ -1,11 +1,11 @@
1
- [tool.poetry]
1
+ [project]
2
2
  name = "redis-message-queue"
3
- version = "8.2.0"
3
+ version = "8.2.1"
4
4
  description = "Python message queuing with Redis and message deduplication"
5
- authors = ["Elijas <4084885+Elijas@users.noreply.github.com>"]
5
+ authors = [{ name = "Elijas", email = "4084885+Elijas@users.noreply.github.com" }]
6
6
  readme = "README.md"
7
- license = "MIT"
8
- include = ["redis_message_queue/py.typed"]
7
+ license = { text = "MIT" }
8
+ license-files = ["LICENSE"]
9
9
  keywords = ["redis", "message-queue", "deduplication", "task-queue"]
10
10
  classifiers = [
11
11
  "Development Status :: 5 - Production/Stable",
@@ -16,26 +16,65 @@ classifiers = [
16
16
  "Topic :: Software Development :: Libraries",
17
17
  "Topic :: System :: Distributed Computing",
18
18
  ]
19
+ requires-python = ">=3.12,<4.0"
20
+ dependencies = [
21
+ "redis>=5.0.1,<8.0.0",
22
+ "tenacity>=8.1.0",
23
+ ]
19
24
 
20
- [tool.poetry.urls]
25
+ [project.urls]
21
26
  Homepage = "https://github.com/Elijas/redis-message-queue"
22
27
  Repository = "https://github.com/Elijas/redis-message-queue"
23
28
  Issues = "https://github.com/Elijas/redis-message-queue/issues"
24
29
 
25
- [tool.poetry.dependencies]
26
- python = "^3.12"
27
- redis = ">=5.0.0,<8.0.0"
28
- tenacity = ">=8.1.0"
30
+ [dependency-groups]
31
+ dev = [
32
+ "bump-my-version>=1.1.2",
33
+ "mypy",
34
+ "ruff",
35
+ ]
36
+ test = [
37
+ "fakeredis[lua]",
38
+ "pytest",
39
+ "pytest-asyncio",
40
+ "pytest-cov",
41
+ ]
42
+
43
+ [tool.uv]
44
+ default-groups = ["dev", "test"]
45
+
46
+ ##############################
47
+ ### BUMP VERSION
48
+ ##############################
29
49
 
30
- [tool.poetry.group.test.dependencies]
31
- pytest = "*"
32
- pytest-asyncio = "*"
33
- pytest-cov = "*"
34
- fakeredis = {version = "*", extras = ["lua"]}
50
+ [tool.bumpversion]
51
+ current_version = "8.2.1"
52
+ parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
53
+ serialize = ["{major}.{minor}.{patch}"]
54
+ search = "{current_version}"
55
+ replace = "{new_version}"
56
+ regex = false
57
+ ignore_missing_version = false
58
+ ignore_missing_files = false
59
+ tag = false
60
+ sign_tags = false
61
+ tag_name = "v{new_version}"
62
+ tag_message = "Bump version: {current_version} -> {new_version}"
63
+ allow_dirty = true
64
+ commit = true
65
+ message = "chore(release): bump version from {current_version} to {new_version}"
66
+ moveable_tags = []
67
+ commit_args = ""
68
+ setup_hooks = []
69
+ pre_commit_hooks = []
70
+ post_commit_hooks = []
35
71
 
36
72
  [build-system]
37
- requires = ["poetry-core"]
38
- build-backend = "poetry.core.masonry.api"
73
+ requires = ["hatchling"]
74
+ build-backend = "hatchling.build"
75
+
76
+ [tool.hatch.build]
77
+ packages = ["redis_message_queue"]
39
78
 
40
79
  [tool.ruff]
41
80
  target-version = "py312"