django-queuebie 0.3.0__tar.gz → 0.3.3__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.
- django_queuebie-0.3.3/.ambient-package-update/templates/snippets/tagline.tpl +1 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.github/workflows/ci.yml +2 -4
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.pre-commit-config.yaml +3 -3
- django_queuebie-0.3.3/CHANGES.md +19 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/PKG-INFO +4 -4
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/README.md +1 -1
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/pyproject.toml +2 -2
- django_queuebie-0.3.3/queuebie/__init__.py +8 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/commands/testapp.py +11 -1
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_registry.py +14 -0
- django_queuebie-0.3.0/.ambient-package-update/templates/snippets/tagline.tpl +0 -1
- django_queuebie-0.3.0/CHANGES.md +0 -10
- django_queuebie-0.3.0/queuebie/__init__.py +0 -8
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.ambient-package-update/metadata.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.ambient-package-update/templates/snippets/content.tpl +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.editorconfig +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.gitignore +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.readthedocs.yaml +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/LICENSE +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/LICENSE.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/MANIFEST.in +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/SECURITY.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/Makefile +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/conf.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/changelog.rst +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/getting-started.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/introduction.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/motivation.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/settings.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/setup.md +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/index.rst +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/make.bat +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/manage.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/apps.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/database_blocker.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/exceptions.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/logger.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/management/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/management/commands/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/management/commands/clear_queuebie_registry.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/messages.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/registry.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/runner.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/settings.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/utils.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/unix/install_requirements.sh +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/unix/publish_to_pypi.sh +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/windows/install_requirements.ps1 +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/windows/publish_to_pypi.ps1 +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/settings.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/commands/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/events/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/events/testapp.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/commands/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/commands/my_commands.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/commands/other_commands.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/events/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/events/my_events.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/urls.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/helpers/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/helpers/commands.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/helpers/events.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/management_commands/__init__.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/management_commands/test_clear_queuebie_registry.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_apps.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_database_blocker.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_exceptions.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_logger.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_messages.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_runner.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_settings.py +0 -0
- {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
A simple and synchronous message queue for commands and events for Django.
|
|
@@ -30,17 +30,15 @@ jobs:
|
|
|
30
30
|
strategy:
|
|
31
31
|
matrix:
|
|
32
32
|
python-version: ['3.10', '3.11', '3.12', '3.13', ]
|
|
33
|
-
django-version: ['42', '
|
|
33
|
+
django-version: ['42', '51', '52', ]
|
|
34
34
|
|
|
35
35
|
exclude:
|
|
36
36
|
- python-version: '3.9'
|
|
37
|
-
django-version:
|
|
37
|
+
django-version: 52
|
|
38
38
|
- python-version: '3.9'
|
|
39
39
|
django-version: 51
|
|
40
40
|
- python-version: "3.13"
|
|
41
41
|
django-version: 42
|
|
42
|
-
- python-version: "3.13"
|
|
43
|
-
django-version: 50
|
|
44
42
|
|
|
45
43
|
steps:
|
|
46
44
|
- uses: actions/checkout@v4
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
6
|
-
rev: v0.
|
|
6
|
+
rev: v0.11.2
|
|
7
7
|
hooks:
|
|
8
8
|
# Run the Ruff formatter.
|
|
9
9
|
- id: ruff-format
|
|
@@ -16,7 +16,7 @@ repos:
|
|
|
16
16
|
hooks:
|
|
17
17
|
- id: blacken-docs
|
|
18
18
|
additional_dependencies:
|
|
19
|
-
- black==
|
|
19
|
+
- black==25.1.0
|
|
20
20
|
files: '(?:README\.md|\.ambient-package-update\/templates\/snippets\/.*\.tpl|docs\/.*\.(?:md|rst))'
|
|
21
21
|
|
|
22
22
|
- repo: https://github.com/asottile/pyupgrade
|
|
@@ -26,7 +26,7 @@ repos:
|
|
|
26
26
|
args: [ --py310-plus ]
|
|
27
27
|
|
|
28
28
|
- repo: https://github.com/adamchainz/django-upgrade
|
|
29
|
-
rev: 1.
|
|
29
|
+
rev: 1.24.0
|
|
30
30
|
hooks:
|
|
31
31
|
- id: django-upgrade
|
|
32
32
|
args: [--target-version, "4.2"]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
**0.3.3** (2025-04-03)
|
|
4
|
+
* Clarified package tagline
|
|
5
|
+
|
|
6
|
+
**0.3.2** (2025-04-03)
|
|
7
|
+
* Maintenance updates via ambient-package-update
|
|
8
|
+
|
|
9
|
+
* *0.3.1* (2025-03-19)
|
|
10
|
+
* Added a paranoid-ish test to check that the import logic isn't breaking any testing functionality
|
|
11
|
+
|
|
12
|
+
* *0.3.0* (2025-03-19)
|
|
13
|
+
* The whole queue iteration now is wrapped in a transaction atomic
|
|
14
|
+
|
|
15
|
+
* *0.2.0* (2025-03-17)
|
|
16
|
+
* Extend strict mode to prohibit event (!) handlers to talk to the database
|
|
17
|
+
|
|
18
|
+
* *0.1.0* (2025-01-29)
|
|
19
|
+
* Project init
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: django-queuebie
|
|
3
|
-
Version: 0.3.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.3.3
|
|
4
|
+
Summary: A simple and synchronous message queue for commands and events for Django
|
|
5
5
|
Author-email: Ambient Digital <hello@ambient.digital>
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
7
7
|
Classifier: Development Status :: 4 - Beta
|
|
8
8
|
Classifier: Environment :: Web Environment
|
|
9
9
|
Classifier: Framework :: Django
|
|
10
10
|
Classifier: Framework :: Django :: 4.2
|
|
11
|
-
Classifier: Framework :: Django :: 5.0
|
|
12
11
|
Classifier: Framework :: Django :: 5.1
|
|
12
|
+
Classifier: Framework :: Django :: 5.2
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: License :: OSI Approved :: MIT License
|
|
15
15
|
Classifier: Natural Language :: English
|
|
@@ -49,7 +49,7 @@ Provides-Extra: dev
|
|
|
49
49
|
[](https://github.com/astral-sh/ruff)
|
|
50
50
|
[](https://django-queuebie.readthedocs.io/en/latest/?badge=latest)
|
|
51
51
|
|
|
52
|
-
A simple message queue for commands and events
|
|
52
|
+
A simple and synchronous message queue for commands and events for Django.
|
|
53
53
|
|
|
54
54
|
* [PyPI](https://pypi.org/project/django-queuebie/)
|
|
55
55
|
* [GitHub](https://github.com/ambient-innovation/django-queuebie)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/astral-sh/ruff)
|
|
6
6
|
[](https://django-queuebie.readthedocs.io/en/latest/?badge=latest)
|
|
7
7
|
|
|
8
|
-
A simple message queue for commands and events
|
|
8
|
+
A simple and synchronous message queue for commands and events for Django.
|
|
9
9
|
|
|
10
10
|
* [PyPI](https://pypi.org/project/django-queuebie/)
|
|
11
11
|
* [GitHub](https://github.com/ambient-innovation/django-queuebie)
|
|
@@ -13,8 +13,8 @@ classifiers = [
|
|
|
13
13
|
"Environment :: Web Environment",
|
|
14
14
|
"Framework :: Django",
|
|
15
15
|
"Framework :: Django :: 4.2",
|
|
16
|
-
"Framework :: Django :: 5.0",
|
|
17
16
|
"Framework :: Django :: 5.1",
|
|
17
|
+
"Framework :: Django :: 5.2",
|
|
18
18
|
"Intended Audience :: Developers",
|
|
19
19
|
"License :: OSI Approved :: MIT License",
|
|
20
20
|
"Natural Language :: English",
|
|
@@ -202,8 +202,8 @@ legacy_tox_ini = """
|
|
|
202
202
|
# Django deprecation overview: https://www.djangoproject.com/download/
|
|
203
203
|
deps =
|
|
204
204
|
django42: Django==4.2.*
|
|
205
|
-
django50: Django==5.0.*
|
|
206
205
|
django51: Django==5.1.*
|
|
206
|
+
django52: Django==5.2.*
|
|
207
207
|
extras = dev,
|
|
208
208
|
commands =
|
|
209
209
|
coverage run -m pytest --ds settings tests
|
|
@@ -23,7 +23,7 @@ def handle_my_command(*, context: DoSomething) -> list[Event] | Event:
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
@message_registry.register_command(command=PersistSomething)
|
|
26
|
-
def
|
|
26
|
+
def handle_something_that_needs_persistence(*, context: PersistSomething) -> Event:
|
|
27
27
|
User.objects.create(username="testuser" + str(randint(1, 100)))
|
|
28
28
|
|
|
29
29
|
return SomethingHappenedThatWantsToBePersisted(any_var=1)
|
|
@@ -43,3 +43,13 @@ def create_user(context: CreateUser):
|
|
|
43
43
|
@message_registry.register_command(command=RaiseRuntimeError)
|
|
44
44
|
def raise_exception(context: RaiseRuntimeError):
|
|
45
45
|
raise RuntimeError(context.error_msg)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class MyClass:
|
|
49
|
+
"""
|
|
50
|
+
This is a test class since we observed the behaviour that in a similar setup, the "forced"
|
|
51
|
+
import was breaking mocking.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
def process(self):
|
|
55
|
+
return 42
|
|
@@ -9,6 +9,7 @@ from django.test import override_settings
|
|
|
9
9
|
from queuebie import MessageRegistry
|
|
10
10
|
from queuebie.exceptions import RegisterOutOfScopeCommandError
|
|
11
11
|
from queuebie.settings import get_queuebie_cache_key
|
|
12
|
+
from testapp.handlers.commands.testapp import MyClass
|
|
12
13
|
from testapp.messages.commands.my_commands import CriticalCommand, DoSomething
|
|
13
14
|
from testapp.messages.events.my_events import (
|
|
14
15
|
SomethingHappened,
|
|
@@ -191,3 +192,16 @@ def test_message_autodiscover_load_handlers_from_cache_dummy_cache(*args):
|
|
|
191
192
|
|
|
192
193
|
assert len(commands) == 0
|
|
193
194
|
assert len(events) == 0
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
@mock.patch.object(MyClass, "process")
|
|
198
|
+
def test_registry_forced_import_doesnt_break_mocking(mocked_process):
|
|
199
|
+
"""
|
|
200
|
+
This is a test for ensuring that the "forced" import isn't breaking mocking features.
|
|
201
|
+
"""
|
|
202
|
+
|
|
203
|
+
def my_func():
|
|
204
|
+
return MyClass().process()
|
|
205
|
+
|
|
206
|
+
my_func()
|
|
207
|
+
mocked_process.assert_called_once()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
A simple message queue for commands and events (CQRS) for Django.
|
django_queuebie-0.3.0/CHANGES.md
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|