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.
Files changed (76) hide show
  1. django_queuebie-0.3.3/.ambient-package-update/templates/snippets/tagline.tpl +1 -0
  2. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.github/workflows/ci.yml +2 -4
  3. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.pre-commit-config.yaml +3 -3
  4. django_queuebie-0.3.3/CHANGES.md +19 -0
  5. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/PKG-INFO +4 -4
  6. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/README.md +1 -1
  7. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/pyproject.toml +2 -2
  8. django_queuebie-0.3.3/queuebie/__init__.py +8 -0
  9. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/commands/testapp.py +11 -1
  10. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_registry.py +14 -0
  11. django_queuebie-0.3.0/.ambient-package-update/templates/snippets/tagline.tpl +0 -1
  12. django_queuebie-0.3.0/CHANGES.md +0 -10
  13. django_queuebie-0.3.0/queuebie/__init__.py +0 -8
  14. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.ambient-package-update/metadata.py +0 -0
  15. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.ambient-package-update/templates/snippets/content.tpl +0 -0
  16. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.editorconfig +0 -0
  17. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.gitignore +0 -0
  18. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/.readthedocs.yaml +0 -0
  19. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/LICENSE +0 -0
  20. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/LICENSE.md +0 -0
  21. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/MANIFEST.in +0 -0
  22. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/SECURITY.md +0 -0
  23. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/Makefile +0 -0
  24. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/conf.py +0 -0
  25. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/changelog.rst +0 -0
  26. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/getting-started.md +0 -0
  27. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/introduction.md +0 -0
  28. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/motivation.md +0 -0
  29. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/settings.md +0 -0
  30. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/features/setup.md +0 -0
  31. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/index.rst +0 -0
  32. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/docs/make.bat +0 -0
  33. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/manage.py +0 -0
  34. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/apps.py +0 -0
  35. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/database_blocker.py +0 -0
  36. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/exceptions.py +0 -0
  37. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/logger.py +0 -0
  38. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/management/__init__.py +0 -0
  39. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/management/commands/__init__.py +0 -0
  40. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/management/commands/clear_queuebie_registry.py +0 -0
  41. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/messages.py +0 -0
  42. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/registry.py +0 -0
  43. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/runner.py +0 -0
  44. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/settings.py +0 -0
  45. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/queuebie/utils.py +0 -0
  46. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/unix/install_requirements.sh +0 -0
  47. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/unix/publish_to_pypi.sh +0 -0
  48. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/windows/install_requirements.ps1 +0 -0
  49. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/scripts/windows/publish_to_pypi.ps1 +0 -0
  50. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/settings.py +0 -0
  51. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/__init__.py +0 -0
  52. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/__init__.py +0 -0
  53. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/commands/__init__.py +0 -0
  54. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/events/__init__.py +0 -0
  55. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/handlers/events/testapp.py +0 -0
  56. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/__init__.py +0 -0
  57. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/commands/__init__.py +0 -0
  58. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/commands/my_commands.py +0 -0
  59. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/commands/other_commands.py +0 -0
  60. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/events/__init__.py +0 -0
  61. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/messages/events/my_events.py +0 -0
  62. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/testapp/urls.py +0 -0
  63. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/__init__.py +0 -0
  64. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/helpers/__init__.py +0 -0
  65. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/helpers/commands.py +0 -0
  66. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/helpers/events.py +0 -0
  67. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/management_commands/__init__.py +0 -0
  68. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/management_commands/test_clear_queuebie_registry.py +0 -0
  69. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_apps.py +0 -0
  70. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_database_blocker.py +0 -0
  71. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_exceptions.py +0 -0
  72. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_logger.py +0 -0
  73. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_messages.py +0 -0
  74. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_runner.py +0 -0
  75. {django_queuebie-0.3.0 → django_queuebie-0.3.3}/tests/test_settings.py +0 -0
  76. {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', '50', '51', ]
33
+ django-version: ['42', '51', '52', ]
34
34
 
35
35
  exclude:
36
36
  - python-version: '3.9'
37
- django-version: 50
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.9.3
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==24.10.0
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.22.2
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.0
4
- Summary: Simple message queue for commands and events (CQRS)
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
  [![Coding Style](https://img.shields.io/badge/code%20style-Ruff-000000.svg)](https://github.com/astral-sh/ruff)
50
50
  [![Documentation Status](https://readthedocs.org/projects/django-queuebie/badge/?version=latest)](https://django-queuebie.readthedocs.io/en/latest/?badge=latest)
51
51
 
52
- A simple message queue for commands and events (CQRS) for Django.
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
  [![Coding Style](https://img.shields.io/badge/code%20style-Ruff-000000.svg)](https://github.com/astral-sh/ruff)
6
6
  [![Documentation Status](https://readthedocs.org/projects/django-queuebie/badge/?version=latest)](https://django-queuebie.readthedocs.io/en/latest/?badge=latest)
7
7
 
8
- A simple message queue for commands and events (CQRS) for Django.
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
@@ -0,0 +1,8 @@
1
+ """A simple and synchronous message queue for commands and events for Django"""
2
+
3
+ __version__ = "0.3.3"
4
+
5
+ from queuebie.registry import MessageRegistry
6
+
7
+ # Initialise global message registry
8
+ message_registry = MessageRegistry()
@@ -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 handle_something_that_needs_persistance(*, context: PersistSomething) -> Event:
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.
@@ -1,10 +0,0 @@
1
- # Changelog
2
-
3
- * *0.3.0* (2025-03-19)
4
- * The whole queue iteration now is wrapped in a transaction atomic
5
-
6
- * *0.2.0* (2025-03-17)
7
- * Extend strict mode to prohibit event (!) handlers to talk to the database
8
-
9
- * *0.1.0* (2025-01-29)
10
- * Project init
@@ -1,8 +0,0 @@
1
- """Simple message queue for commands and events (CQRS)"""
2
-
3
- __version__ = "0.3.0"
4
-
5
- from queuebie.registry import MessageRegistry
6
-
7
- # Create global message registry
8
- message_registry = MessageRegistry()
File without changes