aws-lambda-powertools 3.10.1a5__py3-none-any.whl → 3.10.1a7__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/event_handler/api_gateway.py +8 -5
- aws_lambda_powertools/event_handler/appsync.py +3 -1
- aws_lambda_powertools/event_handler/bedrock_agent.py +8 -8
- aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +4 -1
- aws_lambda_powertools/event_handler/graphql_appsync/base.py +4 -1
- aws_lambda_powertools/event_handler/graphql_appsync/router.py +3 -1
- aws_lambda_powertools/event_handler/lambda_function_url.py +2 -1
- aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +1 -1
- aws_lambda_powertools/event_handler/openapi/compat.py +16 -18
- aws_lambda_powertools/event_handler/openapi/dependant.py +3 -1
- aws_lambda_powertools/event_handler/openapi/encoders.py +3 -1
- aws_lambda_powertools/event_handler/openapi/exceptions.py +2 -1
- aws_lambda_powertools/event_handler/openapi/models.py +0 -1
- aws_lambda_powertools/event_handler/openapi/params.py +3 -1
- aws_lambda_powertools/event_handler/openapi/types.py +2 -1
- aws_lambda_powertools/event_handler/util.py +5 -2
- aws_lambda_powertools/event_handler/vpc_lattice.py +2 -1
- aws_lambda_powertools/logging/logger.py +34 -4
- aws_lambda_powertools/middleware_factory/__init__.py +1 -1
- aws_lambda_powertools/middleware_factory/factory.py +4 -1
- aws_lambda_powertools/shared/dynamodb_deserializer.py +4 -1
- aws_lambda_powertools/shared/functions.py +4 -1
- aws_lambda_powertools/shared/types.py +3 -2
- aws_lambda_powertools/shared/version.py +1 -1
- aws_lambda_powertools/utilities/batch/base.py +1 -2
- aws_lambda_powertools/utilities/data_classes/active_mq_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -1
- aws_lambda_powertools/utilities/data_classes/common.py +4 -1
- aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/event_source.py +3 -1
- aws_lambda_powertools/utilities/data_classes/kafka_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +3 -1
- aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/s3_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/ses_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/sns_event.py +4 -1
- aws_lambda_powertools/utilities/data_classes/sqs_event.py +5 -2
- aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -2
- aws_lambda_powertools/utilities/data_masking/base.py +2 -1
- aws_lambda_powertools/utilities/data_masking/provider/base.py +7 -3
- aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +7 -2
- aws_lambda_powertools/utilities/feature_flags/feature_flags.py +4 -2
- aws_lambda_powertools/utilities/idempotency/base.py +3 -1
- aws_lambda_powertools/utilities/idempotency/idempotency.py +3 -1
- aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +4 -1
- aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -1
- aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -1
- aws_lambda_powertools/utilities/parameters/base.py +2 -1
- aws_lambda_powertools/utilities/serialization.py +2 -1
- aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +2 -1
- aws_lambda_powertools/utilities/streaming/s3_object.py +3 -1
- aws_lambda_powertools/utilities/validation/base.py +1 -1
- aws_lambda_powertools/utilities/validation/validator.py +4 -1
- {aws_lambda_powertools-3.10.1a5.dist-info → aws_lambda_powertools-3.10.1a7.dist-info}/METADATA +1 -1
- {aws_lambda_powertools-3.10.1a5.dist-info → aws_lambda_powertools-3.10.1a7.dist-info}/RECORD +58 -58
- {aws_lambda_powertools-3.10.1a5.dist-info → aws_lambda_powertools-3.10.1a7.dist-info}/LICENSE +0 -0
- {aws_lambda_powertools-3.10.1a5.dist-info → aws_lambda_powertools-3.10.1a7.dist-info}/WHEEL +0 -0
@@ -2,11 +2,14 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from enum import Enum
|
4
4
|
from functools import cached_property
|
5
|
-
from typing import
|
5
|
+
from typing import TYPE_CHECKING, Any
|
6
6
|
|
7
7
|
from aws_lambda_powertools.shared.dynamodb_deserializer import TypeDeserializer
|
8
8
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
9
9
|
|
10
|
+
if TYPE_CHECKING:
|
11
|
+
from collections.abc import Iterator
|
12
|
+
|
10
13
|
|
11
14
|
class StreamViewType(Enum):
|
12
15
|
"""The type of data from the modified DynamoDB item that was captured in this stream record"""
|
@@ -1,10 +1,12 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import TYPE_CHECKING, Any
|
3
|
+
from typing import TYPE_CHECKING, Any
|
4
4
|
|
5
5
|
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
|
6
6
|
|
7
7
|
if TYPE_CHECKING:
|
8
|
+
from collections.abc import Callable
|
9
|
+
|
8
10
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
9
11
|
from aws_lambda_powertools.utilities.typing import LambdaContext
|
10
12
|
|
@@ -2,10 +2,13 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import base64
|
4
4
|
from functools import cached_property
|
5
|
-
from typing import
|
5
|
+
from typing import TYPE_CHECKING, Any
|
6
6
|
|
7
7
|
from aws_lambda_powertools.utilities.data_classes.common import CaseInsensitiveDict, DictWrapper
|
8
8
|
|
9
|
+
if TYPE_CHECKING:
|
10
|
+
from collections.abc import Iterator
|
11
|
+
|
9
12
|
|
10
13
|
class KafkaEventRecord(DictWrapper):
|
11
14
|
@property
|
@@ -5,11 +5,13 @@ import json
|
|
5
5
|
import warnings
|
6
6
|
from dataclasses import dataclass, field
|
7
7
|
from functools import cached_property
|
8
|
-
from typing import TYPE_CHECKING, Any,
|
8
|
+
from typing import TYPE_CHECKING, Any, ClassVar
|
9
9
|
|
10
10
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
11
11
|
|
12
12
|
if TYPE_CHECKING:
|
13
|
+
from collections.abc import Callable, Iterator
|
14
|
+
|
13
15
|
from typing_extensions import Literal
|
14
16
|
|
15
17
|
|
@@ -3,13 +3,16 @@ from __future__ import annotations
|
|
3
3
|
import base64
|
4
4
|
import json
|
5
5
|
import zlib
|
6
|
-
from typing import
|
6
|
+
from typing import TYPE_CHECKING
|
7
7
|
|
8
8
|
from aws_lambda_powertools.utilities.data_classes.cloud_watch_logs_event import (
|
9
9
|
CloudWatchLogsDecodedData,
|
10
10
|
)
|
11
11
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
12
12
|
|
13
|
+
if TYPE_CHECKING:
|
14
|
+
from collections.abc import Iterator
|
15
|
+
|
13
16
|
|
14
17
|
class KinesisStreamRecordPayload(DictWrapper):
|
15
18
|
@property
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import warnings
|
4
4
|
from dataclasses import dataclass, field
|
5
|
-
from typing import
|
5
|
+
from typing import TYPE_CHECKING, Any, Literal
|
6
6
|
from urllib.parse import unquote_plus
|
7
7
|
|
8
8
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
@@ -11,6 +11,9 @@ from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
|
11
11
|
VALID_RESULT_CODES: tuple[str, str, str] = ("Succeeded", "TemporaryFailure", "PermanentFailure")
|
12
12
|
RESULT_CODE_TYPE = Literal["Succeeded", "TemporaryFailure", "PermanentFailure"]
|
13
13
|
|
14
|
+
if TYPE_CHECKING:
|
15
|
+
from collections.abc import Iterator
|
16
|
+
|
14
17
|
|
15
18
|
@dataclass(repr=False, order=False)
|
16
19
|
class S3BatchOperationResponseRecord:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import
|
3
|
+
from typing import TYPE_CHECKING
|
4
4
|
from urllib.parse import unquote_plus
|
5
5
|
|
6
6
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
@@ -8,6 +8,9 @@ from aws_lambda_powertools.utilities.data_classes.event_bridge_event import (
|
|
8
8
|
EventBridgeEvent,
|
9
9
|
)
|
10
10
|
|
11
|
+
if TYPE_CHECKING:
|
12
|
+
from collections.abc import Iterator
|
13
|
+
|
11
14
|
|
12
15
|
class S3Identity(DictWrapper):
|
13
16
|
@property
|
@@ -1,9 +1,12 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import
|
3
|
+
from typing import TYPE_CHECKING
|
4
4
|
|
5
5
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
6
6
|
|
7
|
+
if TYPE_CHECKING:
|
8
|
+
from collections.abc import Iterator
|
9
|
+
|
7
10
|
|
8
11
|
class SESMailHeader(DictWrapper):
|
9
12
|
@property
|
@@ -1,9 +1,12 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import
|
3
|
+
from typing import TYPE_CHECKING
|
4
4
|
|
5
5
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
6
6
|
|
7
|
+
if TYPE_CHECKING:
|
8
|
+
from collections.abc import Iterator
|
9
|
+
|
7
10
|
|
8
11
|
class SNSMessageAttribute(DictWrapper):
|
9
12
|
@property
|
@@ -1,12 +1,15 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
from functools import cached_property
|
4
|
-
from typing import
|
4
|
+
from typing import TYPE_CHECKING, Any, ItemsView, Iterator, TypeVar
|
5
5
|
|
6
6
|
from aws_lambda_powertools.utilities.data_classes import S3Event
|
7
7
|
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
8
8
|
from aws_lambda_powertools.utilities.data_classes.sns_event import SNSMessage
|
9
9
|
|
10
|
+
if TYPE_CHECKING:
|
11
|
+
from collections.abc import Iterator
|
12
|
+
|
10
13
|
|
11
14
|
class SQSRecordAttributes(DictWrapper):
|
12
15
|
@property
|
@@ -86,7 +89,7 @@ class SQSMessageAttribute(DictWrapper):
|
|
86
89
|
return self["dataType"]
|
87
90
|
|
88
91
|
|
89
|
-
class SQSMessageAttributes(
|
92
|
+
class SQSMessageAttributes(dict[str, SQSMessageAttribute]):
|
90
93
|
def __getitem__(self, key: str) -> SQSMessageAttribute | None: # type: ignore
|
91
94
|
item = super().get(key)
|
92
95
|
return None if item is None else SQSMessageAttribute(item) # type: ignore
|
@@ -39,7 +39,6 @@ class TransferFamilyAuthorizer(DictWrapper):
|
|
39
39
|
|
40
40
|
|
41
41
|
class TransferFamilyAuthorizerResponse:
|
42
|
-
|
43
42
|
def _build_authentication_response(
|
44
43
|
self,
|
45
44
|
role_arn: str,
|
@@ -51,7 +50,6 @@ class TransferFamilyAuthorizerResponse:
|
|
51
50
|
user_uid: int | None = None,
|
52
51
|
public_keys: str | None = None,
|
53
52
|
) -> dict[str, Any]:
|
54
|
-
|
55
53
|
response: dict[str, Any] = {}
|
56
54
|
|
57
55
|
if home_directory_type == "PATH":
|
@@ -11,7 +11,7 @@ import functools
|
|
11
11
|
import logging
|
12
12
|
import warnings
|
13
13
|
from copy import deepcopy
|
14
|
-
from typing import TYPE_CHECKING, Any
|
14
|
+
from typing import TYPE_CHECKING, Any
|
15
15
|
|
16
16
|
from jsonpath_ng.ext import parse
|
17
17
|
|
@@ -23,6 +23,7 @@ from aws_lambda_powertools.utilities.data_masking.provider import BaseProvider
|
|
23
23
|
from aws_lambda_powertools.warnings import PowertoolsUserWarning
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
26
|
+
from collections.abc import Callable, Mapping, Sequence
|
26
27
|
from numbers import Number
|
27
28
|
|
28
29
|
logger = logging.getLogger(__name__)
|
@@ -3,13 +3,18 @@ from __future__ import annotations
|
|
3
3
|
import functools
|
4
4
|
import json
|
5
5
|
import re
|
6
|
-
from typing import
|
6
|
+
from typing import TYPE_CHECKING, Any
|
7
7
|
|
8
8
|
from aws_lambda_powertools.utilities.data_masking.constants import DATA_MASKING_STRING
|
9
9
|
|
10
|
+
if TYPE_CHECKING:
|
11
|
+
from collections.abc import Callable
|
12
|
+
|
10
13
|
PRESERVE_CHARS = set("-_. ")
|
11
14
|
_regex_cache = {}
|
12
15
|
|
16
|
+
JSON_DUMPS_CALL = functools.partial(json.dumps, ensure_ascii=False)
|
17
|
+
|
13
18
|
|
14
19
|
class BaseProvider:
|
15
20
|
"""
|
@@ -49,7 +54,7 @@ class BaseProvider:
|
|
49
54
|
|
50
55
|
def __init__(
|
51
56
|
self,
|
52
|
-
json_serializer: Callable[..., str] =
|
57
|
+
json_serializer: Callable[..., str] = JSON_DUMPS_CALL,
|
53
58
|
json_deserializer: Callable[[str], Any] = json.loads,
|
54
59
|
) -> None:
|
55
60
|
self.json_serializer = json_serializer
|
@@ -77,7 +82,6 @@ class BaseProvider:
|
|
77
82
|
masking_rules: dict | None = None,
|
78
83
|
**kwargs,
|
79
84
|
) -> Any:
|
80
|
-
|
81
85
|
result: Any = DATA_MASKING_STRING
|
82
86
|
|
83
87
|
if not any([dynamic_mask, custom_mask, regex_pattern, mask_format, masking_rules]):
|
@@ -4,7 +4,7 @@ import functools
|
|
4
4
|
import json
|
5
5
|
import logging
|
6
6
|
from binascii import Error
|
7
|
-
from typing import
|
7
|
+
from typing import TYPE_CHECKING, Any
|
8
8
|
|
9
9
|
import botocore
|
10
10
|
from aws_encryption_sdk import (
|
@@ -41,8 +41,13 @@ from aws_lambda_powertools.utilities.data_masking.exceptions import (
|
|
41
41
|
)
|
42
42
|
from aws_lambda_powertools.utilities.data_masking.provider import BaseProvider
|
43
43
|
|
44
|
+
if TYPE_CHECKING:
|
45
|
+
from collections.abc import Callable
|
46
|
+
|
44
47
|
logger = logging.getLogger(__name__)
|
45
48
|
|
49
|
+
JSON_DUMPS_CALL = functools.partial(json.dumps, ensure_ascii=False)
|
50
|
+
|
46
51
|
|
47
52
|
class AWSEncryptionSDKProvider(BaseProvider):
|
48
53
|
"""
|
@@ -81,7 +86,7 @@ class AWSEncryptionSDKProvider(BaseProvider):
|
|
81
86
|
max_cache_age_seconds: float = MAX_CACHE_AGE_SECONDS,
|
82
87
|
max_messages_encrypted: int = MAX_MESSAGES_ENCRYPTED,
|
83
88
|
max_bytes_encrypted: int = MAX_BYTES_ENCRYPTED,
|
84
|
-
json_serializer: Callable[..., str] =
|
89
|
+
json_serializer: Callable[..., str] = JSON_DUMPS_CALL,
|
85
90
|
json_deserializer: Callable[[str], Any] = json.loads,
|
86
91
|
):
|
87
92
|
super().__init__(json_serializer=json_serializer, json_deserializer=json_deserializer)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import logging
|
4
|
-
from typing import TYPE_CHECKING, Any,
|
4
|
+
from typing import TYPE_CHECKING, Any, cast
|
5
5
|
|
6
6
|
from aws_lambda_powertools.utilities.feature_flags import schema
|
7
7
|
from aws_lambda_powertools.utilities.feature_flags.comparators import (
|
@@ -16,6 +16,8 @@ from aws_lambda_powertools.utilities.feature_flags.comparators import (
|
|
16
16
|
from aws_lambda_powertools.utilities.feature_flags.exceptions import ConfigurationStoreError
|
17
17
|
|
18
18
|
if TYPE_CHECKING:
|
19
|
+
from collections.abc import Callable
|
20
|
+
|
19
21
|
from aws_lambda_powertools.logging import Logger
|
20
22
|
from aws_lambda_powertools.utilities.feature_flags.base import StoreProvider
|
21
23
|
from aws_lambda_powertools.utilities.feature_flags.types import JSONType, P, T
|
@@ -103,7 +105,7 @@ class FeatureFlags:
|
|
103
105
|
) -> bool:
|
104
106
|
"""Evaluates whether context matches conditions, return False otherwise"""
|
105
107
|
rule_match_value = rule.get(schema.RULE_MATCH_VALUE)
|
106
|
-
conditions = cast(
|
108
|
+
conditions = cast(list[dict], rule.get(schema.CONDITIONS_KEY))
|
107
109
|
|
108
110
|
if not conditions:
|
109
111
|
self.logger.debug(
|
@@ -9,7 +9,7 @@ from __future__ import annotations
|
|
9
9
|
import datetime
|
10
10
|
import logging
|
11
11
|
from copy import deepcopy
|
12
|
-
from typing import TYPE_CHECKING, Any
|
12
|
+
from typing import TYPE_CHECKING, Any
|
13
13
|
|
14
14
|
from aws_lambda_powertools.utilities.idempotency.exceptions import (
|
15
15
|
IdempotencyAlreadyInProgressError,
|
@@ -29,6 +29,8 @@ from aws_lambda_powertools.utilities.idempotency.serialization.no_op import (
|
|
29
29
|
)
|
30
30
|
|
31
31
|
if TYPE_CHECKING:
|
32
|
+
from collections.abc import Callable
|
33
|
+
|
32
34
|
from aws_lambda_powertools.utilities.idempotency.config import (
|
33
35
|
IdempotencyConfig,
|
34
36
|
)
|
@@ -9,7 +9,7 @@ import logging
|
|
9
9
|
import os
|
10
10
|
import warnings
|
11
11
|
from inspect import isclass
|
12
|
-
from typing import TYPE_CHECKING, Any,
|
12
|
+
from typing import TYPE_CHECKING, Any, cast
|
13
13
|
|
14
14
|
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
|
15
15
|
from aws_lambda_powertools.shared import constants
|
@@ -23,6 +23,8 @@ from aws_lambda_powertools.utilities.idempotency.serialization.base import (
|
|
23
23
|
)
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
26
|
+
from collections.abc import Callable
|
27
|
+
|
26
28
|
from aws_lambda_powertools.utilities.idempotency.persistence.base import (
|
27
29
|
BasePersistenceLayer,
|
28
30
|
)
|
@@ -1,9 +1,12 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import
|
3
|
+
from typing import TYPE_CHECKING, Any
|
4
4
|
|
5
5
|
from aws_lambda_powertools.utilities.idempotency.serialization.base import BaseIdempotencySerializer
|
6
6
|
|
7
|
+
if TYPE_CHECKING:
|
8
|
+
from collections.abc import Callable
|
9
|
+
|
7
10
|
|
8
11
|
class CustomDictSerializer(BaseIdempotencySerializer):
|
9
12
|
def __init__(self, to_dict: Callable[[Any], dict], from_dict: Callable[[dict], Any]):
|
@@ -8,8 +8,9 @@ from __future__ import annotations
|
|
8
8
|
|
9
9
|
import os
|
10
10
|
from abc import ABC, abstractmethod
|
11
|
+
from collections.abc import Callable
|
11
12
|
from datetime import datetime, timedelta
|
12
|
-
from typing import TYPE_CHECKING, Any,
|
13
|
+
from typing import TYPE_CHECKING, Any, NamedTuple, cast, overload
|
13
14
|
|
14
15
|
from aws_lambda_powertools.shared import constants, user_agent
|
15
16
|
from aws_lambda_powertools.shared.functions import resolve_max_age
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import io
|
4
4
|
import logging
|
5
|
-
from typing import IO, TYPE_CHECKING, Any,
|
5
|
+
from typing import IO, TYPE_CHECKING, Any, TypeVar, cast
|
6
6
|
|
7
7
|
import boto3
|
8
8
|
|
@@ -11,6 +11,7 @@ from aws_lambda_powertools.utilities.streaming.compat import PowertoolsStreaming
|
|
11
11
|
from aws_lambda_powertools.utilities.streaming.constants import MESSAGE_STREAM_NOT_WRITABLE
|
12
12
|
|
13
13
|
if TYPE_CHECKING:
|
14
|
+
from collections.abc import Iterable, Sequence
|
14
15
|
from mmap import mmap
|
15
16
|
|
16
17
|
from mypy_boto3_s3.client import S3Client
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import io
|
4
|
-
from
|
4
|
+
from collections.abc import Sequence
|
5
|
+
from typing import IO, TYPE_CHECKING, Any, Literal, TypeVar, cast, overload
|
5
6
|
|
6
7
|
from aws_lambda_powertools.utilities.streaming._s3_seekable_io import _S3SeekableIO
|
7
8
|
from aws_lambda_powertools.utilities.streaming.constants import MESSAGE_STREAM_NOT_WRITABLE
|
@@ -12,6 +13,7 @@ from aws_lambda_powertools.utilities.streaming.transformations import (
|
|
12
13
|
from aws_lambda_powertools.utilities.streaming.types import T
|
13
14
|
|
14
15
|
if TYPE_CHECKING:
|
16
|
+
from collections.abc import Iterable
|
15
17
|
from mmap import mmap
|
16
18
|
|
17
19
|
from mypy_boto3_s3.client import S3Client
|
@@ -1,12 +1,15 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import logging
|
4
|
-
from typing import
|
4
|
+
from typing import TYPE_CHECKING, Any
|
5
5
|
|
6
6
|
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
|
7
7
|
from aws_lambda_powertools.utilities import jmespath_utils
|
8
8
|
from aws_lambda_powertools.utilities.validation.base import validate_data_against_schema
|
9
9
|
|
10
|
+
if TYPE_CHECKING:
|
11
|
+
from collections.abc import Callable
|
12
|
+
|
10
13
|
logger = logging.getLogger(__name__)
|
11
14
|
|
12
15
|
|
{aws_lambda_powertools-3.10.1a5.dist-info → aws_lambda_powertools-3.10.1a7.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.1a7
|
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
|