aws-lambda-powertools 3.10.1a7__py3-none-any.whl → 3.10.1a9__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.
- aws_lambda_powertools/shared/version.py +1 -1
- aws_lambda_powertools/utilities/data_classes/kafka_event.py +17 -6
- aws_lambda_powertools/utilities/parser/models/kafka.py +8 -4
- {aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/METADATA +1 -1
- {aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/RECORD +7 -7
- {aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/LICENSE +0 -0
- {aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/WHEEL +0 -0
@@ -37,14 +37,25 @@ class KafkaEventRecord(DictWrapper):
|
|
37
37
|
return self["timestampType"]
|
38
38
|
|
39
39
|
@property
|
40
|
-
def key(self) -> str:
|
41
|
-
"""
|
42
|
-
|
40
|
+
def key(self) -> str | None:
|
41
|
+
"""
|
42
|
+
The raw (base64 encoded) Kafka record key.
|
43
|
+
|
44
|
+
This key is optional; if not provided,
|
45
|
+
a round-robin algorithm will be used to determine
|
46
|
+
the partition for the message.
|
47
|
+
"""
|
48
|
+
|
49
|
+
return self.get("key")
|
43
50
|
|
44
51
|
@property
|
45
|
-
def decoded_key(self) -> bytes:
|
46
|
-
"""
|
47
|
-
|
52
|
+
def decoded_key(self) -> bytes | None:
|
53
|
+
"""
|
54
|
+
Decode the base64 encoded key as bytes.
|
55
|
+
|
56
|
+
If the key is not provided, this will return None.
|
57
|
+
"""
|
58
|
+
return None if self.key is None else base64.b64decode(self.key)
|
48
59
|
|
49
60
|
@property
|
50
61
|
def value(self) -> str:
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from datetime import datetime
|
2
|
-
from typing import Dict, List, Literal, Type, Union
|
2
|
+
from typing import Dict, List, Literal, Optional, Type, Union
|
3
3
|
|
4
4
|
from pydantic import BaseModel, field_validator
|
5
5
|
|
@@ -14,12 +14,16 @@ class KafkaRecordModel(BaseModel):
|
|
14
14
|
offset: int
|
15
15
|
timestamp: datetime
|
16
16
|
timestampType: str
|
17
|
-
key: bytes
|
17
|
+
key: Optional[bytes] = None
|
18
18
|
value: Union[str, Type[BaseModel]]
|
19
19
|
headers: List[Dict[str, bytes]]
|
20
20
|
|
21
|
-
#
|
22
|
-
|
21
|
+
# key is optional; only decode if not None
|
22
|
+
@field_validator("key", mode="before")
|
23
|
+
def decode_key(cls, value):
|
24
|
+
if value is not None:
|
25
|
+
return base64_decode(value)
|
26
|
+
return value
|
23
27
|
|
24
28
|
@field_validator("value", mode="before")
|
25
29
|
def data_base64_decode(cls, value):
|
{aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: aws_lambda_powertools
|
3
|
-
Version: 3.10.
|
3
|
+
Version: 3.10.1a9
|
4
4
|
Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
|
5
5
|
License: MIT
|
6
6
|
Keywords: aws_lambda_powertools,aws,tracing,logging,lambda,powertools,feature_flags,idempotency,middleware
|
{aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/RECORD
RENAMED
@@ -88,7 +88,7 @@ aws_lambda_powertools/shared/json_encoder.py,sha256=JQeWNu-4M7_xI_hqYExrxsb3OcEH
|
|
88
88
|
aws_lambda_powertools/shared/lazy_import.py,sha256=TbXQm2bcwXdZrYdBaJJXIswyLlumM85RJ_A_0w-h-GU,2019
|
89
89
|
aws_lambda_powertools/shared/types.py,sha256=EZ_tbX3F98LA4Zcra1hTEjzRacpZAtggK957Zcv1oKg,135
|
90
90
|
aws_lambda_powertools/shared/user_agent.py,sha256=DrCMFQuT4a4iIrpcWpAIjY37EFqR9-QxlxDGD-Nn9Gg,7081
|
91
|
-
aws_lambda_powertools/shared/version.py,sha256=
|
91
|
+
aws_lambda_powertools/shared/version.py,sha256=a_aW3KsPDj3Dlwr33G534QXbj2CZ_-eBzPRSLgfrEHI,85
|
92
92
|
aws_lambda_powertools/tracing/__init__.py,sha256=f4bMThOPBPWTPVcYqcAIErAJPerMsf3H_Z4gCXCsK9I,141
|
93
93
|
aws_lambda_powertools/tracing/base.py,sha256=WSO986XGBOe9K0F2SnG6ustJokIrtO0m0mcL8N7mfno,4544
|
94
94
|
aws_lambda_powertools/tracing/extensions.py,sha256=APOfXOq-hRBKaK5WyfIyrd_6M1_9SWJZ3zxLA9jDZzU,492
|
@@ -125,7 +125,7 @@ aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py,sha256=j8
|
|
125
125
|
aws_lambda_powertools/utilities/data_classes/event_bridge_event.py,sha256=TeTtx2jOKyZSVdSPFrtxZUgv0Yt6HW_H7J5NNxy_mHo,2434
|
126
126
|
aws_lambda_powertools/utilities/data_classes/event_source.py,sha256=CKo1_TY0UcUVsh3PUk39z2WFVC2Bf4QgXWj93eEHbcY,1211
|
127
127
|
aws_lambda_powertools/utilities/data_classes/iot_registry_event.py,sha256=wUa0Gr64maNGkd9qKNxtwFHawIJN-nj9X8uLFdINE7c,10842
|
128
|
-
aws_lambda_powertools/utilities/data_classes/kafka_event.py,sha256=
|
128
|
+
aws_lambda_powertools/utilities/data_classes/kafka_event.py,sha256=21K9iSH0sv_oj7alGWcommPUNDfto-tovIHspdIdsH4,4119
|
129
129
|
aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py,sha256=5H-Rt6LG80_jVkTlWxhutZH0cv4Xrhzm-fqwkpjPfQM,10508
|
130
130
|
aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py,sha256=O42TpHCJHM5mz_b3Z65cJJ2DB19sb-b3rxced6bQB_Y,3958
|
131
131
|
aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py,sha256=dFhL3IYebW4WeJc1XJJYmF94gI_qYeay6EpT9b2mDZU,633
|
@@ -218,7 +218,7 @@ aws_lambda_powertools/utilities/parser/models/cloudwatch.py,sha256=1y2WmgBbIo6Gk
|
|
218
218
|
aws_lambda_powertools/utilities/parser/models/dynamodb.py,sha256=ktjvd5L7LLvitgi1yPFbtc_TK8J_3yzqIHmaZ4UfTt8,2197
|
219
219
|
aws_lambda_powertools/utilities/parser/models/event_bridge.py,sha256=Fanggwc7Ug_YTzFGl1utSRn7fjxILNR_GnkrNG9IQ88,941
|
220
220
|
aws_lambda_powertools/utilities/parser/models/iot_registry_events.py,sha256=hnuCxt9jYri_MRI9Z-n7aknA2CcBIHkPD__G9jSQEZ4,5448
|
221
|
-
aws_lambda_powertools/utilities/parser/models/kafka.py,sha256=
|
221
|
+
aws_lambda_powertools/utilities/parser/models/kafka.py,sha256=JbnuSOX9D_IqUjvxvajsIJT4uw8adD_EOkEJx8mhkws,1919
|
222
222
|
aws_lambda_powertools/utilities/parser/models/kinesis.py,sha256=-8zJh1GJd69QCo0tGQkg7SEqbcWJCbwmeSb1Rx8Jt40,1790
|
223
223
|
aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py,sha256=K1MbkoX9yZjMcZOJ7H7nek3OgVoBAjtqorKlcoWRlQ8,939
|
224
224
|
aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py,sha256=VTXGKlo0aBpi8njpOOiTaNFncl0_vRRWmiI7Z6ngKPI,875
|
@@ -258,7 +258,7 @@ aws_lambda_powertools/utilities/validation/envelopes.py,sha256=YD5HOFx6IClQgii0n
|
|
258
258
|
aws_lambda_powertools/utilities/validation/exceptions.py,sha256=PKy_19zQMBJGCMMFl-sMkcm-cc0v3zZBn_bhGE4wKNo,2084
|
259
259
|
aws_lambda_powertools/utilities/validation/validator.py,sha256=khCqFhACSdn0nKyYRRPiC5Exht956hTfSfhlV3IRmpg,10099
|
260
260
|
aws_lambda_powertools/warnings/__init__.py,sha256=vqDVeZz8wGtD8WGYNSkQE7AHwqtIrPGRxuoJR_BBnSs,1193
|
261
|
-
aws_lambda_powertools-3.10.
|
262
|
-
aws_lambda_powertools-3.10.
|
263
|
-
aws_lambda_powertools-3.10.
|
264
|
-
aws_lambda_powertools-3.10.
|
261
|
+
aws_lambda_powertools-3.10.1a9.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
|
262
|
+
aws_lambda_powertools-3.10.1a9.dist-info/METADATA,sha256=OE2G3Tl6fQ4ywLau2yDAAkxSJdjjgJ1QW6BtlNqeC9w,11187
|
263
|
+
aws_lambda_powertools-3.10.1a9.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
264
|
+
aws_lambda_powertools-3.10.1a9.dist-info/RECORD,,
|
{aws_lambda_powertools-3.10.1a7.dist-info → aws_lambda_powertools-3.10.1a9.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|