python-cqrs 4.15.0__tar.gz → 4.15.1__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 (96) hide show
  1. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/PKG-INFO +3 -9
  2. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/README.md +2 -8
  3. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/pyproject.toml +1 -1
  4. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/__init__.py +3 -0
  5. python_cqrs-4.15.1/src/cqrs/_eol.py +30 -0
  6. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/python_cqrs.egg-info/PKG-INFO +3 -9
  7. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/python_cqrs.egg-info/SOURCES.txt +1 -0
  8. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/LICENSE +0 -0
  9. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/setup.cfg +0 -0
  10. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/adapters/__init__.py +0 -0
  11. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/adapters/amqp.py +0 -0
  12. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/adapters/circuit_breaker.py +0 -0
  13. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/adapters/kafka.py +0 -0
  14. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/adapters/protocol.py +0 -0
  15. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/circuit_breaker.py +0 -0
  16. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/compressors/__init__.py +0 -0
  17. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/compressors/protocol.py +0 -0
  18. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/compressors/zlib.py +0 -0
  19. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/container/__init__.py +0 -0
  20. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/container/dependency_injector.py +0 -0
  21. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/container/di.py +0 -0
  22. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/container/dishka.py +0 -0
  23. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/container/protocol.py +0 -0
  24. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/container/scope.py +0 -0
  25. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/deserializers/__init__.py +0 -0
  26. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/deserializers/exceptions.py +0 -0
  27. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/deserializers/json.py +0 -0
  28. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/deserializers/protobuf.py +0 -0
  29. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/__init__.py +0 -0
  30. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/event.py +0 -0
  31. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/exceptions.py +0 -0
  32. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/models.py +0 -0
  33. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/request.py +0 -0
  34. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/saga.py +0 -0
  35. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/dispatcher/streaming.py +0 -0
  36. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/__init__.py +0 -0
  37. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/bootstrap.py +0 -0
  38. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/event.py +0 -0
  39. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/event_emitter.py +0 -0
  40. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/event_handler.py +0 -0
  41. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/event_processor.py +0 -0
  42. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/fallback.py +0 -0
  43. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/events/map.py +0 -0
  44. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/generic_utils.py +0 -0
  45. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/mediator.py +0 -0
  46. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/message_brokers/__init__.py +0 -0
  47. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/message_brokers/amqp.py +0 -0
  48. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/message_brokers/devnull.py +0 -0
  49. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/message_brokers/kafka.py +0 -0
  50. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/message_brokers/protocol.py +0 -0
  51. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/middlewares/__init__.py +0 -0
  52. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/middlewares/base.py +0 -0
  53. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/middlewares/logging.py +0 -0
  54. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/outbox/__init__.py +0 -0
  55. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/outbox/map.py +0 -0
  56. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/outbox/mock.py +0 -0
  57. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/outbox/repository.py +0 -0
  58. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/outbox/sqlalchemy.py +0 -0
  59. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/producer.py +0 -0
  60. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/__init__.py +0 -0
  61. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/bootstrap.py +0 -0
  62. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/cor_request_handler.py +0 -0
  63. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/fallback.py +0 -0
  64. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/map.py +0 -0
  65. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/mermaid.py +0 -0
  66. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/request.py +0 -0
  67. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/requests/request_handler.py +0 -0
  68. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/response.py +0 -0
  69. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/__init__.py +0 -0
  70. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/bootstrap.py +0 -0
  71. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/circuit_breaker.py +0 -0
  72. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/compensation.py +0 -0
  73. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/execution.py +0 -0
  74. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/fallback.py +0 -0
  75. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/mermaid.py +0 -0
  76. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/models.py +0 -0
  77. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/recovery.py +0 -0
  78. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/saga.py +0 -0
  79. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/step.py +0 -0
  80. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/storage/__init__.py +0 -0
  81. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/storage/enums.py +0 -0
  82. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/storage/memory.py +0 -0
  83. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/storage/models.py +0 -0
  84. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/storage/protocol.py +0 -0
  85. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/storage/sqlalchemy.py +0 -0
  86. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/saga/validation.py +0 -0
  87. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/serializers/__init__.py +0 -0
  88. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/serializers/default.py +0 -0
  89. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/serializers/json.py +0 -0
  90. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/serializers/protobuf.py +0 -0
  91. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/serializers/protocol.py +0 -0
  92. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/sqlalchemy_types.py +0 -0
  93. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/cqrs/types.py +0 -0
  94. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/python_cqrs.egg-info/dependency_links.txt +0 -0
  95. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/python_cqrs.egg-info/requires.txt +0 -0
  96. {python_cqrs-4.15.0 → python_cqrs-4.15.1}/src/python_cqrs.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-cqrs
3
- Version: 4.15.0
3
+ Version: 4.15.1
4
4
  Summary: Event-Driven Architecture Framework for Distributed Systems
5
5
  Author-email: Vadim Kozyrevskiy <vadikko2@mail.ru>, Dmitry Kutlubaev <kutlubaev00@mail.ru>
6
6
  Maintainer-email: Vadim Kozyrevskiy <vadikko2@mail.ru>
@@ -94,9 +94,6 @@ Dynamic: license-file
94
94
  <a href="https://codecov.io/gh/vadikko2/python-cqrs">
95
95
  <img src="https://img.shields.io/codecov/c/github/vadikko2/python-cqrs?logo=codecov&logoColor=white" alt="Coverage">
96
96
  </a>
97
- <a href="https://codspeed.io/vadikko2/python-cqrs?utm_source=badge">
98
- <img src="https://img.shields.io/endpoint?url=https://codspeed.io/badge.json" alt="CodSpeed">
99
- </a>
100
97
  <a href="https://mkdocs.python-cqrs.dev/">
101
98
  <img src="https://img.shields.io/badge/docs-mkdocs-blue?logo=readthedocs" alt="Documentation">
102
99
  </a>
@@ -109,11 +106,6 @@ Dynamic: license-file
109
106
  </p>
110
107
  </div>
111
108
 
112
- > [!WARNING]
113
- > **Breaking Changes in v5.0.0**
114
- >
115
- > Starting with version 5.0.0, Pydantic support will become optional. The default implementations of `Request`, `Response`, `DomainEvent`, and `NotificationEvent` will be migrated to dataclasses-based implementations.
116
-
117
109
  ## Table of Contents
118
110
 
119
111
  - [Overview](#overview)
@@ -192,6 +184,8 @@ pip install python-cqrs[examples] # FastAPI, FastStream, uvicorn, etc.
192
184
  pip install python-cqrs[aiobreaker] # Circuit breaker for saga fallbacks
193
185
  ```
194
186
 
187
+ Starting with **4.15.1**, importing `cqrs` emits a package-level EOL `DeprecationWarning` toward 5.x (plus an optional log). Suppress the log with `CQRS_SUPPRESS_V4_EOL_WARNING=1`. See [SECURITY.md](SECURITY.md) for the 4.x support window and pin guidance.
188
+
195
189
  ## Quick Start
196
190
 
197
191
  Define a command, a handler, bind them, and run via the mediator:
@@ -20,9 +20,6 @@
20
20
  <a href="https://codecov.io/gh/vadikko2/python-cqrs">
21
21
  <img src="https://img.shields.io/codecov/c/github/vadikko2/python-cqrs?logo=codecov&logoColor=white" alt="Coverage">
22
22
  </a>
23
- <a href="https://codspeed.io/vadikko2/python-cqrs?utm_source=badge">
24
- <img src="https://img.shields.io/endpoint?url=https://codspeed.io/badge.json" alt="CodSpeed">
25
- </a>
26
23
  <a href="https://mkdocs.python-cqrs.dev/">
27
24
  <img src="https://img.shields.io/badge/docs-mkdocs-blue?logo=readthedocs" alt="Documentation">
28
25
  </a>
@@ -35,11 +32,6 @@
35
32
  </p>
36
33
  </div>
37
34
 
38
- > [!WARNING]
39
- > **Breaking Changes in v5.0.0**
40
- >
41
- > Starting with version 5.0.0, Pydantic support will become optional. The default implementations of `Request`, `Response`, `DomainEvent`, and `NotificationEvent` will be migrated to dataclasses-based implementations.
42
-
43
35
  ## Table of Contents
44
36
 
45
37
  - [Overview](#overview)
@@ -118,6 +110,8 @@ pip install python-cqrs[examples] # FastAPI, FastStream, uvicorn, etc.
118
110
  pip install python-cqrs[aiobreaker] # Circuit breaker for saga fallbacks
119
111
  ```
120
112
 
113
+ Starting with **4.15.1**, importing `cqrs` emits a package-level EOL `DeprecationWarning` toward 5.x (plus an optional log). Suppress the log with `CQRS_SUPPRESS_V4_EOL_WARNING=1`. See [SECURITY.md](SECURITY.md) for the 4.x support window and pin guidance.
114
+
121
115
  ## Quick Start
122
116
 
123
117
  Define a command, a handler, bind them, and run via the mediator:
@@ -31,7 +31,7 @@ maintainers = [{ name = "Vadim Kozyrevskiy", email = "vadikko2@mail.ru" }]
31
31
  name = "python-cqrs"
32
32
  readme = "README.md"
33
33
  requires-python = ">=3.10"
34
- version = "4.15.0"
34
+ version = "4.15.1"
35
35
 
36
36
  [project.optional-dependencies]
37
37
  aiobreaker = ["aiobreaker>=0.3.0"]
@@ -1,3 +1,4 @@
1
+ from cqrs._eol import emit_v4_eol_warning
1
2
  from cqrs.compressors import Compressor, ZlibCompressor
2
3
  from cqrs.container.di import DIContainer
3
4
  from cqrs.container.protocol import Container, SupportsScope
@@ -149,3 +150,5 @@ __all__ = (
149
150
  "JSONType",
150
151
  "PayloadBinary",
151
152
  )
153
+
154
+ emit_v4_eol_warning()
@@ -0,0 +1,30 @@
1
+ """Package-level EOL notice for the 4.x maintenance line."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import logging
6
+ import os
7
+ import warnings
8
+
9
+ _EOL_MESSAGE = (
10
+ "python-cqrs 4.x is in maintenance mode after 5.0.0. "
11
+ "Please migrate to 5.x when ready "
12
+ "(docs: https://mkdocs.python-cqrs.dev/latest/). "
13
+ 'To stay on 4.x: pip install "python-cqrs>=4,<5". '
14
+ "Suppress this optional log with CQRS_SUPPRESS_V4_EOL_WARNING=1 "
15
+ "(DeprecationWarning is still emitted)."
16
+ )
17
+
18
+ _TRUTHY = frozenset({"1", "true", "yes"})
19
+
20
+
21
+ def _suppress_log() -> bool:
22
+ value = os.environ.get("CQRS_SUPPRESS_V4_EOL_WARNING", "")
23
+ return value.strip().lower() in _TRUTHY
24
+
25
+
26
+ def emit_v4_eol_warning() -> None:
27
+ """Emit DeprecationWarning always; optional logger warning unless suppressed."""
28
+ warnings.warn(_EOL_MESSAGE, DeprecationWarning, stacklevel=2)
29
+ if not _suppress_log():
30
+ logging.getLogger("cqrs").warning(_EOL_MESSAGE)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-cqrs
3
- Version: 4.15.0
3
+ Version: 4.15.1
4
4
  Summary: Event-Driven Architecture Framework for Distributed Systems
5
5
  Author-email: Vadim Kozyrevskiy <vadikko2@mail.ru>, Dmitry Kutlubaev <kutlubaev00@mail.ru>
6
6
  Maintainer-email: Vadim Kozyrevskiy <vadikko2@mail.ru>
@@ -94,9 +94,6 @@ Dynamic: license-file
94
94
  <a href="https://codecov.io/gh/vadikko2/python-cqrs">
95
95
  <img src="https://img.shields.io/codecov/c/github/vadikko2/python-cqrs?logo=codecov&logoColor=white" alt="Coverage">
96
96
  </a>
97
- <a href="https://codspeed.io/vadikko2/python-cqrs?utm_source=badge">
98
- <img src="https://img.shields.io/endpoint?url=https://codspeed.io/badge.json" alt="CodSpeed">
99
- </a>
100
97
  <a href="https://mkdocs.python-cqrs.dev/">
101
98
  <img src="https://img.shields.io/badge/docs-mkdocs-blue?logo=readthedocs" alt="Documentation">
102
99
  </a>
@@ -109,11 +106,6 @@ Dynamic: license-file
109
106
  </p>
110
107
  </div>
111
108
 
112
- > [!WARNING]
113
- > **Breaking Changes in v5.0.0**
114
- >
115
- > Starting with version 5.0.0, Pydantic support will become optional. The default implementations of `Request`, `Response`, `DomainEvent`, and `NotificationEvent` will be migrated to dataclasses-based implementations.
116
-
117
109
  ## Table of Contents
118
110
 
119
111
  - [Overview](#overview)
@@ -192,6 +184,8 @@ pip install python-cqrs[examples] # FastAPI, FastStream, uvicorn, etc.
192
184
  pip install python-cqrs[aiobreaker] # Circuit breaker for saga fallbacks
193
185
  ```
194
186
 
187
+ Starting with **4.15.1**, importing `cqrs` emits a package-level EOL `DeprecationWarning` toward 5.x (plus an optional log). Suppress the log with `CQRS_SUPPRESS_V4_EOL_WARNING=1`. See [SECURITY.md](SECURITY.md) for the 4.x support window and pin guidance.
188
+
195
189
  ## Quick Start
196
190
 
197
191
  Define a command, a handler, bind them, and run via the mediator:
@@ -2,6 +2,7 @@ LICENSE
2
2
  README.md
3
3
  pyproject.toml
4
4
  src/cqrs/__init__.py
5
+ src/cqrs/_eol.py
5
6
  src/cqrs/circuit_breaker.py
6
7
  src/cqrs/generic_utils.py
7
8
  src/cqrs/mediator.py
File without changes
File without changes