aws-lambda-powertools 3.8.1a7__py3-none-any.whl → 3.8.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/logging/logger.py +6 -0
- aws_lambda_powertools/metrics/functions.py +38 -0
- aws_lambda_powertools/metrics/metrics.py +2 -0
- aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +10 -1
- aws_lambda_powertools/metrics/provider/datadog/datadog.py +7 -2
- aws_lambda_powertools/shared/constants.py +1 -0
- aws_lambda_powertools/shared/version.py +1 -1
- aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +7 -54
- {aws_lambda_powertools-3.8.1a7.dist-info → aws_lambda_powertools-3.8.1a9.dist-info}/METADATA +1 -1
- {aws_lambda_powertools-3.8.1a7.dist-info → aws_lambda_powertools-3.8.1a9.dist-info}/RECORD +12 -12
- {aws_lambda_powertools-3.8.1a7.dist-info → aws_lambda_powertools-3.8.1a9.dist-info}/LICENSE +0 -0
- {aws_lambda_powertools-3.8.1a7.dist-info → aws_lambda_powertools-3.8.1a9.dist-info}/WHEEL +0 -0
@@ -1127,6 +1127,12 @@ class Logger:
|
|
1127
1127
|
tracer_id = get_tracer_id()
|
1128
1128
|
|
1129
1129
|
if tracer_id and self._buffer_config:
|
1130
|
+
if not self._buffer_cache.get(tracer_id):
|
1131
|
+
# Detect new Lambda invocation context and reset buffer to maintain log isolation
|
1132
|
+
# Ensures logs from previous invocations do not leak into current execution
|
1133
|
+
# Prevent memory excessive usage
|
1134
|
+
self._buffer_cache.clear()
|
1135
|
+
|
1130
1136
|
log_record: dict[str, Any] = _create_buffer_record(
|
1131
1137
|
level=level,
|
1132
1138
|
msg=msg,
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import os
|
4
4
|
from datetime import datetime
|
5
|
+
from typing import TYPE_CHECKING
|
5
6
|
|
6
7
|
from aws_lambda_powertools.metrics.provider.cloudwatch_emf.exceptions import (
|
7
8
|
MetricResolutionError,
|
@@ -11,6 +12,9 @@ from aws_lambda_powertools.metrics.provider.cloudwatch_emf.metric_properties imp
|
|
11
12
|
from aws_lambda_powertools.shared import constants
|
12
13
|
from aws_lambda_powertools.shared.functions import strtobool
|
13
14
|
|
15
|
+
if TYPE_CHECKING:
|
16
|
+
from aws_lambda_powertools.utilities.typing.lambda_context import LambdaContext
|
17
|
+
|
14
18
|
|
15
19
|
def extract_cloudwatch_metric_resolution_value(metric_resolutions: list, resolution: int | MetricResolution) -> int:
|
16
20
|
"""Return metric value from CloudWatch metric unit whether that's str or MetricResolution enum
|
@@ -161,3 +165,37 @@ def is_metrics_disabled() -> bool:
|
|
161
165
|
]
|
162
166
|
|
163
167
|
return any(disable_conditions)
|
168
|
+
|
169
|
+
|
170
|
+
def resolve_cold_start_function_name(function_name: str | None, context: LambdaContext) -> str:
|
171
|
+
"""
|
172
|
+
Resolve the function name for ColdStart metrics with a prioritized approach.
|
173
|
+
|
174
|
+
Parameters
|
175
|
+
----------
|
176
|
+
function_name : str, optional
|
177
|
+
Explicitly provided function name (highest priority).
|
178
|
+
context : LambdaContext
|
179
|
+
AWS Lambda context object.
|
180
|
+
|
181
|
+
Returns
|
182
|
+
-------
|
183
|
+
str
|
184
|
+
Resolved function name.
|
185
|
+
|
186
|
+
Notes
|
187
|
+
-----
|
188
|
+
Function name resolution follows this priority:
|
189
|
+
1. Explicitly provided function_name
|
190
|
+
2. Environment variable POWERTOOLS_METRICS_FUNCTION_NAME
|
191
|
+
3. Lambda context function name
|
192
|
+
"""
|
193
|
+
|
194
|
+
if function_name:
|
195
|
+
return function_name
|
196
|
+
|
197
|
+
metrics_function_name_env = os.getenv(constants.METRICS_FUNCTION_NAME_ENV)
|
198
|
+
if metrics_function_name_env:
|
199
|
+
return metrics_function_name_env
|
200
|
+
|
201
|
+
return context.function_name
|
@@ -86,6 +86,7 @@ class Metrics:
|
|
86
86
|
service: str | None = None,
|
87
87
|
namespace: str | None = None,
|
88
88
|
provider: AmazonCloudWatchEMFProvider | None = None,
|
89
|
+
function_name: str | None = None,
|
89
90
|
):
|
90
91
|
self.metric_set = self._metrics
|
91
92
|
self.metadata_set = self._metadata
|
@@ -102,6 +103,7 @@ class Metrics:
|
|
102
103
|
dimension_set=self.dimension_set,
|
103
104
|
metadata_set=self.metadata_set,
|
104
105
|
default_dimensions=self._default_dimensions,
|
106
|
+
function_name=function_name,
|
105
107
|
)
|
106
108
|
else:
|
107
109
|
self.provider = provider
|
@@ -16,6 +16,7 @@ from aws_lambda_powertools.metrics.functions import (
|
|
16
16
|
extract_cloudwatch_metric_resolution_value,
|
17
17
|
extract_cloudwatch_metric_unit_value,
|
18
18
|
is_metrics_disabled,
|
19
|
+
resolve_cold_start_function_name,
|
19
20
|
validate_emf_timestamp,
|
20
21
|
)
|
21
22
|
from aws_lambda_powertools.metrics.provider.base import BaseProvider
|
@@ -51,6 +52,10 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
|
|
51
52
|
metric namespace to be set for all metrics
|
52
53
|
POWERTOOLS_SERVICE_NAME : str
|
53
54
|
service name used for default dimension
|
55
|
+
POWERTOOLS_METRICS_FUNCTION_NAME: str
|
56
|
+
function name used as dimension for the ColdStart metric
|
57
|
+
POWERTOOLS_METRICS_DISABLED: bool
|
58
|
+
disables all metrics emitted by Powertools
|
54
59
|
|
55
60
|
Raises
|
56
61
|
------
|
@@ -72,12 +77,14 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
|
|
72
77
|
metadata_set: dict[str, Any] | None = None,
|
73
78
|
service: str | None = None,
|
74
79
|
default_dimensions: dict[str, Any] | None = None,
|
80
|
+
function_name: str | None = None,
|
75
81
|
):
|
76
82
|
self.metric_set = metric_set if metric_set is not None else {}
|
77
83
|
self.dimension_set = dimension_set if dimension_set is not None else {}
|
78
84
|
self.default_dimensions = default_dimensions or {}
|
79
85
|
self.namespace = resolve_env_var_choice(choice=namespace, env=os.getenv(constants.METRICS_NAMESPACE_ENV))
|
80
86
|
self.service = resolve_env_var_choice(choice=service, env=os.getenv(constants.SERVICE_NAME_ENV))
|
87
|
+
self.function_name = function_name
|
81
88
|
|
82
89
|
self.metadata_set = metadata_set if metadata_set is not None else {}
|
83
90
|
self.timestamp: int | None = None
|
@@ -445,9 +452,11 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
|
|
445
452
|
context : Any
|
446
453
|
Lambda context
|
447
454
|
"""
|
455
|
+
|
456
|
+
cold_start_function_name = resolve_cold_start_function_name(function_name=self.function_name, context=context)
|
448
457
|
logger.debug("Adding cold start metric and function_name dimension")
|
449
458
|
with single_metric(name="ColdStart", unit=MetricUnit.Count, value=1, namespace=self.namespace) as metric:
|
450
|
-
metric.add_dimension(name="function_name", value=
|
459
|
+
metric.add_dimension(name="function_name", value=cold_start_function_name)
|
451
460
|
if self.service:
|
452
461
|
metric.add_dimension(name="service", value=str(self.service))
|
453
462
|
|
@@ -10,7 +10,7 @@ import warnings
|
|
10
10
|
from typing import TYPE_CHECKING, Any
|
11
11
|
|
12
12
|
from aws_lambda_powertools.metrics.exceptions import MetricValueError, SchemaValidationError
|
13
|
-
from aws_lambda_powertools.metrics.functions import is_metrics_disabled
|
13
|
+
from aws_lambda_powertools.metrics.functions import is_metrics_disabled, resolve_cold_start_function_name
|
14
14
|
from aws_lambda_powertools.metrics.provider import BaseProvider
|
15
15
|
from aws_lambda_powertools.metrics.provider.datadog.warnings import DatadogDataValidationWarning
|
16
16
|
from aws_lambda_powertools.shared import constants
|
@@ -58,8 +58,10 @@ class DatadogProvider(BaseProvider):
|
|
58
58
|
namespace: str | None = None,
|
59
59
|
flush_to_log: bool | None = None,
|
60
60
|
default_tags: dict[str, Any] | None = None,
|
61
|
+
function_name: str | None = None,
|
61
62
|
):
|
62
63
|
self.metric_set = metric_set if metric_set is not None else []
|
64
|
+
self.function_name = function_name
|
63
65
|
self.namespace = (
|
64
66
|
resolve_env_var_choice(choice=namespace, env=os.getenv(constants.METRICS_NAMESPACE_ENV))
|
65
67
|
or DEFAULT_NAMESPACE
|
@@ -224,8 +226,11 @@ class DatadogProvider(BaseProvider):
|
|
224
226
|
context : Any
|
225
227
|
Lambda context
|
226
228
|
"""
|
229
|
+
|
230
|
+
cold_start_function_name = resolve_cold_start_function_name(function_name=self.function_name, context=context)
|
231
|
+
|
227
232
|
logger.debug("Adding cold start metric and function_name tagging")
|
228
|
-
self.add_metric(name="ColdStart", value=1, function_name=
|
233
|
+
self.add_metric(name="ColdStart", value=1, function_name=cold_start_function_name)
|
229
234
|
|
230
235
|
def log_metrics(
|
231
236
|
self,
|
@@ -41,6 +41,7 @@ METRICS_NAMESPACE_ENV: str = "POWERTOOLS_METRICS_NAMESPACE"
|
|
41
41
|
DATADOG_FLUSH_TO_LOG: str = "DD_FLUSH_TO_LOG"
|
42
42
|
SERVICE_NAME_ENV: str = "POWERTOOLS_SERVICE_NAME"
|
43
43
|
METRICS_DISABLED_ENV: str = "POWERTOOLS_METRICS_DISABLED"
|
44
|
+
METRICS_FUNCTION_NAME_ENV: str = "POWERTOOLS_METRICS_FUNCTION_NAME"
|
44
45
|
# If the timestamp of log event is more than 2 hours in future, the log event is skipped.
|
45
46
|
# If the timestamp of log event is more than 14 days in past, the log event is skipped.
|
46
47
|
# See https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html
|
@@ -495,7 +495,7 @@ class PreTokenGenerationTriggerV2EventRequest(PreTokenGenerationTriggerEventRequ
|
|
495
495
|
return self.get("scopes") or []
|
496
496
|
|
497
497
|
|
498
|
-
class
|
498
|
+
class ClaimsOverrideBase(DictWrapper):
|
499
499
|
@property
|
500
500
|
def claims_to_add_or_override(self) -> dict[str, str]:
|
501
501
|
return self.get("claimsToAddOrOverride") or {}
|
@@ -515,6 +515,8 @@ class ClaimsOverrideDetails(DictWrapper):
|
|
515
515
|
"""A list that contains claims to be suppressed from the identity token."""
|
516
516
|
self._data["claimsToSuppress"] = value
|
517
517
|
|
518
|
+
|
519
|
+
class GroupConfigurationBase(DictWrapper):
|
518
520
|
@property
|
519
521
|
def group_configuration(self) -> GroupOverrideDetails | None:
|
520
522
|
group_override_details = self.get("groupOverrideDetails")
|
@@ -549,26 +551,11 @@ class ClaimsOverrideDetails(DictWrapper):
|
|
549
551
|
self["groupOverrideDetails"]["preferredRole"] = value
|
550
552
|
|
551
553
|
|
552
|
-
class
|
553
|
-
|
554
|
-
def claims_to_add_or_override(self) -> dict[str, str]:
|
555
|
-
return self.get("claimsToAddOrOverride") or {}
|
556
|
-
|
557
|
-
@claims_to_add_or_override.setter
|
558
|
-
def claims_to_add_or_override(self, value: dict[str, str]):
|
559
|
-
"""A map of one or more key-value pairs of claims to add or override.
|
560
|
-
For group related claims, use groupOverrideDetails instead."""
|
561
|
-
self._data["claimsToAddOrOverride"] = value
|
562
|
-
|
563
|
-
@property
|
564
|
-
def claims_to_suppress(self) -> list[str]:
|
565
|
-
return self.get("claimsToSuppress") or []
|
554
|
+
class ClaimsOverrideDetails(ClaimsOverrideBase, GroupConfigurationBase):
|
555
|
+
pass
|
566
556
|
|
567
|
-
@claims_to_suppress.setter
|
568
|
-
def claims_to_suppress(self, value: list[str]):
|
569
|
-
"""A list that contains claims to be suppressed from the identity token."""
|
570
|
-
self._data["claimsToSuppress"] = value
|
571
557
|
|
558
|
+
class TokenClaimsAndScopeOverrideDetails(ClaimsOverrideBase):
|
572
559
|
@property
|
573
560
|
def scopes_to_add(self) -> list[str]:
|
574
561
|
return self.get("scopesToAdd") or []
|
@@ -586,8 +573,7 @@ class TokenClaimsAndScopeOverrideDetails(DictWrapper):
|
|
586
573
|
self._data["scopesToSuppress"] = value
|
587
574
|
|
588
575
|
|
589
|
-
class ClaimsAndScopeOverrideDetails(
|
590
|
-
|
576
|
+
class ClaimsAndScopeOverrideDetails(GroupConfigurationBase):
|
591
577
|
@property
|
592
578
|
def id_token_generation(self) -> TokenClaimsAndScopeOverrideDetails | None:
|
593
579
|
id_token_generation_details = self._data.get("idTokenGeneration")
|
@@ -632,39 +618,6 @@ class ClaimsAndScopeOverrideDetails(DictWrapper):
|
|
632
618
|
"""
|
633
619
|
self._data["accessTokenGeneration"] = value
|
634
620
|
|
635
|
-
@property
|
636
|
-
def group_configuration(self) -> GroupOverrideDetails | None:
|
637
|
-
group_override_details = self.get("groupOverrideDetails")
|
638
|
-
return None if group_override_details is None else GroupOverrideDetails(group_override_details)
|
639
|
-
|
640
|
-
@group_configuration.setter
|
641
|
-
def group_configuration(self, value: dict[str, Any]):
|
642
|
-
"""The output object containing the current group configuration.
|
643
|
-
|
644
|
-
It includes groupsToOverride, iamRolesToOverride, and preferredRole.
|
645
|
-
|
646
|
-
The groupOverrideDetails object is replaced with the one you provide. If you provide an empty or null
|
647
|
-
object in the response, then the groups are suppressed. To leave the existing group configuration
|
648
|
-
as is, copy the value of the request's groupConfiguration object to the groupOverrideDetails object
|
649
|
-
in the response, and pass it back to the service.
|
650
|
-
"""
|
651
|
-
self._data["groupOverrideDetails"] = value
|
652
|
-
|
653
|
-
def set_group_configuration_groups_to_override(self, value: list[str]):
|
654
|
-
"""A list of the group names that are associated with the user that the identity token is issued for."""
|
655
|
-
self._data.setdefault("groupOverrideDetails", {})
|
656
|
-
self["groupOverrideDetails"]["groupsToOverride"] = value
|
657
|
-
|
658
|
-
def set_group_configuration_iam_roles_to_override(self, value: list[str]):
|
659
|
-
"""A list of the current IAM roles associated with these groups."""
|
660
|
-
self._data.setdefault("groupOverrideDetails", {})
|
661
|
-
self["groupOverrideDetails"]["iamRolesToOverride"] = value
|
662
|
-
|
663
|
-
def set_group_configuration_preferred_role(self, value: str):
|
664
|
-
"""A string indicating the preferred IAM role."""
|
665
|
-
self._data.setdefault("groupOverrideDetails", {})
|
666
|
-
self["groupOverrideDetails"]["preferredRole"] = value
|
667
|
-
|
668
621
|
|
669
622
|
class PreTokenGenerationTriggerEventResponse(DictWrapper):
|
670
623
|
@property
|
{aws_lambda_powertools-3.8.1a7.dist-info → aws_lambda_powertools-3.8.1a9.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: aws_lambda_powertools
|
3
|
-
Version: 3.8.
|
3
|
+
Version: 3.8.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
|
@@ -49,26 +49,26 @@ aws_lambda_powertools/logging/formatter.py,sha256=dmE6XXmkWVkYbWdy1Kg69TYJJ0yDXf
|
|
49
49
|
aws_lambda_powertools/logging/formatters/__init__.py,sha256=OqddpJcWMqRYhx5SFy-SPqtt72tkRZbfpEi_oCC47eI,301
|
50
50
|
aws_lambda_powertools/logging/formatters/datadog.py,sha256=NwaaBOp7jIlOAH158NzyvW-EwmWqqnYX9f7Uu_nIUYQ,3169
|
51
51
|
aws_lambda_powertools/logging/lambda_context.py,sha256=VHst_6hxMpXgScoxNwaC61UXPTIdd3AEBHTPzb4esPc,1736
|
52
|
-
aws_lambda_powertools/logging/logger.py,sha256=
|
52
|
+
aws_lambda_powertools/logging/logger.py,sha256=h4jAJMXRZhYQv84j0bnzyxaHUzN1RePn1XdS9yH5imM,48679
|
53
53
|
aws_lambda_powertools/logging/types.py,sha256=Zc95nGdZ2sJUEPdwR0uoArT_F-JSKfpS_LokdCVO0nQ,1263
|
54
54
|
aws_lambda_powertools/logging/utils.py,sha256=NirAObjkkarN5fX2diHs0Ln_8KHLueviL-jCKhckIBM,4069
|
55
55
|
aws_lambda_powertools/metrics/__init__.py,sha256=B5FpJS_VR7zivm2ylvUF8RHBthKz4aDk0VA5GpDn3Tk,592
|
56
56
|
aws_lambda_powertools/metrics/base.py,sha256=Ric6mWDekLgbGHgCW706vdTob40FiIsXvbA50HEDyBo,23774
|
57
57
|
aws_lambda_powertools/metrics/exceptions.py,sha256=HX9k4L4RXI9Ol8kVr5U9FYmUsrN_3v2tugAmzNVp0ng,418
|
58
|
-
aws_lambda_powertools/metrics/functions.py,sha256=
|
58
|
+
aws_lambda_powertools/metrics/functions.py,sha256=Njw-gKtAt_YpKw5ltQMcKFbGvJBFbs3J60t3C0oczB4,6190
|
59
59
|
aws_lambda_powertools/metrics/metric.py,sha256=utHoGjKlx-e1zhgq51ChXRGx3MNSNv3qwanWhlksY0s,165
|
60
|
-
aws_lambda_powertools/metrics/metrics.py,sha256=
|
60
|
+
aws_lambda_powertools/metrics/metrics.py,sha256=wy06nwBDzR03EHQxJ0N2S82fVHD47l237G1dvUQcaD8,8246
|
61
61
|
aws_lambda_powertools/metrics/provider/__init__.py,sha256=7Cg6Rwzy6pYW6LjeWGEl0opDaKleBSGrMPfGNXCH1i4,104
|
62
62
|
aws_lambda_powertools/metrics/provider/base.py,sha256=w1JBW2uYezxdYv3BbersCpzS4-GEfm9G8xk4opS1C-o,6879
|
63
63
|
aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
|
-
aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py,sha256=
|
64
|
+
aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py,sha256=7o830Az2VksFAQQPZqGK7HEmz4Z8D-lHdemd_1aLRCQ,18619
|
65
65
|
aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py,sha256=ByQMR69yb7CWkHvdI8fToZwJGTVDsiFuM1xijvyzuG8,38
|
66
66
|
aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py,sha256=FdDzZ5sMLvZQqv2XR55haKdhVuCCCSYIHoat3h-ZpNI,218
|
67
67
|
aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py,sha256=pzVuLOFzjyau1GGvTNpHQvmrPXDWpPeG16FaBEsHCH0,1007
|
68
68
|
aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py,sha256=Rhnn9VkPX41tVjV1dOTqk3gyPRnvcpSNDFC2m2kjSaQ,587
|
69
69
|
aws_lambda_powertools/metrics/provider/cold_start.py,sha256=j-_Mtsr4DnsItiTdrNnx63zH_wsonl9xsGAb8QuKGSs,168
|
70
70
|
aws_lambda_powertools/metrics/provider/datadog/__init__.py,sha256=3LivCIwqyI7KKEeSLDcxN1Z9RObChoMg5hpiXPin2C0,225
|
71
|
-
aws_lambda_powertools/metrics/provider/datadog/datadog.py,sha256=
|
71
|
+
aws_lambda_powertools/metrics/provider/datadog/datadog.py,sha256=zw-AtT4gPqqNLjsQe99flB4eIK-CE1bbWaaSa9D5cFg,14491
|
72
72
|
aws_lambda_powertools/metrics/provider/datadog/metrics.py,sha256=_7dx4sSx6aXGJ2uv3iisqr6AyqmKjHBATOLdI1hjJhw,4285
|
73
73
|
aws_lambda_powertools/metrics/provider/datadog/warnings.py,sha256=tpnTQNhb6NhQp_NZSgUR4SsDSASqG6XBpzPZBgSVXlw,191
|
74
74
|
aws_lambda_powertools/metrics/types.py,sha256=6EhODeacBtnAslVf-YVZ3iPNIE3RwDN95DtuIpefpmA,185
|
@@ -79,7 +79,7 @@ aws_lambda_powertools/package_logger.py,sha256=Q2QX1JXDdc-Piekk1r19qEIDUMN2i4ZZK
|
|
79
79
|
aws_lambda_powertools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
80
|
aws_lambda_powertools/shared/__init__.py,sha256=o2ycxf3MCYfWXm1P-zuTKap_uzJiu8uYmVcCX7s4gUk,75
|
81
81
|
aws_lambda_powertools/shared/cache_dict.py,sha256=X3Ykh-_Fb4Wkc5RGjaostC_FUvMyY_H1L2bOB89A3vM,916
|
82
|
-
aws_lambda_powertools/shared/constants.py,sha256=
|
82
|
+
aws_lambda_powertools/shared/constants.py,sha256=Na17ZV15AgUqWdkrNg-WYXv8FEqwY1ga7KwClgePoG4,2805
|
83
83
|
aws_lambda_powertools/shared/cookies.py,sha256=X2Bkcf7MAmV75PJFm07QGkL4n1psk4HIGpUxzrsjiJY,3868
|
84
84
|
aws_lambda_powertools/shared/dynamodb_deserializer.py,sha256=tWw8MLXEitInnViFkt_xSBkXD_V1n1KcWbqBXBxwUlE,4054
|
85
85
|
aws_lambda_powertools/shared/functions.py,sha256=N5VIND3xW-eZHqY2uPsBMtDbtMx64iklUKByeCh58rc,7625
|
@@ -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=APkI38HbiTpSF19NSNii8Ydx73vmVUVotgEQ9jHruEI,124
|
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=0GimQ5exesjPqSg5Vhs7H9b-rMcb1FBGy3N7PNMhxSk,84
|
92
92
|
aws_lambda_powertools/tracing/__init__.py,sha256=f4bMThOPBPWTPVcYqcAIErAJPerMsf3H_Z4gCXCsK9I,141
|
93
93
|
aws_lambda_powertools/tracing/base.py,sha256=DbLD8OSK05KLdSV36oNA5wDSGv8KbcOD19qMUqoXh58,4513
|
94
94
|
aws_lambda_powertools/tracing/extensions.py,sha256=APOfXOq-hRBKaK5WyfIyrd_6M1_9SWJZ3zxLA9jDZzU,492
|
@@ -118,7 +118,7 @@ aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py,sha256=uu
|
|
118
118
|
aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py,sha256=EextMoBG9v_e5bS9Q1DlzVvzljGtIL1ddBszt5fgTeY,1191
|
119
119
|
aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py,sha256=chJSwmEj7GcKNlqY3HyWHOuhQIQSjqvA4fUxs-PxovA,464
|
120
120
|
aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py,sha256=Y5INxxycG87n55YvRq4h5TXMJNXXB3Ac38zvXg5f_h4,10530
|
121
|
-
aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py,sha256=
|
121
|
+
aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py,sha256=oHYYcFYeX5bQp7avtrLtwizWqSmJzLA3qqVvZ4ybj94,40540
|
122
122
|
aws_lambda_powertools/utilities/data_classes/common.py,sha256=PFQBhmGPvBtvdUtzk1wtEokFpatZkUl4s6C6x6lvCGU,19505
|
123
123
|
aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py,sha256=4_L73ATO-M_2zUD3r0zS4c6I4zoLxTK9l8JQc-dATog,5468
|
124
124
|
aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py,sha256=BrgOyFREC9gjj_ULhKB3L_7EbQ6ptV-8Was1TulPeWE,6102
|
@@ -257,7 +257,7 @@ aws_lambda_powertools/utilities/validation/envelopes.py,sha256=YD5HOFx6IClQgii0n
|
|
257
257
|
aws_lambda_powertools/utilities/validation/exceptions.py,sha256=PKy_19zQMBJGCMMFl-sMkcm-cc0v3zZBn_bhGE4wKNo,2084
|
258
258
|
aws_lambda_powertools/utilities/validation/validator.py,sha256=x_1qpuKJBuWpgNU-zCD3Di-vXrZfyUu7oA5RmjZjr84,10034
|
259
259
|
aws_lambda_powertools/warnings/__init__.py,sha256=vqDVeZz8wGtD8WGYNSkQE7AHwqtIrPGRxuoJR_BBnSs,1193
|
260
|
-
aws_lambda_powertools-3.8.
|
261
|
-
aws_lambda_powertools-3.8.
|
262
|
-
aws_lambda_powertools-3.8.
|
263
|
-
aws_lambda_powertools-3.8.
|
260
|
+
aws_lambda_powertools-3.8.1a9.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
|
261
|
+
aws_lambda_powertools-3.8.1a9.dist-info/METADATA,sha256=aZYnZlk41Yz_72E1iQe_wBMG0Nz86xNm0lq6ZWyebvk,11156
|
262
|
+
aws_lambda_powertools-3.8.1a9.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
263
|
+
aws_lambda_powertools-3.8.1a9.dist-info/RECORD,,
|
File without changes
|
File without changes
|