Skip to content

Commit acfa2a5

Browse files
refactor(parameters): use standard collections for types (#6481)
Using generics types Co-authored-by: Ana Falcão <[email protected]>
1 parent d6374e9 commit acfa2a5

File tree

2 files changed

+45
-42
lines changed

2 files changed

+45
-42
lines changed

aws_lambda_powertools/utilities/parameters/base.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88

99
import os
1010
from abc import ABC, abstractmethod
11+
from collections.abc import Callable
1112
from datetime import datetime, timedelta
12-
from typing import TYPE_CHECKING, Any, Callable, NamedTuple, cast, overload
13+
from typing import TYPE_CHECKING, Any, NamedTuple, cast, overload
1314

1415
from aws_lambda_powertools.shared import constants, user_agent
1516
from aws_lambda_powertools.shared.functions import resolve_max_age

tests/functional/parameters/_boto3/test_utilities_parameters.py

+43-41
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
from __future__ import annotations
2+
13
import base64
24
import json
35
import random
46
import string
57
import uuid
68
from datetime import datetime, timedelta
79
from io import BytesIO
8-
from typing import Any, Dict, List, Optional, Tuple, Union
10+
from typing import Any
911

1012
import boto3
1113
import pytest
@@ -52,9 +54,9 @@ def mock_binary_value() -> str:
5254

5355

5456
def build_get_parameters_stub(
55-
params: Dict[str, Any],
56-
invalid_parameters: Optional[List[str]] = None,
57-
) -> Dict[str, List]:
57+
params: dict[str, Any],
58+
invalid_parameters: list[str] | None = None,
59+
) -> dict[str, list]:
5860
invalid_parameters = invalid_parameters or []
5961
version = random.randrange(1, 1000)
6062
return {
@@ -527,7 +529,7 @@ def set(self, name: str, value: Any, *, overwrite: bool = False, **kwargs) -> st
527529
def _get(self, name: str, **kwargs) -> str:
528530
raise NotImplementedError()
529531

530-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
532+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
531533
raise NotImplementedError()
532534

533535
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "ssm", TestProvider())
@@ -685,7 +687,7 @@ def set(self, name: str, value: Any, *, overwrite: bool = False, **kwargs) -> st
685687
def _get(self, name: str, **kwargs) -> str:
686688
raise NotImplementedError()
687689

688-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
690+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
689691
raise NotImplementedError()
690692

691693
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "secrets", TestProvider())
@@ -1025,7 +1027,7 @@ class TestProvider(BaseProvider):
10251027
def _get(self, name: str, **kwargs) -> str:
10261028
return mock_value
10271029

1028-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]: ...
1030+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]: ...
10291031

10301032
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "ssm", TestProvider())
10311033
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "secrets", TestProvider())
@@ -1875,7 +1877,7 @@ def _get(self, name: str, **kwargs) -> str:
18751877
assert name == mock_name
18761878
raise Exception("test exception raised")
18771879

1878-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1880+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
18791881
raise NotImplementedError()
18801882

18811883
provider = TestProvider()
@@ -1895,7 +1897,7 @@ class TestProvider(BaseProvider):
18951897
def _get(self, name: str, **kwargs) -> str:
18961898
raise NotImplementedError()
18971899

1898-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1900+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
18991901
assert path == mock_name
19001902
raise Exception("test exception raised")
19011903

@@ -1919,7 +1921,7 @@ def _get(self, name: str, **kwargs) -> str:
19191921
assert name == mock_name
19201922
return mock_data
19211923

1922-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1924+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
19231925
raise NotImplementedError()
19241926

19251927
provider = TestProvider()
@@ -1943,7 +1945,7 @@ def _get(self, name: str, **kwargs) -> str:
19431945
assert name == mock_name
19441946
return mock_data
19451947

1946-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1948+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
19471949
raise NotImplementedError()
19481950

19491951
provider = TestProvider()
@@ -1967,7 +1969,7 @@ def _get(self, name: str, **kwargs) -> str:
19671969
assert name == mock_name
19681970
return mock_data
19691971

1970-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1972+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
19711973
raise NotImplementedError()
19721974

19731975
provider = TestProvider()
@@ -1991,7 +1993,7 @@ def _get(self, name: str, **kwargs) -> str:
19911993
assert name == mock_name
19921994
return mock_data
19931995

1994-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1996+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
19951997
raise NotImplementedError()
19961998

19971999
provider = TestProvider()
@@ -2013,7 +2015,7 @@ class TestProvider(BaseProvider):
20132015
def _get(self, name: str, **kwargs) -> str:
20142016
raise NotImplementedError()
20152017

2016-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2018+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
20172019
assert path == mock_name
20182020
return {"A": mock_data}
20192021

@@ -2036,7 +2038,7 @@ class TestProvider(BaseProvider):
20362038
def _get(self, name: str, **kwargs) -> str:
20372039
raise NotImplementedError()
20382040

2039-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2041+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
20402042
assert path == mock_name
20412043
return {"A": mock_data, "B": mock_data + "{"}
20422044

@@ -2060,7 +2062,7 @@ class TestProvider(BaseProvider):
20602062
def _get(self, name: str, **kwargs) -> str:
20612063
raise NotImplementedError()
20622064

2063-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2065+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
20642066
assert path == mock_name
20652067
return {"A": mock_data}
20662068

@@ -2084,7 +2086,7 @@ class TestProvider(BaseProvider):
20842086
def _get(self, name: str, **kwargs) -> str:
20852087
raise NotImplementedError()
20862088

2087-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2089+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
20882090
assert path == mock_name
20892091
return {"A": mock_data}
20902092

@@ -2109,7 +2111,7 @@ class TestProvider(BaseProvider):
21092111
def _get(self, name: str, **kwargs) -> str:
21102112
raise NotImplementedError()
21112113

2112-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2114+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
21132115
assert path == mock_name
21142116
return {"A": mock_data_a, "B": mock_data_b}
21152117

@@ -2133,7 +2135,7 @@ class TestProvider(BaseProvider):
21332135
def _get(self, name: str, **kwargs) -> str:
21342136
raise NotImplementedError()
21352137

2136-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2138+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
21372139
assert path == mock_name
21382140
return {"A": mock_data}
21392141

@@ -2154,7 +2156,7 @@ class TestProvider(BaseProvider):
21542156
def _get(self, name: str, **kwargs) -> str:
21552157
raise NotImplementedError()
21562158

2157-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2159+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
21582160
raise NotImplementedError()
21592161

21602162
provider = TestProvider()
@@ -2177,7 +2179,7 @@ class TestProvider(BaseProvider):
21772179
def _get(self, name: str, **kwargs) -> str:
21782180
raise NotImplementedError()
21792181

2180-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2182+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
21812183
assert path == mock_name
21822184
return {"A": mock_value}
21832185

@@ -2201,7 +2203,7 @@ def _get(self, name: str, **kwargs) -> str:
22012203
assert name == mock_name
22022204
return mock_value
22032205

2204-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2206+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
22052207
raise NotImplementedError()
22062208

22072209
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "ssm", TestProvider())
@@ -2218,7 +2220,7 @@ class TestProvider(SSMProvider):
22182220
def __init__(self, boto_config: Config = config, **kwargs):
22192221
super().__init__(boto_config=boto_config, **kwargs)
22202222

2221-
def get_parameters_by_name(self, *args, **kwargs) -> Union[Dict[str, str], Dict[str, bytes], Dict[str, dict]]:
2223+
def get_parameters_by_name(self, *args, **kwargs) -> dict[str, str] | dict[str, bytes] | dict[str, dict]:
22222224
return {mock_name: mock_value}
22232225

22242226
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "ssm", TestProvider())
@@ -2247,7 +2249,7 @@ def _get(self, name: str, decrypt: bool = False, **sdk_options) -> str:
22472249
assert decrypt
22482250
return decrypted_response
22492251

2250-
def _get_parameters_by_name(self, *args, **kwargs) -> Tuple[Dict[str, Any], List[str]]:
2252+
def _get_parameters_by_name(self, *args, **kwargs) -> tuple[dict[str, Any], list[str]]:
22512253
return {mock_name: mock_value}, []
22522254

22532255
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "ssm", TestProvider())
@@ -2276,10 +2278,10 @@ def __init__(self, boto_config: Config = config, **kwargs):
22762278
# def _get_parameters_by_name(self, parameters: Dict[str, Dict], raise_on_error: bool = True) -> Dict[str, Any]:
22772279
def _get_parameters_by_name(
22782280
self,
2279-
parameters: Dict[str, Dict],
2281+
parameters: dict[str, dict],
22802282
raise_on_error: bool = True,
22812283
decrypt: bool = False,
2282-
) -> Tuple[Dict[str, Any], List[str]]:
2284+
) -> tuple[dict[str, Any], list[str]]:
22832285
# THEN max_age should use no_cache_param override
22842286
assert parameters[mock_name]["max_age"] == 0
22852287
assert parameters["no-override"]["max_age"] == default_cache_period
@@ -2302,10 +2304,10 @@ def __init__(self, boto_config: Config = config, **kwargs):
23022304

23032305
def _get_parameters_by_name(
23042306
self,
2305-
parameters: Dict[str, Dict],
2307+
parameters: dict[str, dict],
23062308
raise_on_error: bool = True,
23072309
decrypt: bool = False,
2308-
) -> Tuple[Dict[str, Any], List[str]]:
2310+
) -> tuple[dict[str, Any], list[str]]:
23092311
# THEN we should always split to respect GetParameters max
23102312
assert len(parameters) == self._MAX_GET_PARAMETERS_ITEM
23112313
return {}, []
@@ -2325,7 +2327,7 @@ class TestProvider(SSMProvider):
23252327
def __init__(self, boto_config: Config = config, **kwargs):
23262328
super().__init__(boto_config=boto_config, **kwargs)
23272329

2328-
def _get_parameters_by_name(self, *args, **kwargs) -> Tuple[Dict[str, Any], List[str]]:
2330+
def _get_parameters_by_name(self, *args, **kwargs) -> tuple[dict[str, Any], list[str]]:
23292331
raise RuntimeError("Should not be called if it's in cache")
23302332

23312333
provider = TestProvider()
@@ -2389,7 +2391,7 @@ def _get(self, name: str, **kwargs) -> str:
23892391
assert not kwargs["decrypt"]
23902392
return mock_value
23912393

2392-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2394+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
23932395
raise NotImplementedError()
23942396

23952397
monkeypatch.setattr(parameters.ssm, "DEFAULT_PROVIDERS", {})
@@ -2409,7 +2411,7 @@ class TestProvider(BaseProvider):
24092411
def _get(self, name: str, **kwargs) -> str:
24102412
raise NotImplementedError()
24112413

2412-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2414+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
24132415
assert path == mock_name
24142416
return {"A": mock_value}
24152417

@@ -2430,7 +2432,7 @@ class TestProvider(BaseProvider):
24302432
def _get(self, name: str, **kwargs) -> str:
24312433
raise NotImplementedError()
24322434

2433-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2435+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
24342436
assert path == mock_name
24352437
assert kwargs["recursive"]
24362438
assert not kwargs["decrypt"]
@@ -2454,7 +2456,7 @@ class TestProvider(SSMProvider):
24542456
def __init__(self, boto_config: Config = config, **kwargs):
24552457
super().__init__(boto_config=boto_config, **kwargs)
24562458

2457-
def get_parameters_by_name(self, *args, **kwargs) -> Union[Dict[str, str], Dict[str, bytes], Dict[str, dict]]:
2459+
def get_parameters_by_name(self, *args, **kwargs) -> dict[str, str] | dict[str, bytes] | dict[str, dict]:
24582460
return {mock_name: mock_value}
24592461

24602462
monkeypatch.setattr(parameters.ssm, "DEFAULT_PROVIDERS", {})
@@ -2475,7 +2477,7 @@ def _get(self, name: str, **kwargs) -> str:
24752477
assert name == mock_name
24762478
return mock_value
24772479

2478-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2480+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
24792481
raise NotImplementedError()
24802482

24812483
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "secrets", TestProvider())
@@ -2495,7 +2497,7 @@ def _get(self, name: str, **kwargs) -> str:
24952497
assert name == mock_name
24962498
return mock_value
24972499

2498-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2500+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
24992501
raise NotImplementedError()
25002502

25012503
monkeypatch.setattr(parameters.secrets, "DEFAULT_PROVIDERS", {})
@@ -2689,7 +2691,7 @@ def _get(self, name: str, **kwargs) -> bytes:
26892691
assert name == mock_name
26902692
return mock_body_bytes
26912693

2692-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2694+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
26932695
raise NotImplementedError()
26942696

26952697
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "appconfig", TestProvider())
@@ -2714,7 +2716,7 @@ def _get(self, name: str, **kwargs) -> str:
27142716
assert name == mock_name
27152717
return mock_body_bytes
27162718

2717-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2719+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
27182720
raise NotImplementedError()
27192721

27202722
monkeypatch.setitem(parameters.base.DEFAULT_PROVIDERS, "appconfig", TestProvider())
@@ -2737,7 +2739,7 @@ def get(self, name: str, **kwargs) -> str:
27372739
def _get(self, name: str, **kwargs) -> str:
27382740
raise NotImplementedError()
27392741

2740-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2742+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
27412743
raise NotImplementedError()
27422744

27432745
monkeypatch.setattr(parameters.appconfig, "DEFAULT_PROVIDERS", {})
@@ -2877,7 +2879,7 @@ class TestProvider(BaseProvider):
28772879
def _get(self, name: str, **kwargs) -> str:
28782880
raise NotImplementedError()
28792881

2880-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2882+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
28812883
assert path == mock_name
28822884
return {"A": mock_value}
28832885

@@ -2900,7 +2902,7 @@ class TestProvider(BaseProvider):
29002902
def _get(self, name: str, **kwargs) -> str:
29012903
return mock_value
29022904

2903-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2905+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
29042906
raise NotImplementedError()
29052907

29062908
provider = TestProvider()
@@ -2934,7 +2936,7 @@ class TestProvider(BaseProvider):
29342936
def _get(self, name: str, **kwargs) -> str:
29352937
raise ValueError("This parameter doesn't exist")
29362938

2937-
def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
2939+
def _get_multiple(self, path: str, **kwargs) -> dict[str, str]:
29382940
return {"A": mock_value}
29392941

29402942
provider = TestProvider()

0 commit comments

Comments
 (0)