Skip to content

Commit 4688495

Browse files
refactor(parser): add from __future__ import annotations (#4983)
* refactor(parser): add from __future__ import annotations and update code according to ruff rules TCH, UP006, UP007, UP037 and FA100. * Fix type alias with Python 3.8 See https://bugs.python.org/issue45117 * Fix pydantic not working with Python 3.8 TypeError: You have a type annotation 'str | None' which makes use of newer typing features than are supported in your version of Python. To handle this error, you should either remove the use of new syntax or install the `eval_type_backport` package. * Update ruff.toml Configure lint.per-file-ignores in ruff.toml instead of adding a # ruff: noqa: FA100 line to each file. --------- Co-authored-by: Leandro Damascena <[email protected]>
1 parent a0463d1 commit 4688495

File tree

14 files changed

+35
-44
lines changed

14 files changed

+35
-44
lines changed

aws_lambda_powertools/utilities/parser/functions.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
from __future__ import annotations
22

3+
from typing import TYPE_CHECKING
4+
35
from pydantic import TypeAdapter
46

57
from aws_lambda_powertools.shared.cache_dict import LRUDict
6-
from aws_lambda_powertools.utilities.parser.types import T
8+
9+
if TYPE_CHECKING:
10+
from aws_lambda_powertools.utilities.parser.types import T
711

812
CACHE_TYPE_ADAPTER = LRUDict(max_items=1024)
913

aws_lambda_powertools/utilities/parser/models/apigw.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
from datetime import datetime
2-
from typing import Any, Dict, List, Optional, Type, Union
2+
from typing import Any, Dict, List, Literal, Optional, Type, Union
33

44
from pydantic import BaseModel, model_validator
55
from pydantic.networks import IPvAnyNetwork
66

7-
from aws_lambda_powertools.utilities.parser.types import Literal
8-
97

108
class ApiGatewayUserCertValidity(BaseModel):
119
notBefore: str

aws_lambda_powertools/utilities/parser/models/apigwv2.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
from datetime import datetime
2-
from typing import Any, Dict, List, Optional, Type, Union
2+
from typing import Any, Dict, List, Literal, Optional, Type, Union
33

44
from pydantic import BaseModel, Field
55
from pydantic.networks import IPvAnyNetwork
66

7-
from aws_lambda_powertools.utilities.parser.types import Literal
8-
97

108
class RequestContextV2AuthorizerIamCognito(BaseModel):
119
amr: List[str]

aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
from typing import Any, Dict, Union
1+
from typing import Any, Dict, Literal, Union
22

33
from pydantic import BaseModel, Field, HttpUrl
44

5-
from aws_lambda_powertools.utilities.parser.types import Literal
6-
75

86
class CloudFormationCustomResourceBaseModel(BaseModel):
97
request_type: str = Field(..., alias="RequestType")

aws_lambda_powertools/utilities/parser/models/dynamodb.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
# ruff: noqa: FA100
12
from datetime import datetime
2-
from typing import Any, Dict, List, Optional, Type, Union
3+
from typing import Any, Dict, List, Literal, Optional, Type, Union
34

45
from pydantic import BaseModel, field_validator
56

67
from aws_lambda_powertools.shared.dynamodb_deserializer import TypeDeserializer
7-
from aws_lambda_powertools.utilities.parser.types import Literal
88

99
_DESERIALIZER = TypeDeserializer()
1010

aws_lambda_powertools/utilities/parser/models/kafka.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
from datetime import datetime
2-
from typing import Dict, List, Type, Union
2+
from typing import Dict, List, Literal, Type, Union
33

44
from pydantic import BaseModel, field_validator
55

66
from aws_lambda_powertools.shared.functions import base64_decode, bytes_to_string
7-
from aws_lambda_powertools.utilities.parser.types import Literal
87

98
SERVERS_DELIMITER = ","
109

aws_lambda_powertools/utilities/parser/models/kinesis.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import json
22
import zlib
3-
from typing import Dict, List, Type, Union
3+
from typing import Dict, List, Literal, Type, Union
44

55
from pydantic import BaseModel, field_validator
66

77
from aws_lambda_powertools.shared.functions import base64_decode
88
from aws_lambda_powertools.utilities.parser.models.cloudwatch import (
99
CloudWatchLogsDecode,
1010
)
11-
from aws_lambda_powertools.utilities.parser.types import Literal
1211

1312

1413
class KinesisDataStreamRecordPayload(BaseModel):

aws_lambda_powertools/utilities/parser/models/s3.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
from datetime import datetime
2-
from typing import List, Optional
2+
from typing import List, Literal, Optional
33

44
from pydantic import BaseModel, model_validator
55
from pydantic.fields import Field
66
from pydantic.networks import IPvAnyNetwork
77
from pydantic.types import NonNegativeFloat
88

9-
from aws_lambda_powertools.utilities.parser.types import Literal
10-
119
from .event_bridge import EventBridgeModel
1210

1311

aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
from typing import Any, Dict, List, Optional
1+
from typing import Any, Dict, List, Literal, Optional
22

33
from pydantic import BaseModel, model_validator
44

5-
from aws_lambda_powertools.utilities.parser.types import Literal
6-
75

86
class S3BatchOperationTaskModel(BaseModel):
97
taskId: str

aws_lambda_powertools/utilities/parser/models/ses.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
from datetime import datetime
2-
from typing import List, Optional
2+
from typing import List, Literal, Optional
33

44
from pydantic import BaseModel, Field
55
from pydantic.types import PositiveInt
66

7-
from ..types import Literal
8-
97

108
class SesReceiptVerdict(BaseModel):
119
status: Literal["PASS", "FAIL", "GRAY", "PROCESSING_FAILED"]

0 commit comments

Comments
 (0)