Skip to content

Commit f673368

Browse files
authored
chore(typing): move backwards compat types to shared types (#3092)
1 parent 86619e5 commit f673368

File tree

15 files changed

+70
-68
lines changed

15 files changed

+70
-68
lines changed

aws_lambda_powertools/event_handler/middlewares/base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
from abc import ABC, abstractmethod
22
from typing import Generic
33

4-
from typing_extensions import Protocol
5-
64
from aws_lambda_powertools.event_handler.api_gateway import Response
75
from aws_lambda_powertools.event_handler.types import EventHandlerInstance
6+
from aws_lambda_powertools.shared.types import Protocol
87

98

109
class NextMiddleware(Protocol):

aws_lambda_powertools/logging/types.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,9 @@
11
from __future__ import annotations
22

3-
import sys
4-
5-
if sys.version_info >= (3, 11):
6-
from typing import NotRequired
7-
else:
8-
from typing_extensions import NotRequired
9-
10-
if sys.version_info >= (3, 8):
11-
from typing import TypedDict
12-
else:
13-
from typing_extensions import TypedDict
14-
15-
if sys.version_info >= (3, 10):
16-
from typing import TypeAlias
17-
else:
18-
from typing_extensions import TypeAlias
19-
203
from typing import Any, Dict, List, Union
214

5+
from aws_lambda_powertools.shared.types import NotRequired, TypeAlias, TypedDict
6+
227
LogRecord: TypeAlias = Union[Dict[str, Any], "PowertoolsLogRecord"]
238

249

aws_lambda_powertools/metrics/functions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
from __future__ import annotations
22

3-
from typing import List
4-
53
from aws_lambda_powertools.metrics.provider.cloudwatch_emf.exceptions import (
64
MetricResolutionError,
75
MetricUnitError,
86
)
97
from aws_lambda_powertools.metrics.provider.cloudwatch_emf.metric_properties import MetricResolution, MetricUnit
8+
from aws_lambda_powertools.shared.types import List
109

1110

1211
def extract_cloudwatch_metric_resolution_value(metric_resolutions: List, resolution: int | MetricResolution) -> int:

aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
from typing import List
2-
3-
from typing_extensions import NotRequired, TypedDict
1+
from aws_lambda_powertools.shared.types import List, NotRequired, TypedDict
42

53

64
class CloudWatchEMFMetric(TypedDict):

aws_lambda_powertools/metrics/types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing_extensions import NotRequired, TypedDict
1+
from aws_lambda_powertools.shared.types import NotRequired, TypedDict
22

33

44
class MetricNameUnitResolution(TypedDict):

aws_lambda_powertools/shared/cookies.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
from datetime import datetime
22
from enum import Enum
33
from io import StringIO
4-
from typing import List, Optional
4+
from typing import Optional
5+
6+
from aws_lambda_powertools.shared.types import List
57

68

79
class SameSite(Enum):

aws_lambda_powertools/shared/types.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
import sys
22
from typing import Any, Callable, Dict, List, TypeVar, Union
33

4-
AnyCallableT = TypeVar("AnyCallableT", bound=Callable[..., Any]) # noqa: VNE001
5-
# JSON primitives only, mypy doesn't support recursive tho
6-
JSONType = Union[str, int, float, bool, None, Dict[str, Any], List[Any]]
4+
if sys.version_info >= (3, 8):
5+
from typing import Literal, Protocol, TypedDict
6+
else:
7+
from typing_extensions import Literal, Protocol, TypedDict
78

89

9-
if sys.version_info >= (3, 8):
10-
from typing import Protocol
10+
if sys.version_info >= (3, 11):
11+
from typing import NotRequired
1112
else:
12-
from typing_extensions import Protocol
13+
from typing_extensions import NotRequired
14+
15+
16+
if sys.version_info >= (3, 10):
17+
from typing import TypeAlias
18+
else:
19+
from typing_extensions import TypeAlias
20+
21+
AnyCallableT = TypeVar("AnyCallableT", bound=Callable[..., Any]) # noqa: VNE001
22+
# JSON primitives only, mypy doesn't support recursive tho
23+
JSONType = Union[str, int, float, bool, None, Dict[str, Any], List[Any]]
1324

14-
__all__ = ["Protocol"]
25+
__all__ = ["Protocol", "TypedDict", "Literal", "NotRequired", "TypeAlias"]

aws_lambda_powertools/utilities/batch/types.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
#
2-
# type specifics
3-
#
41
import sys
5-
from typing import List, Optional, Type, Union
2+
from typing import Optional, Type, Union
63

7-
from typing_extensions import TypedDict
4+
from aws_lambda_powertools.shared.types import List, TypedDict
85

96
has_pydantic = "pydantic" in sys.modules
107

aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from typing_extensions import Literal
2-
1+
from aws_lambda_powertools.shared.types import Literal
32
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
43

54

aws_lambda_powertools/utilities/parameters/ssm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
import boto3
1010
from botocore.config import Config
11-
from typing_extensions import Literal
1211

1312
from aws_lambda_powertools.shared import constants
1413
from aws_lambda_powertools.shared.functions import (
1514
resolve_max_age,
1615
resolve_truthy_env_var_choice,
1716
slice_dictionary,
1817
)
18+
from aws_lambda_powertools.shared.types import Literal
1919

2020
from .base import DEFAULT_MAX_AGE_SECS, DEFAULT_PROVIDERS, BaseProvider, transform_value
2121
from .exceptions import GetParameterError

0 commit comments

Comments
 (0)