csu 2.3.1__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.1 → csu-2.3.3}/.bumpversion.cfg +1 -1
  2. {csu-2.3.1 → csu-2.3.3}/.cookiecutterrc +1 -1
  3. {csu-2.3.1 → csu-2.3.3}/.pre-commit-config.yaml +1 -1
  4. {csu-2.3.1 → csu-2.3.3}/PKG-INFO +3 -3
  5. {csu-2.3.1 → csu-2.3.3}/README.rst +2 -2
  6. {csu-2.3.1 → csu-2.3.3}/pyproject.toml +1 -1
  7. {csu-2.3.1 → csu-2.3.3}/src/csu/__init__.py +1 -1
  8. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/engine.py +15 -6
  9. {csu-2.3.1 → csu-2.3.3}/src/csu.egg-info/PKG-INFO +3 -3
  10. {csu-2.3.1 → csu-2.3.3}/.coveragerc +0 -0
  11. {csu-2.3.1 → csu-2.3.3}/.editorconfig +0 -0
  12. {csu-2.3.1 → csu-2.3.3}/.github/workflows/github-actions.yml +0 -0
  13. {csu-2.3.1 → csu-2.3.3}/.tombi.toml +0 -0
  14. {csu-2.3.1 → csu-2.3.3}/AUTHORS.rst +0 -0
  15. {csu-2.3.1 → csu-2.3.3}/CHANGELOG.rst +0 -0
  16. {csu-2.3.1 → csu-2.3.3}/CONTRIBUTING.rst +0 -0
  17. {csu-2.3.1 → csu-2.3.3}/LICENSE +0 -0
  18. {csu-2.3.1 → csu-2.3.3}/MANIFEST.in +0 -0
  19. {csu-2.3.1 → csu-2.3.3}/ci/bootstrap.py +0 -0
  20. {csu-2.3.1 → csu-2.3.3}/ci/requirements.txt +0 -0
  21. {csu-2.3.1 → csu-2.3.3}/ci/templates/.github/workflows/github-actions.yml +0 -0
  22. {csu-2.3.1 → csu-2.3.3}/pytest.ini +0 -0
  23. {csu-2.3.1 → csu-2.3.3}/setup.cfg +0 -0
  24. {csu-2.3.1 → csu-2.3.3}/src/csu/admin.py +0 -0
  25. {csu-2.3.1 → csu-2.3.3}/src/csu/conf.py +0 -0
  26. {csu-2.3.1 → csu-2.3.3}/src/csu/consts.py +0 -0
  27. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/__init__.py +0 -0
  28. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/auth.py +0 -0
  29. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/fields.py +0 -0
  30. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/forms.py +0 -0
  31. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/perms.py +0 -0
  32. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/phonenumber.py +0 -0
  33. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/serializers.py +0 -0
  34. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/test_auth.py +0 -0
  35. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/test_fields.py +0 -0
  36. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/test_forms.py +0 -0
  37. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/test_phonenumber.py +0 -0
  38. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/test_serializers.py +0 -0
  39. {csu-2.3.1 → csu-2.3.3}/src/csu/drf/views.py +0 -0
  40. {csu-2.3.1 → csu-2.3.3}/src/csu/enums.py +0 -0
  41. {csu-2.3.1 → csu-2.3.3}/src/csu/env.py +0 -0
  42. {csu-2.3.1 → csu-2.3.3}/src/csu/exceptions.py +0 -0
  43. {csu-2.3.1 → csu-2.3.3}/src/csu/export.py +0 -0
  44. {csu-2.3.1 → csu-2.3.3}/src/csu/fixups.py +0 -0
  45. {csu-2.3.1 → csu-2.3.3}/src/csu/forms/__init__.py +0 -0
  46. {csu-2.3.1 → csu-2.3.3}/src/csu/forms/crispy.py +0 -0
  47. {csu-2.3.1 → csu-2.3.3}/src/csu/forms/fields.py +0 -0
  48. {csu-2.3.1 → csu-2.3.3}/src/csu/gettext.py +0 -0
  49. {csu-2.3.1 → csu-2.3.3}/src/csu/gettext_lazy.py +0 -0
  50. {csu-2.3.1 → csu-2.3.3}/src/csu/locale/ro/LC_MESSAGES/django.mo +0 -0
  51. {csu-2.3.1 → csu-2.3.3}/src/csu/locale/ro/LC_MESSAGES/django.po +0 -0
  52. {csu-2.3.1 → csu-2.3.3}/src/csu/logging.py +0 -0
  53. {csu-2.3.1 → csu-2.3.3}/src/csu/management.py +0 -0
  54. {csu-2.3.1 → csu-2.3.3}/src/csu/models.py +0 -0
  55. {csu-2.3.1 → csu-2.3.3}/src/csu/query.py +0 -0
  56. {csu-2.3.1 → csu-2.3.3}/src/csu/routers.py +0 -0
  57. {csu-2.3.1 → csu-2.3.3}/src/csu/service.py +0 -0
  58. {csu-2.3.1 → csu-2.3.3}/src/csu/templates/api_exception.html +0 -0
  59. {csu-2.3.1 → csu-2.3.3}/src/csu/templates/forms/widgets/opaquewidget.html +0 -0
  60. {csu-2.3.1 → csu-2.3.3}/src/csu/test_consts.py +0 -0
  61. {csu-2.3.1 → csu-2.3.3}/src/csu/test_env.py +0 -0
  62. {csu-2.3.1 → csu-2.3.3}/src/csu/test_exceptions.py +0 -0
  63. {csu-2.3.1 → csu-2.3.3}/src/csu/test_logging.py +0 -0
  64. {csu-2.3.1 → csu-2.3.3}/src/csu/test_management.py +0 -0
  65. {csu-2.3.1 → csu-2.3.3}/src/csu/test_service.py +0 -0
  66. {csu-2.3.1 → csu-2.3.3}/src/csu/test_timezones.py +0 -0
  67. {csu-2.3.1 → csu-2.3.3}/src/csu/test_utils.py +0 -0
  68. {csu-2.3.1 → csu-2.3.3}/src/csu/test_xml.py +0 -0
  69. {csu-2.3.1 → csu-2.3.3}/src/csu/timezones.py +0 -0
  70. {csu-2.3.1 → csu-2.3.3}/src/csu/utils.py +0 -0
  71. {csu-2.3.1 → csu-2.3.3}/src/csu/views.py +0 -0
  72. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/__init__.py +0 -0
  73. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/admin.py +0 -0
  74. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/asgi.py +0 -0
  75. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/enums.py +0 -0
  76. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/job.py +0 -0
  77. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/models.py +0 -0
  78. {csu-2.3.1 → csu-2.3.3}/src/csu/worker/registry.py +0 -0
  79. {csu-2.3.1 → csu-2.3.3}/src/csu/wsgi.py +0 -0
  80. {csu-2.3.1 → csu-2.3.3}/src/csu/xml.py +0 -0
  81. {csu-2.3.1 → csu-2.3.3}/src/csu.egg-info/SOURCES.txt +0 -0
  82. {csu-2.3.1 → csu-2.3.3}/src/csu.egg-info/dependency_links.txt +0 -0
  83. {csu-2.3.1 → csu-2.3.3}/src/csu.egg-info/requires.txt +0 -0
  84. {csu-2.3.1 → csu-2.3.3}/src/csu.egg-info/top_level.txt +0 -0
  85. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service/test_custom_context.yaml +0 -0
  86. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service/test_custom_context_0_retries.yaml +0 -0
  87. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service/test_decoding.yaml +0 -0
  88. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service/test_error.yaml +0 -0
  89. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service/test_logging.yaml +0 -0
  90. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service/test_redirects.yaml +0 -0
  91. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service_auth/test_async.yaml +0 -0
  92. {csu-2.3.1 → csu-2.3.3}/tests/cassettes/test_service_auth/test_sync.yaml +0 -0
  93. {csu-2.3.1 → csu-2.3.3}/tests/conftest.py +0 -0
  94. {csu-2.3.1 → csu-2.3.3}/tests/exampleworker.py +0 -0
  95. {csu-2.3.1 → csu-2.3.3}/tests/test_exampleworker.py +0 -0
  96. {csu-2.3.1 → csu-2.3.3}/tests/test_models.py +0 -0
  97. {csu-2.3.1 → csu-2.3.3}/tests/test_service.py +0 -0
  98. {csu-2.3.1 → csu-2.3.3}/tests/test_service_auth.py +0 -0
  99. {csu-2.3.1 → csu-2.3.3}/tests/test_views.py +0 -0
  100. {csu-2.3.1 → csu-2.3.3}/tests/test_worker.py +0 -0
  101. {csu-2.3.1 → csu-2.3.3}/tests/testproject/__init__.py +0 -0
  102. {csu-2.3.1 → csu-2.3.3}/tests/testproject/fixtures/testuser.json +0 -0
  103. {csu-2.3.1 → csu-2.3.3}/tests/testproject/models.py +0 -0
  104. {csu-2.3.1 → csu-2.3.3}/tests/testproject/settings.py +0 -0
  105. {csu-2.3.1 → csu-2.3.3}/tests/testproject/urls.py +0 -0
  106. {csu-2.3.1 → csu-2.3.3}/tox.ini +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 2.3.1
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.1
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.1
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.1.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.1...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.1.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.1...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.1"
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.1"
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,11 +272,13 @@ class AbstractEngine(ABC):
271
272
  workers: list[AbstractWorker]
272
273
  queue: Queue = None
273
274
  queue_sem: Semaphore
274
- shutdown_on: Iterable[signal.Signals] = (signal.SIGINT, signal.SIGTERM)
275
+ shutdown_on: Iterable[Signals]
276
+ if sys.platform == "win32":
277
+ shutdown_on = signal.SIGINT, signal.SIGBREAK
278
+ else:
279
+ shutdown_on = signal.SIGINT, signal.SIGTERM
275
280
  shutdown_requested = False
276
281
  shutdown_tasks: ClassVar[dict[bool, asyncio.Task]] = {}
277
- if sys.platform == "win32":
278
- shutdown_on += (signal.SIGBREAK,)
279
282
 
280
283
  def __init__(self):
281
284
  self.workers = []
@@ -321,10 +324,16 @@ class AbstractEngine(ABC):
321
324
 
322
325
  loop = asyncio.get_event_loop()
323
326
  for sig in self.shutdown_on:
324
- 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)
325
331
 
326
- def shutdown_handler(self, sig: signal.Signals) -> None:
327
- 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
328
337
  graceful = not self.shutdown_requested
329
338
  logger.info("%s.shutdown_handler(%s) %s", self, sig_name, "GRACEFUL" if graceful else "FORCED")
330
339
  if not graceful:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csu
3
- Version: 2.3.1
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.1.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.1...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