django-queuebie 0.3.4__tar.gz → 0.3.7__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 (79) hide show
  1. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.ambient-package-update/metadata.py +1 -0
  2. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.github/workflows/ci.yml +11 -9
  3. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.gitignore +4 -2
  4. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.pre-commit-config.yaml +6 -6
  5. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.readthedocs.yaml +1 -1
  6. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/CHANGES.md +9 -0
  7. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/CONTRIBUTING.md +4 -6
  8. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/PKG-INFO +80 -48
  9. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/README.md +37 -25
  10. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/conf.py +0 -1
  11. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/manage.py +1 -1
  12. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/pyproject.toml +49 -39
  13. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/__init__.py +1 -1
  14. django_queuebie-0.3.7/scripts/unix/install_requirements.sh +3 -0
  15. django_queuebie-0.3.7/scripts/unix/publish_to_pypi.sh +4 -0
  16. django_queuebie-0.3.7/scripts/windows/install_requirements.ps1 +2 -0
  17. django_queuebie-0.3.7/scripts/windows/publish_to_pypi.ps1 +3 -0
  18. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_database_blocker.py +1 -1
  19. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_registry.py +4 -3
  20. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_runner.py +3 -4
  21. django_queuebie-0.3.7/uv.lock +996 -0
  22. django_queuebie-0.3.4/scripts/unix/install_requirements.sh +0 -4
  23. django_queuebie-0.3.4/scripts/unix/publish_to_pypi.sh +0 -3
  24. django_queuebie-0.3.4/scripts/windows/install_requirements.ps1 +0 -3
  25. django_queuebie-0.3.4/scripts/windows/publish_to_pypi.ps1 +0 -2
  26. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.ambient-package-update/templates/snippets/content.tpl +0 -0
  27. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.ambient-package-update/templates/snippets/tagline.tpl +0 -0
  28. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/.editorconfig +0 -0
  29. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/LICENSE +0 -0
  30. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/LICENSE.md +0 -0
  31. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/MANIFEST.in +0 -0
  32. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/SECURITY.md +0 -0
  33. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/Makefile +0 -0
  34. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/features/changelog.rst +0 -0
  35. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/features/getting-started.md +0 -0
  36. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/features/introduction.md +0 -0
  37. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/features/motivation.md +0 -0
  38. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/features/settings.md +0 -0
  39. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/features/setup.md +0 -0
  40. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/index.rst +0 -0
  41. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/docs/make.bat +0 -0
  42. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/apps.py +0 -0
  43. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/database_blocker.py +0 -0
  44. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/exceptions.py +0 -0
  45. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/logger.py +0 -0
  46. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/management/__init__.py +0 -0
  47. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/management/commands/__init__.py +0 -0
  48. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/management/commands/clear_queuebie_registry.py +0 -0
  49. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/messages.py +0 -0
  50. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/registry.py +0 -0
  51. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/runner.py +0 -0
  52. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/settings.py +0 -0
  53. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/queuebie/utils.py +0 -0
  54. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/settings.py +0 -0
  55. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/__init__.py +0 -0
  56. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/handlers/__init__.py +0 -0
  57. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/handlers/commands/__init__.py +0 -0
  58. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/handlers/commands/testapp.py +0 -0
  59. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/handlers/events/__init__.py +0 -0
  60. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/handlers/events/testapp.py +0 -0
  61. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/messages/__init__.py +0 -0
  62. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/messages/commands/__init__.py +0 -0
  63. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/messages/commands/my_commands.py +0 -0
  64. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/messages/commands/other_commands.py +0 -0
  65. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/messages/events/__init__.py +0 -0
  66. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/messages/events/my_events.py +0 -0
  67. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/testapp/urls.py +0 -0
  68. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/__init__.py +0 -0
  69. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/helpers/__init__.py +0 -0
  70. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/helpers/commands.py +0 -0
  71. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/helpers/events.py +0 -0
  72. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/management_commands/__init__.py +0 -0
  73. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/management_commands/test_clear_queuebie_registry.py +0 -0
  74. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_apps.py +0 -0
  75. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_exceptions.py +0 -0
  76. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_logger.py +0 -0
  77. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_messages.py +0 -0
  78. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_settings.py +0 -0
  79. {django_queuebie-0.3.4 → django_queuebie-0.3.7}/tests/test_utils.py +0 -0
@@ -27,6 +27,7 @@ METADATA = PackageMetadata(
27
27
  development_status=DEPLOYMENT_STATUS_BETA,
28
28
  has_migrations=False,
29
29
  main_branch="main",
30
+ claim="A simple and synchronous message queue for commands and events for Django",
30
31
  readme_content=ReadmeContent(uses_internationalisation=True),
31
32
  dependencies=[
32
33
  f"Django>={SUPPORTED_DJANGO_VERSIONS[0]}",
@@ -12,10 +12,10 @@ jobs:
12
12
  steps:
13
13
  - uses: actions/checkout@v4
14
14
 
15
- - name: Set up Python 3.12
15
+ - name: Set up Python 3.13
16
16
  uses: actions/setup-python@v5
17
17
  with:
18
- python-version: "3.12"
18
+ python-version: "3.13"
19
19
 
20
20
  - name: Install required packages
21
21
  run: pip install pre-commit
@@ -23,7 +23,6 @@ jobs:
23
23
  - name: Run pre-commit hooks
24
24
  run: pre-commit run --all-files
25
25
 
26
-
27
26
  tests:
28
27
  name: Python ${{ matrix.python-version }}, django ${{ matrix.django-version }}
29
28
  runs-on: ubuntu-24.04
@@ -46,8 +45,10 @@ jobs:
46
45
  uses: actions/setup-python@v5
47
46
  with:
48
47
  python-version: ${{ matrix.python-version }}
48
+ - name: Install uv
49
+ uses: astral-sh/setup-uv@v5
49
50
  - name: Install tox
50
- run: pip install tox
51
+ run: uv pip install --system tox tox-uv
51
52
  - name: Run Tests
52
53
  env:
53
54
  TOXENV: django${{ matrix.django-version }}
@@ -56,7 +57,7 @@ jobs:
56
57
  uses: actions/upload-artifact@v4
57
58
  with:
58
59
  name: coverage-data-${{ matrix.python-version }}-${{ matrix.django-version }}
59
- path: '${{ github.workspace }}/.coverage.*'
60
+ path: '${{ github.workspace }}/.coverage'
60
61
  include-hidden-files: true
61
62
  if-no-files-found: error
62
63
 
@@ -69,7 +70,7 @@ jobs:
69
70
 
70
71
  - uses: actions/setup-python@v5
71
72
  with:
72
- python-version: '3.12'
73
+ python-version: '3.13'
73
74
 
74
75
  - name: Install dependencies
75
76
  run: python -m pip install --upgrade coverage[toml]
@@ -77,13 +78,14 @@ jobs:
77
78
  - name: Download data
78
79
  uses: actions/download-artifact@v4
79
80
  with:
80
- path: ${{ github.workspace }}
81
+ path: ${{ github.workspace }}/coverage-reports
81
82
  pattern: coverage-data-*
82
- merge-multiple: true
83
+ merge-multiple: false
83
84
 
84
85
  - name: Combine coverage and fail if it's <100.0%
85
86
  run: |
86
- python -m coverage combine
87
+ python -m coverage combine coverage-reports/*/.coverage
88
+ python -m coverage xml
87
89
  python -m coverage html --skip-covered --skip-empty
88
90
  python -m coverage report --fail-under=100.0
89
91
  echo "## Coverage summary" >> $GITHUB_STEP_SUMMARY
@@ -52,7 +52,6 @@ coverage.xml
52
52
  cover/
53
53
 
54
54
  # Translations
55
- *.mo
56
55
  *.pot
57
56
 
58
57
  # Django stuff:
@@ -140,7 +139,7 @@ cython_debug/
140
139
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
141
140
  .idea/
142
141
 
143
- # Requirements.txt is managed by pip-tools
142
+ # Deprecated dependency files
144
143
  requirements.txt
145
144
 
146
145
  # sphinx build folder
@@ -156,3 +155,6 @@ _build
156
155
 
157
156
  # Test databases
158
157
  *.sqlite
158
+
159
+ # AI
160
+ .claude/
@@ -3,7 +3,7 @@
3
3
 
4
4
  repos:
5
5
  - repo: https://github.com/astral-sh/ruff-pre-commit
6
- rev: v0.11.11
6
+ rev: v0.14.0
7
7
  hooks:
8
8
  # Run the Ruff formatter.
9
9
  - id: ruff-format
@@ -12,11 +12,11 @@ repos:
12
12
  args: [--fix, --exit-non-zero-on-fix]
13
13
 
14
14
  - repo: https://github.com/adamchainz/blacken-docs
15
- rev: 1.19.1
15
+ rev: 1.20.0
16
16
  hooks:
17
17
  - id: blacken-docs
18
18
  additional_dependencies:
19
- - black==25.1.0
19
+ - black==25.9.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,13 +26,13 @@ repos:
26
26
  args: [ --py310-plus ]
27
27
 
28
28
  - repo: https://github.com/adamchainz/django-upgrade
29
- rev: 1.25.0
29
+ rev: 1.29.0
30
30
  hooks:
31
31
  - id: django-upgrade
32
32
  args: [--target-version, "4.2"]
33
33
 
34
34
  - repo: https://github.com/adamchainz/djade-pre-commit
35
- rev: 1.4.0
35
+ rev: 1.6.0
36
36
  hooks:
37
37
  - id: djade
38
38
  args: [--target-version, "4.2"]
@@ -43,7 +43,7 @@ repos:
43
43
  )$
44
44
 
45
45
  - repo: https://github.com/pre-commit/pre-commit-hooks
46
- rev: v5.0.0
46
+ rev: v6.0.0
47
47
  hooks:
48
48
  - id: check-ast
49
49
  - id: check-builtin-literals
@@ -9,7 +9,7 @@ version: 2
9
9
  build:
10
10
  os: ubuntu-24.04
11
11
  tools:
12
- python: "3.12"
12
+ python: "3.13"
13
13
 
14
14
  # Build documentation in the "docs/" directory with Sphinx
15
15
  sphinx:
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ **0.3.7** (2025-10-15)
4
+ * Maintenance updates via ambient-package-update
5
+
6
+ **0.3.6** (2025-10-10)
7
+ * Maintenance updates via ambient-package-update
8
+
9
+ **0.3.5** (2025-10-09)
10
+ * Maintenance updates via ambient-package-update
11
+
3
12
  **0.3.4** (2025-05-29)
4
13
  * Maintenance updates via ambient-package-update
5
14
 
@@ -3,9 +3,8 @@
3
3
  ## Setup package for development
4
4
 
5
5
  - Create a Python virtualenv and activate it
6
- - Install "pip-tools" with `pip install -U pip-tools`
7
- - Compile the requirements with `pip-compile --extra dev, -o requirements.txt pyproject.toml --resolver=backtracking`
8
- - Sync the dependencies with your virtualenv with `pip-sync`
6
+ - Install "uv" with `pip install -U uv`
7
+ - Sync the requirements with `uv sync --frozen --extra dev`
9
8
 
10
9
  ## Add functionality
11
10
 
@@ -58,7 +57,6 @@ Example: run all hooks of pre-push stage
58
57
  - To build the documentation, run: `sphinx-build docs/ docs/_build/html/`.
59
58
  - Open `docs/_build/html/index.html` to see the documentation.
60
59
 
61
-
62
60
  ### Translation files
63
61
 
64
62
  If you have added custom text, make sure to wrap it in `_()` where `_` is
@@ -66,12 +64,12 @@ gettext_lazy (`from django.utils.translation import gettext_lazy as _`).
66
64
 
67
65
  How to create translation file:
68
66
 
69
- * Navigate to `django-queuebie`
67
+ * Navigate to `queuebie`
70
68
  * `python manage.py makemessages -l de`
71
69
  * Have a look at the new/changed files within `queuebie/locale`
72
70
 
73
71
  How to compile translation files:
74
72
 
75
- * Navigate to `django-queuebie`
73
+ * Navigate to `queuebie`
76
74
  * `python manage.py compilemessages`
77
75
  * Have a look at the new/changed files within `queuebie/locale`
@@ -1,9 +1,36 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: django-queuebie
3
- Version: 0.3.4
3
+ Version: 0.3.7
4
4
  Summary: A simple and synchronous message queue for commands and events for Django
5
+ Project-URL: Homepage, https://github.com/ambient-innovation/django-queuebie/
6
+ Project-URL: Documentation, https://django-queuebie.readthedocs.io/en/latest/index.html
7
+ Project-URL: Maintained by, https://ambient.digital/
8
+ Project-URL: Bugtracker, https://github.com/ambient-innovation/django-queuebie/issues
9
+ Project-URL: Changelog, https://django-queuebie.readthedocs.io/en/latest/features/changelog.html
5
10
  Author-email: Ambient Digital <hello@ambient.digital>
6
- Description-Content-Type: text/markdown
11
+ License: MIT License
12
+
13
+ Copyright (c) 2025 Ambient Innovation: GmbH
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all
23
+ copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
32
+ License-File: LICENSE
33
+ License-File: LICENSE.md
7
34
  Classifier: Development Status :: 4 - Beta
8
35
  Classifier: Environment :: Web Environment
9
36
  Classifier: Framework :: Django
@@ -21,26 +48,20 @@ Classifier: Programming Language :: Python :: 3.11
21
48
  Classifier: Programming Language :: Python :: 3.12
22
49
  Classifier: Programming Language :: Python :: 3.13
23
50
  Classifier: Topic :: Utilities
24
- Requires-Dist: Django>=4.2
25
- Requires-Dist: typer~=0.12 ; extra == "dev"
26
- Requires-Dist: pytest-django~=4.9 ; extra == "dev"
27
- Requires-Dist: pytest-mock~=3.14 ; extra == "dev"
28
- Requires-Dist: coverage~=7.6 ; extra == "dev"
29
- Requires-Dist: pre-commit~=4.2 ; extra == "dev"
30
- Requires-Dist: ruff~=0.11 ; extra == "dev"
31
- Requires-Dist: sphinx~=7.1 ; extra == "dev"
32
- Requires-Dist: sphinx-rtd-theme~=2.0 ; extra == "dev"
33
- Requires-Dist: m2r2==0.3.3.post2 ; extra == "dev"
34
- Requires-Dist: mistune<2.0.0 ; extra == "dev"
35
- Requires-Dist: flit~=3.12 ; extra == "dev"
36
- Requires-Dist: keyring~=25.6 ; extra == "dev"
37
- Requires-Dist: ambient-package-update ; extra == "dev"
38
- Project-URL: Bugtracker, https://github.com/ambient-innovation/django-queuebie/issues
39
- Project-URL: Changelog, https://django-queuebie.readthedocs.io/en/latest/features/changelog.html
40
- Project-URL: Documentation, https://django-queuebie.readthedocs.io/en/latest/index.html
41
- Project-URL: Homepage, https://github.com/ambient-innovation/django-queuebie/
42
- Project-URL: Maintained by, https://ambient.digital/
51
+ Requires-Python: >=3.10
52
+ Requires-Dist: django>=4.2
43
53
  Provides-Extra: dev
54
+ Requires-Dist: ambient-package-update; extra == 'dev'
55
+ Requires-Dist: m2r2~=0.3; extra == 'dev'
56
+ Requires-Dist: pre-commit~=4.3; extra == 'dev'
57
+ Requires-Dist: pytest-cov~=7.0; extra == 'dev'
58
+ Requires-Dist: pytest-django~=4.11; extra == 'dev'
59
+ Requires-Dist: pytest-mock~=3.15; extra == 'dev'
60
+ Requires-Dist: sphinx-rtd-theme~=3.0; extra == 'dev'
61
+ Requires-Dist: sphinx~=7.4; extra == 'dev'
62
+ Requires-Dist: typer~=0.19; extra == 'dev'
63
+ Requires-Dist: uv~=0.9; extra == 'dev'
64
+ Description-Content-Type: text/markdown
44
65
 
45
66
  [![PyPI release](https://img.shields.io/pypi/v/django-queuebie.svg)](https://pypi.org/project/django-queuebie/)
46
67
  [![Downloads](https://static.pepy.tech/badge/django-queuebie)](https://pepy.tech/project/django-queuebie)
@@ -51,11 +72,9 @@ Provides-Extra: dev
51
72
 
52
73
  A simple and synchronous message queue for commands and events for Django.
53
74
 
54
- * [PyPI](https://pypi.org/project/django-queuebie/)
55
- * [GitHub](https://github.com/ambient-innovation/django-queuebie)
56
- * [Full documentation](https://django-queuebie.readthedocs.io/en/latest/index.html)
57
- * Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
75
+ [PyPI](https://pypi.org/project/django-queuebie/) | [GitHub](https://github.com/ambient-innovation/django-queuebie) | [Full documentation](https://django-queuebie.readthedocs.io/en/latest/index.html)
58
76
 
77
+ Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
59
78
 
60
79
  ## Features
61
80
 
@@ -117,20 +136,18 @@ handle_message(
117
136
 
118
137
  `pip install django_queuebie`
119
138
 
120
- or via pipenv:
139
+ or via uv:
121
140
 
122
- `pipenv install django_queuebie`
141
+ `uv add django_queuebie`
123
142
 
124
143
  - Add module to `INSTALLED_APPS` within the main django `settings.py`:
125
144
 
126
- ```python
127
- INSTALLED_APPS = (
128
- # ...
129
- "queuebie",
130
- )
131
- ```
132
-
133
-
145
+ ```python
146
+ INSTALLED_APPS = (
147
+ # ...
148
+ "queuebie",
149
+ )
150
+ ```
134
151
 
135
152
  ### Publish to ReadTheDocs.io
136
153
 
@@ -138,27 +155,43 @@ handle_message(
138
155
  - Trigger new build at ReadTheDocs.io (follow instructions in admin panel at RTD) if the GitHub webhook is not yet set
139
156
  up.
140
157
 
141
- ### Publish to PyPi
158
+ ### Preparation and building
159
+
160
+ This package uses [uv](https://github.com/astral-sh/uv) for dependency management and building.
142
161
 
143
162
  - Update documentation about new/changed functionality
144
163
 
145
- - Update the `Changelog`
164
+ - Update the `CHANGES.md`
146
165
 
147
166
  - Increment version in main `__init__.py`
148
167
 
149
- - Create pull request / merge to main
168
+ - Create pull request / merge to "main"
150
169
 
151
- - This project uses the flit package to publish to PyPI. Thus, publishing should be as easy as running:
152
- ```
153
- flit publish
170
+ - This project uses uv to publish to PyPI. This will create distribution files in the `dist/` directory.
171
+
172
+ ```bash
173
+ uv build
154
174
  ```
155
175
 
156
- To publish to TestPyPI use the following to ensure that you have set up your .pypirc as
157
- shown [here](https://flit.readthedocs.io/en/latest/upload.html#using-pypirc) and use the following command:
176
+ ### Publishing to PyPI
158
177
 
159
- ```
160
- flit publish --repository testpypi
161
- ```
178
+ To publish to the production PyPI:
179
+
180
+ ```bash
181
+ uv publish
182
+ ```
183
+
184
+ To publish to TestPyPI first (recommended for testing):
185
+
186
+ ```bash
187
+ uv publish --publish-url https://test.pypi.org/legacy/
188
+ ```
189
+
190
+ You can then test the installation from TestPyPI:
191
+
192
+ ```bash
193
+ uv pip install --index-url https://test.pypi.org/simple/ ambient-package-update
194
+ ```
162
195
 
163
196
  ### Maintenance
164
197
 
@@ -168,4 +201,3 @@ configuration and setup files. It works similar to well-known updaters like `pyu
168
201
 
169
202
  To run an update, refer to the [documentation page](https://pypi.org/project/ambient-package-update/)
170
203
  of the "ambient-package-update".
171
-
@@ -7,11 +7,9 @@
7
7
 
8
8
  A simple and synchronous message queue for commands and events for Django.
9
9
 
10
- * [PyPI](https://pypi.org/project/django-queuebie/)
11
- * [GitHub](https://github.com/ambient-innovation/django-queuebie)
12
- * [Full documentation](https://django-queuebie.readthedocs.io/en/latest/index.html)
13
- * Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
10
+ [PyPI](https://pypi.org/project/django-queuebie/) | [GitHub](https://github.com/ambient-innovation/django-queuebie) | [Full documentation](https://django-queuebie.readthedocs.io/en/latest/index.html)
14
11
 
12
+ Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
15
13
 
16
14
  ## Features
17
15
 
@@ -73,20 +71,18 @@ handle_message(
73
71
 
74
72
  `pip install django_queuebie`
75
73
 
76
- or via pipenv:
74
+ or via uv:
77
75
 
78
- `pipenv install django_queuebie`
76
+ `uv add django_queuebie`
79
77
 
80
78
  - Add module to `INSTALLED_APPS` within the main django `settings.py`:
81
79
 
82
- ```python
83
- INSTALLED_APPS = (
84
- # ...
85
- "queuebie",
86
- )
87
- ```
88
-
89
-
80
+ ```python
81
+ INSTALLED_APPS = (
82
+ # ...
83
+ "queuebie",
84
+ )
85
+ ```
90
86
 
91
87
  ### Publish to ReadTheDocs.io
92
88
 
@@ -94,27 +90,43 @@ handle_message(
94
90
  - Trigger new build at ReadTheDocs.io (follow instructions in admin panel at RTD) if the GitHub webhook is not yet set
95
91
  up.
96
92
 
97
- ### Publish to PyPi
93
+ ### Preparation and building
94
+
95
+ This package uses [uv](https://github.com/astral-sh/uv) for dependency management and building.
98
96
 
99
97
  - Update documentation about new/changed functionality
100
98
 
101
- - Update the `Changelog`
99
+ - Update the `CHANGES.md`
102
100
 
103
101
  - Increment version in main `__init__.py`
104
102
 
105
- - Create pull request / merge to main
103
+ - Create pull request / merge to "main"
106
104
 
107
- - This project uses the flit package to publish to PyPI. Thus, publishing should be as easy as running:
108
- ```
109
- flit publish
105
+ - This project uses uv to publish to PyPI. This will create distribution files in the `dist/` directory.
106
+
107
+ ```bash
108
+ uv build
110
109
  ```
111
110
 
112
- To publish to TestPyPI use the following to ensure that you have set up your .pypirc as
113
- shown [here](https://flit.readthedocs.io/en/latest/upload.html#using-pypirc) and use the following command:
111
+ ### Publishing to PyPI
114
112
 
115
- ```
116
- flit publish --repository testpypi
117
- ```
113
+ To publish to the production PyPI:
114
+
115
+ ```bash
116
+ uv publish
117
+ ```
118
+
119
+ To publish to TestPyPI first (recommended for testing):
120
+
121
+ ```bash
122
+ uv publish --publish-url https://test.pypi.org/legacy/
123
+ ```
124
+
125
+ You can then test the installation from TestPyPI:
126
+
127
+ ```bash
128
+ uv pip install --index-url https://test.pypi.org/simple/ ambient-package-update
129
+ ```
118
130
 
119
131
  ### Maintenance
120
132
 
@@ -62,7 +62,6 @@ templates_path = ["_templates"]
62
62
  # This pattern also affects html_static_path and html_extra_path.
63
63
  exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
64
64
 
65
-
66
65
  # -- Options for HTML output -------------------------------------------------
67
66
 
68
67
  # The theme to use for HTML and HTML Help pages. See the documentation for
@@ -9,7 +9,7 @@ def main():
9
9
  """Run administrative tasks."""
10
10
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
11
11
  try:
12
- from django.core.management import execute_from_command_line
12
+ from django.core.management import execute_from_command_line # noqa: PLC0415
13
13
  except ImportError as exc:
14
14
  raise ImportError( # noqa: TRY003
15
15
  "Couldn't import Django. Are you sure it's installed and "
@@ -1,6 +1,6 @@
1
1
  [build-system]
2
- requires = ["flit_core>=3.4"]
3
- build-backend = "flit_core.buildapi"
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "django-queuebie"
@@ -27,35 +27,28 @@ classifiers = [
27
27
  "Programming Language :: Python :: 3.13",
28
28
  "Topic :: Utilities",
29
29
  ]
30
- dynamic = ["version", "description"]
30
+ dynamic = ["version"]
31
+ description = "A simple and synchronous message queue for commands and events for Django"
31
32
  license = {"file" = "LICENSE.md"}
33
+ requires-python = ">=3.10"
32
34
  dependencies = [
33
35
  'Django>=4.2',
34
36
  ]
35
37
 
36
-
37
-
38
-
39
38
  [project.optional-dependencies]
40
39
  dev = [
41
- 'typer~=0.12',
42
- 'pytest-django~=4.9',
43
- 'pytest-mock~=3.14',
44
- 'coverage~=7.6',
45
- 'pre-commit~=4.2',
46
- 'ruff~=0.11',
47
- 'sphinx~=7.1',
48
- 'sphinx-rtd-theme~=2.0',
49
- 'm2r2==0.3.3.post2',
50
- 'mistune<2.0.0',
51
- 'flit~=3.12',
52
- 'keyring~=25.6',
40
+ 'typer~=0.19',
41
+ 'pytest-cov~=7.0',
42
+ 'pytest-django~=4.11',
43
+ 'pytest-mock~=3.15',
44
+ 'pre-commit~=4.3',
45
+ 'sphinx~=7.4',
46
+ 'sphinx-rtd-theme~=3.0',
47
+ 'm2r2~=0.3',
48
+ 'uv~=0.9',
53
49
  'ambient-package-update',
54
50
  ]
55
51
 
56
- [tool.flit.module]
57
- name = "queuebie"
58
-
59
52
  [project.urls]
60
53
  'Homepage' = 'https://github.com/ambient-innovation/django-queuebie/'
61
54
  'Documentation' = 'https://django-queuebie.readthedocs.io/en/latest/index.html'
@@ -92,6 +85,7 @@ lint.select = [
92
85
  "ERA", # Commented out code
93
86
  "INP", # Ban PEP-420 implicit namespace packages
94
87
  "C90", # McCabe code complexity
88
+ "FURB", # Refurbish Python code
95
89
  ]
96
90
  lint.ignore = [
97
91
  "TD002", # Missing author in TODO
@@ -127,6 +121,7 @@ lint.fixable = [
127
121
  "ERA", # Commented out code
128
122
  "INP", # Ban PEP-420 implicit namespace packages
129
123
  "C90", # McCabe code complexity
124
+ "FURB", # Refurbish Python code
130
125
  ]
131
126
  lint.unfixable = []
132
127
 
@@ -160,8 +155,8 @@ line-length = 120
160
155
  # Allow unused variables when underscore-prefixed.
161
156
  lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
162
157
 
163
- # Assume Python 3.12
164
- target-version = "py312"
158
+ # Assume Python 3.13
159
+ target-version = "py313"
165
160
 
166
161
  [tool.ruff.format]
167
162
  # Like Black, use double quotes for strings.
@@ -199,24 +194,33 @@ line-ending = "auto"
199
194
  ]
200
195
 
201
196
  [tool.tox]
202
- legacy_tox_ini = """
203
- [testenv]
197
+ requires = ["tox>=4", "tox-uv>=1.0.0"]
198
+ env_list = ["django42", "django51", "django52", ]
199
+
200
+ [tool.tox.env_run_base]
204
201
  # Django deprecation overview: https://www.djangoproject.com/download/
205
- deps =
206
- django42: Django==4.2.*
207
- django51: Django==5.1.*
208
- django52: Django==5.2.*
209
- extras = dev,
210
- commands =
211
- coverage run -m pytest --ds settings tests
202
+ package = "wheel"
203
+ wheel_build_env = ".pkg"
204
+ runner = "uv-venv-lock-runner"
205
+ extras = ["dev", ]
206
+ commands = [
207
+ ["pytest", "--cov=queuebie", "--cov-report=term", "--cov-report=xml", "--ds", "settings", "tests"]
208
+ ]
212
209
 
213
- [gh-actions]
214
- python =
215
- 3.10: py310
216
- 3.11: py311
217
- 3.12: py312
218
- 3.13: py313
219
- """
210
+ [tool.tox.env.django42]
211
+ deps = ["Django==4.2.*"]
212
+
213
+ [tool.tox.env.django51]
214
+ deps = ["Django==5.1.*"]
215
+
216
+ [tool.tox.env.django52]
217
+ deps = ["Django==5.2.*"]
218
+
219
+ [tool.tox.gh_actions.python]
220
+ "3.10" = "py310"
221
+ "3.11" = "py311"
222
+ "3.12" = "py312"
223
+ "3.13" = "py313"
220
224
 
221
225
  [tool.pytest.ini_options]
222
226
  python_files = [
@@ -258,3 +262,9 @@ source = [
258
262
  "queuebie",
259
263
  ".tox/**/site-packages",
260
264
  ]
265
+
266
+ [tool.hatch.build.targets.wheel]
267
+ packages = ["queuebie"]
268
+
269
+ [tool.hatch.version]
270
+ path = "queuebie/__init__.py"
@@ -1,6 +1,6 @@
1
1
  """A simple and synchronous message queue for commands and events for Django"""
2
2
 
3
- __version__ = "0.3.4"
3
+ __version__ = "0.3.7"
4
4
 
5
5
  from queuebie.registry import MessageRegistry
6
6
 
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+ pip install -U uv
3
+ uv sync --frozen --extra dev
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ uv build
3
+ uv publish --publish-url https://test.pypi.org/legacy/
4
+ uv publish
@@ -0,0 +1,2 @@
1
+ pip install -U uv
2
+ uv sync --frozen --extra dev