From f10cc4e323b6488d0ad2ab591763c1bdc25b19b3 Mon Sep 17 00:00:00 2001 From: Michael Brewer Date: Mon, 5 Jul 2021 21:07:53 -0700 Subject: [PATCH 1/2] feat(mypy): add mypy support --- Makefile | 3 ++ aws_lambda_powertools/logging/logger.py | 12 ++--- .../shared/jmespath_functions.py | 2 +- aws_lambda_powertools/utilities/batch/sqs.py | 4 +- .../data_classes/code_pipeline_job_event.py | 2 +- .../utilities/idempotency/persistence/base.py | 2 +- .../idempotency/persistence/dynamodb.py | 4 +- .../utilities/parameters/appconfig.py | 4 +- .../utilities/parameters/dynamodb.py | 6 +-- .../utilities/parameters/secrets.py | 4 +- .../utilities/parameters/ssm.py | 4 +- .../utilities/validation/base.py | 12 ++--- poetry.lock | 46 ++++++++++++++++++- pyproject.toml | 1 + 14 files changed, 76 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index da43c1de67a..e14ccf8dde7 100644 --- a/Makefile +++ b/Makefile @@ -83,3 +83,6 @@ release: pr changelog: @echo "[+] Pre-generating CHANGELOG for tag: $$(git describe --abbrev=0 --tag)" docker run -v "${PWD}":/workdir quay.io/git-chglog/git-chglog $$(git describe --abbrev=0 --tag).. > TMP_CHANGELOG.md + +mypy: + poetry run mypy aws_lambda_powertools diff --git a/aws_lambda_powertools/logging/logger.py b/aws_lambda_powertools/logging/logger.py index 689409d9813..d9b86868a55 100644 --- a/aws_lambda_powertools/logging/logger.py +++ b/aws_lambda_powertools/logging/logger.py @@ -4,9 +4,9 @@ import os import random import sys -from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union +from typing import IO, Any, Callable, Dict, Iterable, Optional, TypeVar, Union -import jmespath +import jmespath # type: ignore from ..shared import constants from ..shared.functions import resolve_env_var_choice, resolve_truthy_env_var_choice @@ -171,7 +171,7 @@ def __init__( level: Union[str, int] = None, child: bool = False, sampling_rate: float = None, - stream: sys.stdout = None, + stream: IO[str] = None, logger_formatter: Optional[PowertoolsFormatter] = None, logger_handler: Optional[logging.Handler] = None, **kwargs, @@ -363,7 +363,7 @@ def registered_handler(self) -> logging.Handler: @property def registered_formatter(self) -> Optional[PowertoolsFormatter]: """Convenience property to access logger formatter""" - return self.registered_handler.formatter + return self.registered_handler.formatter # type: ignore def structure_logs(self, append: bool = False, **keys): """Sets logging formatting to JSON. @@ -384,7 +384,7 @@ def structure_logs(self, append: bool = False, **keys): self.append_keys(**keys) else: log_keys = {**self._default_log_keys, **keys} - formatter = self.logger_formatter or LambdaPowertoolsFormatter(**log_keys) + formatter = self.logger_formatter or LambdaPowertoolsFormatter(**log_keys) # type: ignore self.registered_handler.setFormatter(formatter) def set_correlation_id(self, value: str): @@ -421,7 +421,7 @@ def _get_caller_filename(): def set_package_logger( - level: Union[str, int] = logging.DEBUG, stream: sys.stdout = None, formatter: logging.Formatter = None + level: Union[str, int] = logging.DEBUG, stream: IO[str] = None, formatter: logging.Formatter = None ): """Set an additional stream handler, formatter, and log level for aws_lambda_powertools package logger. diff --git a/aws_lambda_powertools/shared/jmespath_functions.py b/aws_lambda_powertools/shared/jmespath_functions.py index b23ab477d6b..1c9fcbd484b 100644 --- a/aws_lambda_powertools/shared/jmespath_functions.py +++ b/aws_lambda_powertools/shared/jmespath_functions.py @@ -2,7 +2,7 @@ import gzip import json -import jmespath +import jmespath # type: ignore class PowertoolsFunctions(jmespath.functions.Functions): diff --git a/aws_lambda_powertools/utilities/batch/sqs.py b/aws_lambda_powertools/utilities/batch/sqs.py index e37fdbd3fb5..b96eacd0385 100644 --- a/aws_lambda_powertools/utilities/batch/sqs.py +++ b/aws_lambda_powertools/utilities/batch/sqs.py @@ -7,8 +7,8 @@ import sys from typing import Callable, Dict, List, Optional, Tuple -import boto3 -from botocore.config import Config +import boto3 # type: ignore +from botocore.config import Config # type: ignore from ...middleware_factory import lambda_handler_decorator from .base import BasePartialProcessor diff --git a/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py b/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py index e13d32fb169..2cb30bc8b3b 100644 --- a/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +++ b/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py @@ -4,7 +4,7 @@ from typing import Any, Dict, List, Optional from urllib.parse import unquote_plus -import boto3 +import boto3 # type: ignore from aws_lambda_powertools.utilities.data_classes.common import DictWrapper diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/base.py b/aws_lambda_powertools/utilities/idempotency/persistence/base.py index 31aef6dc0f2..af5c07199a2 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/base.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/base.py @@ -11,7 +11,7 @@ from types import MappingProxyType from typing import Any, Dict, Optional -import jmespath +import jmespath # type: ignore from aws_lambda_powertools.shared.cache_dict import LRUDict from aws_lambda_powertools.shared.jmespath_functions import PowertoolsFunctions diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py b/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py index dc00334277e..b6759b9e650 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py @@ -2,8 +2,8 @@ import logging from typing import Any, Dict, Optional -import boto3 -from botocore.config import Config +import boto3 # type: ignore +from botocore.config import Config # type: ignore from aws_lambda_powertools.utilities.idempotency import BasePersistenceLayer from aws_lambda_powertools.utilities.idempotency.exceptions import ( diff --git a/aws_lambda_powertools/utilities/parameters/appconfig.py b/aws_lambda_powertools/utilities/parameters/appconfig.py index 4490e260364..dbca3dd7218 100644 --- a/aws_lambda_powertools/utilities/parameters/appconfig.py +++ b/aws_lambda_powertools/utilities/parameters/appconfig.py @@ -7,8 +7,8 @@ from typing import Any, Dict, Optional, Union from uuid import uuid4 -import boto3 -from botocore.config import Config +import boto3 # type: ignore +from botocore.config import Config # type: ignore from ...shared import constants from ...shared.functions import resolve_env_var_choice diff --git a/aws_lambda_powertools/utilities/parameters/dynamodb.py b/aws_lambda_powertools/utilities/parameters/dynamodb.py index 5edae643ec0..e1fff93adc1 100644 --- a/aws_lambda_powertools/utilities/parameters/dynamodb.py +++ b/aws_lambda_powertools/utilities/parameters/dynamodb.py @@ -5,9 +5,9 @@ from typing import Any, Dict, Optional -import boto3 -from boto3.dynamodb.conditions import Key -from botocore.config import Config +import boto3 # type: ignore +from boto3.dynamodb.conditions import Key # type: ignore +from botocore.config import Config # type: ignore from .base import BaseProvider diff --git a/aws_lambda_powertools/utilities/parameters/secrets.py b/aws_lambda_powertools/utilities/parameters/secrets.py index 6b7ea21fdf6..7a7ab5c9f07 100644 --- a/aws_lambda_powertools/utilities/parameters/secrets.py +++ b/aws_lambda_powertools/utilities/parameters/secrets.py @@ -5,8 +5,8 @@ from typing import Any, Dict, Optional, Union -import boto3 -from botocore.config import Config +import boto3 # type: ignore +from botocore.config import Config # type: ignore from .base import DEFAULT_PROVIDERS, BaseProvider diff --git a/aws_lambda_powertools/utilities/parameters/ssm.py b/aws_lambda_powertools/utilities/parameters/ssm.py index 4bbef8bfc15..342f787c50f 100644 --- a/aws_lambda_powertools/utilities/parameters/ssm.py +++ b/aws_lambda_powertools/utilities/parameters/ssm.py @@ -5,8 +5,8 @@ from typing import Any, Dict, Optional, Union -import boto3 -from botocore.config import Config +import boto3 # type: ignore +from botocore.config import Config # type: ignore from .base import DEFAULT_MAX_AGE_SECS, DEFAULT_PROVIDERS, BaseProvider diff --git a/aws_lambda_powertools/utilities/validation/base.py b/aws_lambda_powertools/utilities/validation/base.py index ec4165f4876..24e3a6a9d7b 100644 --- a/aws_lambda_powertools/utilities/validation/base.py +++ b/aws_lambda_powertools/utilities/validation/base.py @@ -1,9 +1,9 @@ import logging -from typing import Any, Dict, Optional +from typing import Any, Dict, Optional, Union -import fastjsonschema -import jmespath -from jmespath.exceptions import LexerError +import fastjsonschema # type: ignore +import jmespath # type: ignore +from jmespath.exceptions import LexerError # type: ignore from aws_lambda_powertools.shared.jmespath_functions import PowertoolsFunctions @@ -12,7 +12,7 @@ logger = logging.getLogger(__name__) -def validate_data_against_schema(data: Dict, schema: Dict, formats: Optional[Dict] = None): +def validate_data_against_schema(data: Union[Dict, str], schema: Dict, formats: Optional[Dict] = None): """Validate dict data against given JSON Schema Parameters @@ -41,7 +41,7 @@ def validate_data_against_schema(data: Dict, schema: Dict, formats: Optional[Dic raise SchemaValidationError(message) -def unwrap_event_from_envelope(data: Dict, envelope: str, jmespath_options: Optional[Dict]) -> Any: +def unwrap_event_from_envelope(data: Union[Dict, str], envelope: str, jmespath_options: Optional[Dict]) -> Any: """Searches data using JMESPath expression Parameters diff --git a/poetry.lock b/poetry.lock index 9a6f1fdbc04..adcf21ab460 100644 --- a/poetry.lock +++ b/poetry.lock @@ -616,6 +616,24 @@ python-versions = ">=3.5" [package.dependencies] mkdocs-material = ">=5.0.0" +[[package]] +name = "mypy" +version = "0.910" +description = "Optional static typing for Python" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +mypy-extensions = ">=0.4.3,<0.5.0" +toml = "*" +typed-ast = {version = ">=1.4.0,<1.5.0", markers = "python_version < \"3.8\""} +typing-extensions = ">=3.7.4" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +python2 = ["typed-ast (>=1.4.0,<1.5.0)"] + [[package]] name = "mypy-extensions" version = "0.4.3" @@ -1066,7 +1084,7 @@ pydantic = ["pydantic", "email-validator"] [metadata] lock-version = "1.1" python-versions = "^3.6.1" -content-hash = "c07aad70013171c8bb000d163f997efef709189584089f68d471f69eb8bb38c0" +content-hash = "d9c5750e95bd6f09037f407d2f94649c1c52b1d26ec8a50e52d1c9399e427cf9" [metadata.files] appdirs = [ @@ -1195,7 +1213,6 @@ flake8 = [ ] flake8-black = [ {file = "flake8-black-0.2.1.tar.gz", hash = "sha256:f26651bc10db786c03f4093414f7c9ea982ed8a244cec323c984feeffdf4c118"}, - {file = "flake8_black-0.2.1-py3-none-any.whl", hash = "sha256:941514149cb8b489cb17a4bb1cf18d84375db3b34381bb018de83509437931a0"}, ] flake8-bugbear = [ {file = "flake8-bugbear-21.4.3.tar.gz", hash = "sha256:2346c81f889955b39e4a368eb7d508de723d9de05716c287dc860a4073dc57e7"}, @@ -1350,6 +1367,31 @@ mkdocs-material-extensions = [ {file = "mkdocs-material-extensions-1.0.1.tar.gz", hash = "sha256:6947fb7f5e4291e3c61405bad3539d81e0b3cd62ae0d66ced018128af509c68f"}, {file = "mkdocs_material_extensions-1.0.1-py3-none-any.whl", hash = "sha256:d90c807a88348aa6d1805657ec5c0b2d8d609c110e62b9dce4daf7fa981fa338"}, ] +mypy = [ + {file = "mypy-0.910-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:a155d80ea6cee511a3694b108c4494a39f42de11ee4e61e72bc424c490e46457"}, + {file = "mypy-0.910-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b94e4b785e304a04ea0828759172a15add27088520dc7e49ceade7834275bedb"}, + {file = "mypy-0.910-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:088cd9c7904b4ad80bec811053272986611b84221835e079be5bcad029e79dd9"}, + {file = "mypy-0.910-cp35-cp35m-win_amd64.whl", hash = "sha256:adaeee09bfde366d2c13fe6093a7df5df83c9a2ba98638c7d76b010694db760e"}, + {file = "mypy-0.910-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ecd2c3fe726758037234c93df7e98deb257fd15c24c9180dacf1ef829da5f921"}, + {file = "mypy-0.910-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d9dd839eb0dc1bbe866a288ba3c1afc33a202015d2ad83b31e875b5905a079b6"}, + {file = "mypy-0.910-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3e382b29f8e0ccf19a2df2b29a167591245df90c0b5a2542249873b5c1d78212"}, + {file = "mypy-0.910-cp36-cp36m-win_amd64.whl", hash = "sha256:53fd2eb27a8ee2892614370896956af2ff61254c275aaee4c230ae771cadd885"}, + {file = "mypy-0.910-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b6fb13123aeef4a3abbcfd7e71773ff3ff1526a7d3dc538f3929a49b42be03f0"}, + {file = "mypy-0.910-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e4dab234478e3bd3ce83bac4193b2ecd9cf94e720ddd95ce69840273bf44f6de"}, + {file = "mypy-0.910-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:7df1ead20c81371ccd6091fa3e2878559b5c4d4caadaf1a484cf88d93ca06703"}, + {file = "mypy-0.910-cp37-cp37m-win_amd64.whl", hash = "sha256:0aadfb2d3935988ec3815952e44058a3100499f5be5b28c34ac9d79f002a4a9a"}, + {file = "mypy-0.910-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ec4e0cd079db280b6bdabdc807047ff3e199f334050db5cbb91ba3e959a67504"}, + {file = "mypy-0.910-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:119bed3832d961f3a880787bf621634ba042cb8dc850a7429f643508eeac97b9"}, + {file = "mypy-0.910-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:866c41f28cee548475f146aa4d39a51cf3b6a84246969f3759cb3e9c742fc072"}, + {file = "mypy-0.910-cp38-cp38-win_amd64.whl", hash = "sha256:ceb6e0a6e27fb364fb3853389607cf7eb3a126ad335790fa1e14ed02fba50811"}, + {file = "mypy-0.910-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a85e280d4d217150ce8cb1a6dddffd14e753a4e0c3cf90baabb32cefa41b59e"}, + {file = "mypy-0.910-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:42c266ced41b65ed40a282c575705325fa7991af370036d3f134518336636f5b"}, + {file = "mypy-0.910-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3c4b8ca36877fc75339253721f69603a9c7fdb5d4d5a95a1a1b899d8b86a4de2"}, + {file = "mypy-0.910-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:c0df2d30ed496a08de5daed2a9ea807d07c21ae0ab23acf541ab88c24b26ab97"}, + {file = "mypy-0.910-cp39-cp39-win_amd64.whl", hash = "sha256:c6c2602dffb74867498f86e6129fd52a2770c48b7cd3ece77ada4fa38f94eba8"}, + {file = "mypy-0.910-py3-none-any.whl", hash = "sha256:ef565033fa5a958e62796867b1df10c40263ea9ded87164d67572834e57a174d"}, + {file = "mypy-0.910.tar.gz", hash = "sha256:704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150"}, +] mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, diff --git a/pyproject.toml b/pyproject.toml index f7743f2eba2..58579dac1b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,6 +52,7 @@ flake8-bugbear = "^21.3.2" mkdocs-material = "^7.1.9" mkdocs-git-revision-date-plugin = "^0.3.1" mike = "^0.6.0" +mypy = "^0.910" [tool.poetry.extras] From eff22cbfd45b3e1f4bbf69950562925bc4452e44 Mon Sep 17 00:00:00 2001 From: Michael Brewer Date: Sat, 10 Jul 2021 09:24:33 -0700 Subject: [PATCH 2/2] feat(mypy): add mypy.init --- aws_lambda_powertools/logging/logger.py | 2 +- aws_lambda_powertools/shared/jmespath_functions.py | 2 +- aws_lambda_powertools/utilities/batch/sqs.py | 4 ++-- .../data_classes/code_pipeline_job_event.py | 2 +- .../utilities/idempotency/persistence/base.py | 2 +- .../utilities/idempotency/persistence/dynamodb.py | 4 ++-- .../utilities/parameters/appconfig.py | 4 ++-- .../utilities/parameters/dynamodb.py | 6 +++--- .../utilities/parameters/secrets.py | 4 ++-- aws_lambda_powertools/utilities/parameters/ssm.py | 4 ++-- aws_lambda_powertools/utilities/validation/base.py | 6 +++--- mypy.ini | 13 +++++++++++++ 12 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 mypy.ini diff --git a/aws_lambda_powertools/logging/logger.py b/aws_lambda_powertools/logging/logger.py index d9b86868a55..72e22b38c7f 100644 --- a/aws_lambda_powertools/logging/logger.py +++ b/aws_lambda_powertools/logging/logger.py @@ -6,7 +6,7 @@ import sys from typing import IO, Any, Callable, Dict, Iterable, Optional, TypeVar, Union -import jmespath # type: ignore +import jmespath from ..shared import constants from ..shared.functions import resolve_env_var_choice, resolve_truthy_env_var_choice diff --git a/aws_lambda_powertools/shared/jmespath_functions.py b/aws_lambda_powertools/shared/jmespath_functions.py index 1c9fcbd484b..b23ab477d6b 100644 --- a/aws_lambda_powertools/shared/jmespath_functions.py +++ b/aws_lambda_powertools/shared/jmespath_functions.py @@ -2,7 +2,7 @@ import gzip import json -import jmespath # type: ignore +import jmespath class PowertoolsFunctions(jmespath.functions.Functions): diff --git a/aws_lambda_powertools/utilities/batch/sqs.py b/aws_lambda_powertools/utilities/batch/sqs.py index b96eacd0385..e37fdbd3fb5 100644 --- a/aws_lambda_powertools/utilities/batch/sqs.py +++ b/aws_lambda_powertools/utilities/batch/sqs.py @@ -7,8 +7,8 @@ import sys from typing import Callable, Dict, List, Optional, Tuple -import boto3 # type: ignore -from botocore.config import Config # type: ignore +import boto3 +from botocore.config import Config from ...middleware_factory import lambda_handler_decorator from .base import BasePartialProcessor diff --git a/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py b/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py index 2cb30bc8b3b..e13d32fb169 100644 --- a/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +++ b/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py @@ -4,7 +4,7 @@ from typing import Any, Dict, List, Optional from urllib.parse import unquote_plus -import boto3 # type: ignore +import boto3 from aws_lambda_powertools.utilities.data_classes.common import DictWrapper diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/base.py b/aws_lambda_powertools/utilities/idempotency/persistence/base.py index af5c07199a2..31aef6dc0f2 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/base.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/base.py @@ -11,7 +11,7 @@ from types import MappingProxyType from typing import Any, Dict, Optional -import jmespath # type: ignore +import jmespath from aws_lambda_powertools.shared.cache_dict import LRUDict from aws_lambda_powertools.shared.jmespath_functions import PowertoolsFunctions diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py b/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py index b6759b9e650..dc00334277e 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py @@ -2,8 +2,8 @@ import logging from typing import Any, Dict, Optional -import boto3 # type: ignore -from botocore.config import Config # type: ignore +import boto3 +from botocore.config import Config from aws_lambda_powertools.utilities.idempotency import BasePersistenceLayer from aws_lambda_powertools.utilities.idempotency.exceptions import ( diff --git a/aws_lambda_powertools/utilities/parameters/appconfig.py b/aws_lambda_powertools/utilities/parameters/appconfig.py index dbca3dd7218..4490e260364 100644 --- a/aws_lambda_powertools/utilities/parameters/appconfig.py +++ b/aws_lambda_powertools/utilities/parameters/appconfig.py @@ -7,8 +7,8 @@ from typing import Any, Dict, Optional, Union from uuid import uuid4 -import boto3 # type: ignore -from botocore.config import Config # type: ignore +import boto3 +from botocore.config import Config from ...shared import constants from ...shared.functions import resolve_env_var_choice diff --git a/aws_lambda_powertools/utilities/parameters/dynamodb.py b/aws_lambda_powertools/utilities/parameters/dynamodb.py index e1fff93adc1..5edae643ec0 100644 --- a/aws_lambda_powertools/utilities/parameters/dynamodb.py +++ b/aws_lambda_powertools/utilities/parameters/dynamodb.py @@ -5,9 +5,9 @@ from typing import Any, Dict, Optional -import boto3 # type: ignore -from boto3.dynamodb.conditions import Key # type: ignore -from botocore.config import Config # type: ignore +import boto3 +from boto3.dynamodb.conditions import Key +from botocore.config import Config from .base import BaseProvider diff --git a/aws_lambda_powertools/utilities/parameters/secrets.py b/aws_lambda_powertools/utilities/parameters/secrets.py index 7a7ab5c9f07..6b7ea21fdf6 100644 --- a/aws_lambda_powertools/utilities/parameters/secrets.py +++ b/aws_lambda_powertools/utilities/parameters/secrets.py @@ -5,8 +5,8 @@ from typing import Any, Dict, Optional, Union -import boto3 # type: ignore -from botocore.config import Config # type: ignore +import boto3 +from botocore.config import Config from .base import DEFAULT_PROVIDERS, BaseProvider diff --git a/aws_lambda_powertools/utilities/parameters/ssm.py b/aws_lambda_powertools/utilities/parameters/ssm.py index 342f787c50f..4bbef8bfc15 100644 --- a/aws_lambda_powertools/utilities/parameters/ssm.py +++ b/aws_lambda_powertools/utilities/parameters/ssm.py @@ -5,8 +5,8 @@ from typing import Any, Dict, Optional, Union -import boto3 # type: ignore -from botocore.config import Config # type: ignore +import boto3 +from botocore.config import Config from .base import DEFAULT_MAX_AGE_SECS, DEFAULT_PROVIDERS, BaseProvider diff --git a/aws_lambda_powertools/utilities/validation/base.py b/aws_lambda_powertools/utilities/validation/base.py index 24e3a6a9d7b..ec63e39eb3c 100644 --- a/aws_lambda_powertools/utilities/validation/base.py +++ b/aws_lambda_powertools/utilities/validation/base.py @@ -1,9 +1,9 @@ import logging from typing import Any, Dict, Optional, Union -import fastjsonschema # type: ignore -import jmespath # type: ignore -from jmespath.exceptions import LexerError # type: ignore +import fastjsonschema +import jmespath +from jmespath.exceptions import LexerError from aws_lambda_powertools.shared.jmespath_functions import PowertoolsFunctions diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 00000000000..42185a692ad --- /dev/null +++ b/mypy.ini @@ -0,0 +1,13 @@ +[mypy] +warn_return_any=False +warn_unused_configs=True +no_implicit_optional=True +warn_redundant_casts=True +warn_unused_ignores=True +pretty = True +show_column_numbers = True +show_error_codes = True +show_error_context = True + +[mypy-jmespath] +ignore_missing_imports=True