csu 2.3.2__tar.gz → 2.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 (106) hide show
  1. {csu-2.3.2 → csu-2.3.3}/.bumpversion.cfg +1 -1
  2. {csu-2.3.2 → csu-2.3.3}/.cookiecutterrc +1 -1
  3. {csu-2.3.2 → csu-2.3.3}/.pre-commit-config.yaml +1 -1
  4. {csu-2.3.2 → csu-2.3.3}/PKG-INFO +3 -3
  5. {csu-2.3.2 → csu-2.3.3}/README.rst +2 -2
  6. {csu-2.3.2 → csu-2.3.3}/pyproject.toml +1 -1
  7. {csu-2.3.2 → csu-2.3.3}/src/csu/__init__.py +1 -1
  8. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/engine.py +11 -4
  9. {csu-2.3.2 → csu-2.3.3}/src/csu.egg-info/PKG-INFO +3 -3
  10. {csu-2.3.2 → csu-2.3.3}/.coveragerc +0 -0
  11. {csu-2.3.2 → csu-2.3.3}/.editorconfig +0 -0
  12. {csu-2.3.2 → csu-2.3.3}/.github/workflows/github-actions.yml +0 -0
  13. {csu-2.3.2 → csu-2.3.3}/.tombi.toml +0 -0
  14. {csu-2.3.2 → csu-2.3.3}/AUTHORS.rst +0 -0
  15. {csu-2.3.2 → csu-2.3.3}/CHANGELOG.rst +0 -0
  16. {csu-2.3.2 → csu-2.3.3}/CONTRIBUTING.rst +0 -0
  17. {csu-2.3.2 → csu-2.3.3}/LICENSE +0 -0
  18. {csu-2.3.2 → csu-2.3.3}/MANIFEST.in +0 -0
  19. {csu-2.3.2 → csu-2.3.3}/ci/bootstrap.py +0 -0
  20. {csu-2.3.2 → csu-2.3.3}/ci/requirements.txt +0 -0
  21. {csu-2.3.2 → csu-2.3.3}/ci/templates/.github/workflows/github-actions.yml +0 -0
  22. {csu-2.3.2 → csu-2.3.3}/pytest.ini +0 -0
  23. {csu-2.3.2 → csu-2.3.3}/setup.cfg +0 -0
  24. {csu-2.3.2 → csu-2.3.3}/src/csu/admin.py +0 -0
  25. {csu-2.3.2 → csu-2.3.3}/src/csu/conf.py +0 -0
  26. {csu-2.3.2 → csu-2.3.3}/src/csu/consts.py +0 -0
  27. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/__init__.py +0 -0
  28. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/auth.py +0 -0
  29. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/fields.py +0 -0
  30. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/forms.py +0 -0
  31. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/perms.py +0 -0
  32. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/phonenumber.py +0 -0
  33. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/serializers.py +0 -0
  34. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/test_auth.py +0 -0
  35. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/test_fields.py +0 -0
  36. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/test_forms.py +0 -0
  37. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/test_phonenumber.py +0 -0
  38. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/test_serializers.py +0 -0
  39. {csu-2.3.2 → csu-2.3.3}/src/csu/drf/views.py +0 -0
  40. {csu-2.3.2 → csu-2.3.3}/src/csu/enums.py +0 -0
  41. {csu-2.3.2 → csu-2.3.3}/src/csu/env.py +0 -0
  42. {csu-2.3.2 → csu-2.3.3}/src/csu/exceptions.py +0 -0
  43. {csu-2.3.2 → csu-2.3.3}/src/csu/export.py +0 -0
  44. {csu-2.3.2 → csu-2.3.3}/src/csu/fixups.py +0 -0
  45. {csu-2.3.2 → csu-2.3.3}/src/csu/forms/__init__.py +0 -0
  46. {csu-2.3.2 → csu-2.3.3}/src/csu/forms/crispy.py +0 -0
  47. {csu-2.3.2 → csu-2.3.3}/src/csu/forms/fields.py +0 -0
  48. {csu-2.3.2 → csu-2.3.3}/src/csu/gettext.py +0 -0
  49. {csu-2.3.2 → csu-2.3.3}/src/csu/gettext_lazy.py +0 -0
  50. {csu-2.3.2 → csu-2.3.3}/src/csu/locale/ro/LC_MESSAGES/django.mo +0 -0
  51. {csu-2.3.2 → csu-2.3.3}/src/csu/locale/ro/LC_MESSAGES/django.po +0 -0
  52. {csu-2.3.2 → csu-2.3.3}/src/csu/logging.py +0 -0
  53. {csu-2.3.2 → csu-2.3.3}/src/csu/management.py +0 -0
  54. {csu-2.3.2 → csu-2.3.3}/src/csu/models.py +0 -0
  55. {csu-2.3.2 → csu-2.3.3}/src/csu/query.py +0 -0
  56. {csu-2.3.2 → csu-2.3.3}/src/csu/routers.py +0 -0
  57. {csu-2.3.2 → csu-2.3.3}/src/csu/service.py +0 -0
  58. {csu-2.3.2 → csu-2.3.3}/src/csu/templates/api_exception.html +0 -0
  59. {csu-2.3.2 → csu-2.3.3}/src/csu/templates/forms/widgets/opaquewidget.html +0 -0
  60. {csu-2.3.2 → csu-2.3.3}/src/csu/test_consts.py +0 -0
  61. {csu-2.3.2 → csu-2.3.3}/src/csu/test_env.py +0 -0
  62. {csu-2.3.2 → csu-2.3.3}/src/csu/test_exceptions.py +0 -0
  63. {csu-2.3.2 → csu-2.3.3}/src/csu/test_logging.py +0 -0
  64. {csu-2.3.2 → csu-2.3.3}/src/csu/test_management.py +0 -0
  65. {csu-2.3.2 → csu-2.3.3}/src/csu/test_service.py +0 -0
  66. {csu-2.3.2 → csu-2.3.3}/src/csu/test_timezones.py +0 -0
  67. {csu-2.3.2 → csu-2.3.3}/src/csu/test_utils.py +0 -0
  68. {csu-2.3.2 → csu-2.3.3}/src/csu/test_xml.py +0 -0
  69. {csu-2.3.2 → csu-2.3.3}/src/csu/timezones.py +0 -0
  70. {csu-2.3.2 → csu-2.3.3}/src/csu/utils.py +0 -0
  71. {csu-2.3.2 → csu-2.3.3}/src/csu/views.py +0 -0
  72. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/__init__.py +0 -0
  73. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/admin.py +0 -0
  74. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/asgi.py +0 -0
  75. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/enums.py +0 -0
  76. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/job.py +0 -0
  77. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/models.py +0 -0
  78. {csu-2.3.2 → csu-2.3.3}/src/csu/worker/registry.py +0 -0
  79. {csu-2.3.2 → csu-2.3.3}/src/csu/wsgi.py +0 -0
  80. {csu-2.3.2 → csu-2.3.3}/src/csu/xml.py +0 -0
  81. {csu-2.3.2 → csu-2.3.3}/src/csu.egg-info/SOURCES.txt +0 -0
  82. {csu-2.3.2 → csu-2.3.3}/src/csu.egg-info/dependency_links.txt +0 -0
  83. {csu-2.3.2 → csu-2.3.3}/src/csu.egg-info/requires.txt +0 -0
  84. {csu-2.3.2 → csu-2.3.3}/src/csu.egg-info/top_level.txt +0 -0
  85. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service/test_custom_context.yaml +0 -0
  86. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service/test_custom_context_0_retries.yaml +0 -0
  87. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service/test_decoding.yaml +0 -0
  88. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service/test_error.yaml +0 -0
  89. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service/test_logging.yaml +0 -0
  90. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service/test_redirects.yaml +0 -0
  91. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service_auth/test_async.yaml +0 -0
  92. {csu-2.3.2 → csu-2.3.3}/tests/cassettes/test_service_auth/test_sync.yaml +0 -0
  93. {csu-2.3.2 → csu-2.3.3}/tests/conftest.py +0 -0
  94. {csu-2.3.2 → csu-2.3.3}/tests/exampleworker.py +0 -0
  95. {csu-2.3.2 → csu-2.3.3}/tests/test_exampleworker.py +0 -0
  96. {csu-2.3.2 → csu-2.3.3}/tests/test_models.py +0 -0
  97. {csu-2.3.2 → csu-2.3.3}/tests/test_service.py +0 -0
  98. {csu-2.3.2 → csu-2.3.3}/tests/test_service_auth.py +0 -0
  99. {csu-2.3.2 → csu-2.3.3}/tests/test_views.py +0 -0
  100. {csu-2.3.2 → csu-2.3.3}/tests/test_worker.py +0 -0
  101. {csu-2.3.2 → csu-2.3.3}/tests/testproject/__init__.py +0 -0
  102. {csu-2.3.2 → csu-2.3.3}/tests/testproject/fixtures/testuser.json +0 -0
  103. {csu-2.3.2 → csu-2.3.3}/tests/testproject/models.py +0 -0
  104. {csu-2.3.2 → csu-2.3.3}/tests/testproject/settings.py +0 -0
  105. {csu-2.3.2 → csu-2.3.3}/tests/testproject/urls.py +0 -0
  106. {csu-2.3.2 → csu-2.3.3}/tox.ini +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 2.3.2
2
+ current_version = 2.3.3
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -41,7 +41,7 @@ default_context:
41
41
  sphinx_theme: furo
42
42
  test_matrix_separate_coverage: false
43
43
  tests_inside_package: true
44
- version: 2.3.2
44
+ version: 2.3.3
45
45
  version_manager: bump2version
46
46
  website: https://blog.ionelmc.ro
47
47
  year_from: '2024'
@@ -18,7 +18,7 @@ repos:
18
18
  args: [--fix, --exit-non-zero-on-fix, --show-fixes, --unsafe-fixes]
19
19
  - id: ruff-format
20
20
  - repo: https://github.com/tombi-toml/tombi-pre-commit
21
- rev: v0.9.16
21
+ rev: v0.9.17
22
22
  hooks:
23
23
  - id: tombi-format
24
24
  # args: [ "--offline" ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csu
3
- Version: 2.3.2
3
+ Version: 2.3.3
4
4
  Summary: Clean Slate Utils - bunch of utility code, mostly Django/DRF specific.
5
5
  Author-email: Ionel Cristian Mărieș <contact@ionelmc.ro>
6
6
  License-Expression: BSD-2-Clause
@@ -69,9 +69,9 @@ Overview
69
69
  .. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
70
70
  :alt: Supported implementations
71
71
  :target: https://pypi.org/project/csu
72
- .. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.3.2.svg
72
+ .. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.3.3.svg
73
73
  :alt: Commits since latest release
74
- :target: https://github.com/ionelmc/python-csu/compare/v2.3.2...main
74
+ :target: https://github.com/ionelmc/python-csu/compare/v2.3.3...main
75
75
  .. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
76
76
  :alt: Scrutinizer Status
77
77
  :target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
@@ -34,9 +34,9 @@ Overview
34
34
  .. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
35
35
  :alt: Supported implementations
36
36
  :target: https://pypi.org/project/csu
37
- .. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.3.2.svg
37
+ .. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.3.3.svg
38
38
  :alt: Commits since latest release
39
- :target: https://github.com/ionelmc/python-csu/compare/v2.3.2...main
39
+ :target: https://github.com/ionelmc/python-csu/compare/v2.3.3...main
40
40
  .. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
41
41
  :alt: Scrutinizer Status
42
42
  :target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "csu"
3
- version = "2.3.2"
3
+ version = "2.3.3"
4
4
  description = "Clean Slate Utils - bunch of utility code, mostly Django/DRF specific."
5
5
  requires-python = ">=3.14"
6
6
  license = "BSD-2-Clause"
@@ -2,4 +2,4 @@
2
2
  a.k.a Clean Slate Utils
3
3
  """
4
4
 
5
- __version__ = "2.3.2"
5
+ __version__ = "2.3.3"
@@ -20,6 +20,7 @@ from enum import auto
20
20
  from functools import partial
21
21
  from logging import getLogger
22
22
  from random import randint
23
+ from signal import Signals
23
24
  from typing import ClassVar
24
25
  from typing import Protocol
25
26
 
@@ -271,7 +272,7 @@ class AbstractEngine(ABC):
271
272
  workers: list[AbstractWorker]
272
273
  queue: Queue = None
273
274
  queue_sem: Semaphore
274
- shutdown_on: Iterable[signal.Signals]
275
+ shutdown_on: Iterable[Signals]
275
276
  if sys.platform == "win32":
276
277
  shutdown_on = signal.SIGINT, signal.SIGBREAK
277
278
  else:
@@ -323,10 +324,16 @@ class AbstractEngine(ABC):
323
324
 
324
325
  loop = asyncio.get_event_loop()
325
326
  for sig in self.shutdown_on:
326
- loop.add_signal_handler(sig, self.shutdown_handler, sig)
327
+ if sys.platform == "win32":
328
+ signal.signal(sig, self.shutdown_handler)
329
+ else:
330
+ loop.add_signal_handler(sig, self.shutdown_handler, sig)
327
331
 
328
- def shutdown_handler(self, sig: signal.Signals) -> None:
329
- sig_name = sig.name
332
+ def shutdown_handler(self, sig: int | Signals, *_) -> None:
333
+ if isinstance(sig, Signals):
334
+ sig_name = sig.name
335
+ else:
336
+ sig_name = Signals(sig).name
330
337
  graceful = not self.shutdown_requested
331
338
  logger.info("%s.shutdown_handler(%s) %s", self, sig_name, "GRACEFUL" if graceful else "FORCED")
332
339
  if not graceful:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csu
3
- Version: 2.3.2
3
+ Version: 2.3.3
4
4
  Summary: Clean Slate Utils - bunch of utility code, mostly Django/DRF specific.
5
5
  Author-email: Ionel Cristian Mărieș <contact@ionelmc.ro>
6
6
  License-Expression: BSD-2-Clause
@@ -69,9 +69,9 @@ Overview
69
69
  .. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
70
70
  :alt: Supported implementations
71
71
  :target: https://pypi.org/project/csu
72
- .. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.3.2.svg
72
+ .. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.3.3.svg
73
73
  :alt: Commits since latest release
74
- :target: https://github.com/ionelmc/python-csu/compare/v2.3.2...main
74
+ :target: https://github.com/ionelmc/python-csu/compare/v2.3.3...main
75
75
  .. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
76
76
  :alt: Scrutinizer Status
77
77
  :target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
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
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