buz 2.17.0rc1__py3-none-any.whl → 2.17.0rc2__py3-none-any.whl
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.
- buz/event/transactional_outbox/event_to_outbox_record_translator.py +1 -1
- buz/event/transactional_outbox/outbox_record.py +1 -2
- buz/kafka/infrastructure/deserializers/implementations/cdc/cdc_record_bytes_to_event_deserializer.py +0 -1
- buz/kafka/infrastructure/serializers/implementations/cdc_record_bytes_to_event_serializer.py +3 -5
- buz/kafka/infrastructure/serializers/implementations/json_byte_serializer.py +3 -1
- buz/message.py +8 -11
- buz/metadata.py +8 -0
- {buz-2.17.0rc1.dist-info → buz-2.17.0rc2.dist-info}/METADATA +1 -1
- {buz-2.17.0rc1.dist-info → buz-2.17.0rc2.dist-info}/RECORD +11 -10
- {buz-2.17.0rc1.dist-info → buz-2.17.0rc2.dist-info}/LICENSE +0 -0
- {buz-2.17.0rc1.dist-info → buz-2.17.0rc2.dist-info}/WHEEL +0 -0
|
@@ -2,7 +2,6 @@ from datetime import datetime
|
|
|
2
2
|
from typing import Optional, Any, ClassVar
|
|
3
3
|
from uuid import UUID
|
|
4
4
|
from dataclasses import dataclass, fields
|
|
5
|
-
from dataclasses import field as dataclass_field
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
@dataclass
|
|
@@ -13,7 +12,7 @@ class OutboxRecord: # type: ignore[misc]
|
|
|
13
12
|
event_fqn: str
|
|
14
13
|
event_payload: dict[str, Any] # type: ignore[misc]
|
|
15
14
|
created_at: datetime
|
|
16
|
-
event_metadata: Optional[dict[str, Any]] =
|
|
15
|
+
event_metadata: Optional[dict[str, Any]] = None
|
|
17
16
|
delivered_at: Optional[datetime] = None
|
|
18
17
|
delivery_errors: int = 0
|
|
19
18
|
delivery_paused_at: Optional[datetime] = None
|
buz/kafka/infrastructure/serializers/implementations/cdc_record_bytes_to_event_serializer.py
CHANGED
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from dataclasses import asdict
|
|
4
4
|
from datetime import datetime
|
|
5
|
+
from typing import Optional
|
|
5
6
|
|
|
6
7
|
from buz.event import Event
|
|
7
8
|
from buz.kafka.infrastructure.cdc.cdc_message import CDCMessage, CDCPayload
|
|
@@ -38,8 +39,5 @@ class CDCRecordBytesToEventSerializer(ByteSerializer):
|
|
|
38
39
|
del payload["metadata"]
|
|
39
40
|
return self.__json_serializer.serialize_as_json(payload)
|
|
40
41
|
|
|
41
|
-
def __serialize_event_metadata(self, event: Event) -> str:
|
|
42
|
-
|
|
43
|
-
return str({})
|
|
44
|
-
|
|
45
|
-
return self.__json_serializer.serialize_as_json(event.metadata)
|
|
42
|
+
def __serialize_event_metadata(self, event: Event) -> Optional[str]:
|
|
43
|
+
return self.__json_serializer.serialize_as_json(event.metadata) # type: ignore[arg-type]
|
|
@@ -15,7 +15,9 @@ ALLOWED_SERIALIZABLE_DICTIONARY_KEYS = str
|
|
|
15
15
|
|
|
16
16
|
JSON_SERIALIZABLE_VALUE = Union[PRIMITIVES, list[PRIMITIVES], dict[ALLOWED_SERIALIZABLE_DICTIONARY_KEYS, PRIMITIVES]]
|
|
17
17
|
|
|
18
|
-
JSON_SERIALIZABLE =
|
|
18
|
+
JSON_SERIALIZABLE = Union[
|
|
19
|
+
dict[ALLOWED_SERIALIZABLE_DICTIONARY_KEYS, Union[JSON_SERIALIZABLE_VALUE, "JSON_SERIALIZABLE"]]
|
|
20
|
+
]
|
|
19
21
|
|
|
20
22
|
|
|
21
23
|
class JSONByteSerializer(ByteSerializer[JSON_SERIALIZABLE]):
|
buz/message.py
CHANGED
|
@@ -3,11 +3,13 @@ from dataclasses import field, dataclass
|
|
|
3
3
|
from datetime import datetime
|
|
4
4
|
from inspect import signature, Parameter
|
|
5
5
|
from types import MappingProxyType
|
|
6
|
-
from typing import Any, ClassVar,
|
|
6
|
+
from typing import Any, ClassVar, get_origin, get_args, Union
|
|
7
7
|
from typing_extensions import Self
|
|
8
8
|
|
|
9
9
|
from uuid_utils.compat import uuid7
|
|
10
10
|
|
|
11
|
+
from buz.metadata import Metadata
|
|
12
|
+
|
|
11
13
|
|
|
12
14
|
@dataclass(frozen=True)
|
|
13
15
|
class Message(ABC):
|
|
@@ -17,7 +19,7 @@ class Message(ABC):
|
|
|
17
19
|
created_at: str = field(
|
|
18
20
|
init=False, default_factory=lambda: datetime.strftime(datetime.now(), Message.DATE_TIME_FORMAT)
|
|
19
21
|
)
|
|
20
|
-
metadata:
|
|
22
|
+
metadata: Metadata = field(init=False, default_factory=lambda: Metadata())
|
|
21
23
|
|
|
22
24
|
@classmethod
|
|
23
25
|
def fqn(cls) -> str:
|
|
@@ -27,7 +29,8 @@ class Message(ABC):
|
|
|
27
29
|
def restore(cls, **kwargs: Any) -> Self:
|
|
28
30
|
message_id = kwargs.pop("id")
|
|
29
31
|
created_at = kwargs.pop("created_at")
|
|
30
|
-
|
|
32
|
+
metadata_kwargs = kwargs.pop("metadata", None) or {}
|
|
33
|
+
metadata = Metadata(**metadata_kwargs)
|
|
31
34
|
|
|
32
35
|
instance = cls.__from_dict(kwargs) # type: ignore
|
|
33
36
|
|
|
@@ -65,11 +68,5 @@ class Message(ABC):
|
|
|
65
68
|
def parsed_created_at(self) -> datetime:
|
|
66
69
|
return datetime.strptime(self.created_at, self.DATE_TIME_FORMAT)
|
|
67
70
|
|
|
68
|
-
def add_metadata(self, metadata:
|
|
69
|
-
|
|
70
|
-
return None
|
|
71
|
-
|
|
72
|
-
if self.metadata is None:
|
|
73
|
-
object.__setattr__(self, "metadata", metadata)
|
|
74
|
-
else:
|
|
75
|
-
self.metadata.update(metadata)
|
|
71
|
+
def add_metadata(self, metadata: Metadata) -> None:
|
|
72
|
+
self.metadata.update(metadata)
|
buz/metadata.py
ADDED
|
@@ -121,14 +121,14 @@ buz/event/sync/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
121
121
|
buz/event/sync/models/sync_delivery_context.py,sha256=LHjrS6gV-19NEKwtAXVmefjPd-Dsp_Ym8RZb84T3lm8,190
|
|
122
122
|
buz/event/sync/sync_event_bus.py,sha256=LTJHNKy8LrbygO343AA4Zt_hmgTP9uY6TLdjKs8LuHM,1821
|
|
123
123
|
buz/event/transactional_outbox/__init__.py,sha256=k8ZBWCi12pWKXchHfgW_Raw4sVR8XkBLuPNW9jB9X2k,1381
|
|
124
|
-
buz/event/transactional_outbox/event_to_outbox_record_translator.py,sha256=
|
|
124
|
+
buz/event/transactional_outbox/event_to_outbox_record_translator.py,sha256=d20JOeKIrCcpPEV66TzWiQmYqoyZGyL7J1ys0dUfHFs,615
|
|
125
125
|
buz/event/transactional_outbox/fqn_to_event_mapper.py,sha256=ujcq6CfYqRJtM8f3SEEltbWN0Ru7NM5JfrbNdh4nvhQ,773
|
|
126
126
|
buz/event/transactional_outbox/outbox_criteria/__init__.py,sha256=_9YjtbyYdqvDKEAwSQUyOn46Fc2pSNzTl2I7AqisEoc,594
|
|
127
127
|
buz/event/transactional_outbox/outbox_criteria/deliverable_records_outbox_criteria_factory.py,sha256=vnaf6OPBAiw78RJZ8iOtaISbvuDIj4gN31aR-5k3BL8,347
|
|
128
128
|
buz/event/transactional_outbox/outbox_criteria/outbox_criteria.py,sha256=HlD7tt3V-qVdPrq4H0idvyDnP7ncD0ZYQJ_XkwLNg-o,695
|
|
129
129
|
buz/event/transactional_outbox/outbox_criteria/outbox_criteria_factory.py,sha256=XvqOfd7coi2veXyAvAthIBYRxS0Gpfb70nnkq9igvVM,220
|
|
130
130
|
buz/event/transactional_outbox/outbox_criteria/outbox_sorting_criteria.py,sha256=-ckCLHvHlkuabI0TZ4Tw-qAQhU1hFLAgCOwuvIs_vpI,89
|
|
131
|
-
buz/event/transactional_outbox/outbox_record.py,sha256=
|
|
131
|
+
buz/event/transactional_outbox/outbox_record.py,sha256=0lK9cG0wmP-t9JD8erxtcFFH9VoqXclRox3VIp-iSo8,1203
|
|
132
132
|
buz/event/transactional_outbox/outbox_record_finder/__init__.py,sha256=HdW8GTIaxYExlUWeXugFmkRDyHcBiOlAVwh17dpPOfQ,344
|
|
133
133
|
buz/event/transactional_outbox/outbox_record_finder/outbox_record_stream_finder.py,sha256=RjCetETAggQ5arXI4Terpyvh7xfz0eXXZon2-C1gXgw,239
|
|
134
134
|
buz/event/transactional_outbox/outbox_record_finder/polling_outbox_record_stream_finder.py,sha256=qdCsqPQaS6cJ7li0veA2bY17iUG7fd84MzIywG7cPHw,1078
|
|
@@ -185,7 +185,7 @@ buz/kafka/infrastructure/deserializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
|
|
|
185
185
|
buz/kafka/infrastructure/deserializers/byte_deserializer.py,sha256=4fc6t-zvcFx6F5eoyEixH2uN0cM6aB0YRGwowIzz1RA,211
|
|
186
186
|
buz/kafka/infrastructure/deserializers/bytes_to_message_deserializer.py,sha256=r40yq67DIElPi6ClmElbtR3VGrG2grNwgwuflXWOh20,345
|
|
187
187
|
buz/kafka/infrastructure/deserializers/implementations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
188
|
-
buz/kafka/infrastructure/deserializers/implementations/cdc/cdc_record_bytes_to_event_deserializer.py,sha256=
|
|
188
|
+
buz/kafka/infrastructure/deserializers/implementations/cdc/cdc_record_bytes_to_event_deserializer.py,sha256=JwtO0K1uJ1RmCw1Dd8rspPGBI-S-9j08GfczPXnN00s,2196
|
|
189
189
|
buz/kafka/infrastructure/deserializers/implementations/cdc/not_valid_cdc_message_exception.py,sha256=hgLLwTcC-C2DuJSOWUhmQsrd1bO9I1469869IqfAPOk,414
|
|
190
190
|
buz/kafka/infrastructure/deserializers/implementations/json_byte_deserializer.py,sha256=L4b164-KweiQUwyRONhTMIGnAz48UPk0btLqjGOTNdk,373
|
|
191
191
|
buz/kafka/infrastructure/deserializers/implementations/json_bytes_to_message_deserializer.py,sha256=YwugXkmOudMNtkVfCC4BFe3pFVpbM8rAL9bT88bZMRk,756
|
|
@@ -200,8 +200,8 @@ buz/kafka/infrastructure/kafka_python/kafka_python_producer.py,sha256=DkqqLSSXHB
|
|
|
200
200
|
buz/kafka/infrastructure/kafka_python/translators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
201
201
|
buz/kafka/infrastructure/kafka_python/translators/consumer_initial_offset_position_translator.py,sha256=hJ48_eyMcnbFL_Y5TOiMbGXrQSryuKk9CvP59MdqNOY,620
|
|
202
202
|
buz/kafka/infrastructure/serializers/byte_serializer.py,sha256=T83sLdX9V5Oh1mzjRwHi_1DsTFI7KefFj7kmnz7JVy4,207
|
|
203
|
-
buz/kafka/infrastructure/serializers/implementations/cdc_record_bytes_to_event_serializer.py,sha256=
|
|
204
|
-
buz/kafka/infrastructure/serializers/implementations/json_byte_serializer.py,sha256=
|
|
203
|
+
buz/kafka/infrastructure/serializers/implementations/cdc_record_bytes_to_event_serializer.py,sha256=w75PNn3rsi-eUpsvzCHwirWU7FvMKF74FfoGINbqxA4,1819
|
|
204
|
+
buz/kafka/infrastructure/serializers/implementations/json_byte_serializer.py,sha256=yCPlZ-TNoF5Jh0WUlhseC8rTnHk-IJgmAHmU58ninyA,1523
|
|
205
205
|
buz/kafka/infrastructure/serializers/kafka_header_serializer.py,sha256=ws9xr5lsJF6J-uVIplPym7vboo00KtXHfLJf8JjG0lo,649
|
|
206
206
|
buz/locator/__init__.py,sha256=my8qfHL5htIT9RFFjzV4zGIPVW72tu4SMQbKKqBeSKo,293
|
|
207
207
|
buz/locator/handler_fqn_not_found_exception.py,sha256=HfQb8gwqEpG1YfOc_IQlSCjRg0Ete0Aj_z3s7GPC-RM,206
|
|
@@ -216,7 +216,8 @@ buz/locator/sync/__init__.py,sha256=OljGqPXBPuxHzWcn-tQ0P-ObLRHbhoCmmXhsSIgVxJM,
|
|
|
216
216
|
buz/locator/sync/handler_already_registered_exception.py,sha256=7DAnkGD97OIC9gc7604dTMBtVUl8KereUvTMicK7FD0,245
|
|
217
217
|
buz/locator/sync/handler_not_registered_exception.py,sha256=cYKtKET1fHXaMvbBFJNLtvNF6-yp8pixUV62_CdTS54,234
|
|
218
218
|
buz/locator/sync/instance_locator.py,sha256=HGQ6uRIwrTruhax2i8L6clfJUywgHCHC3k2rwYqjApo,2076
|
|
219
|
-
buz/message.py,sha256=
|
|
219
|
+
buz/message.py,sha256=d9CMiVSlQVX7xXHi60NSHwqd9cLFoulKIlmlBqLqzaA,2779
|
|
220
|
+
buz/metadata.py,sha256=F0-zp_6Tplr2L3euZtuZR3jZ1qb2mW0X99I5ZvQE9Yg,250
|
|
220
221
|
buz/middleware/__init__.py,sha256=ndg9oGa4p8zOYC3i0nikfmSe3Ny5ug9RBwb9vZ7YhKM,176
|
|
221
222
|
buz/middleware/middleware.py,sha256=XNSlfSTyBAfHzvuFrjM0IOVtz35lP_f-xWbkfdMYltA,54
|
|
222
223
|
buz/middleware/middleware_chain_builder.py,sha256=D9zl5XSF5P65QpnPcbtyFaaVHqBTb6hX75aKI7CtiPU,1010
|
|
@@ -257,7 +258,7 @@ buz/serializer/message_to_json_bytes_serializer.py,sha256=RGZJ64t4t4Pz2FCASZZCv-
|
|
|
257
258
|
buz/wrapper/__init__.py,sha256=GnRdJFcncn-qp0hzDG9dBHLmTJSbHFVjE_yr-MdW_n4,77
|
|
258
259
|
buz/wrapper/async_to_sync.py,sha256=OfK-vrVUhuN-LLLvekLdMbQYtH0ue5lfbvuasj6ovMI,698
|
|
259
260
|
buz/wrapper/event_loop.py,sha256=pfBJ1g-8A2a3YgW8Gf9Fg0kkewoh3-wgTy2KIFDyfHk,266
|
|
260
|
-
buz-2.17.
|
|
261
|
-
buz-2.17.
|
|
262
|
-
buz-2.17.
|
|
263
|
-
buz-2.17.
|
|
261
|
+
buz-2.17.0rc2.dist-info/LICENSE,sha256=jcLgcIIVaBqaZNwe0kzGWSU99YgwMcI0IGv142wkYSM,1062
|
|
262
|
+
buz-2.17.0rc2.dist-info/METADATA,sha256=1gFRXIis0nVeEJ3CS1im64qJuzyFJx-Y_3c7PIjFsQg,12682
|
|
263
|
+
buz-2.17.0rc2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
264
|
+
buz-2.17.0rc2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|