Skip to content

Commit 27c82d8

Browse files
author
Michael Brewer
authored
feat(mypy): add mypy support to makefile (#508)
1 parent 43b828e commit 27c82d8

File tree

6 files changed

+69
-10
lines changed

6 files changed

+69
-10
lines changed

Makefile

+3
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,6 @@ release: pr
8383
changelog:
8484
@echo "[+] Pre-generating CHANGELOG for tag: $$(git describe --abbrev=0 --tag)"
8585
docker run -v "${PWD}":/workdir quay.io/git-chglog/git-chglog $$(git describe --abbrev=0 --tag).. > TMP_CHANGELOG.md
86+
87+
mypy:
88+
poetry run mypy aws_lambda_powertools

aws_lambda_powertools/logging/logger.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import os
55
import random
66
import sys
7-
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, Union
7+
from typing import IO, Any, Callable, Dict, Iterable, Optional, TypeVar, Union
88

99
import jmespath
1010

@@ -171,7 +171,7 @@ def __init__(
171171
level: Union[str, int] = None,
172172
child: bool = False,
173173
sampling_rate: float = None,
174-
stream: sys.stdout = None,
174+
stream: IO[str] = None,
175175
logger_formatter: Optional[PowertoolsFormatter] = None,
176176
logger_handler: Optional[logging.Handler] = None,
177177
**kwargs,
@@ -363,7 +363,7 @@ def registered_handler(self) -> logging.Handler:
363363
@property
364364
def registered_formatter(self) -> Optional[PowertoolsFormatter]:
365365
"""Convenience property to access logger formatter"""
366-
return self.registered_handler.formatter
366+
return self.registered_handler.formatter # type: ignore
367367

368368
def structure_logs(self, append: bool = False, **keys):
369369
"""Sets logging formatting to JSON.
@@ -384,7 +384,7 @@ def structure_logs(self, append: bool = False, **keys):
384384
self.append_keys(**keys)
385385
else:
386386
log_keys = {**self._default_log_keys, **keys}
387-
formatter = self.logger_formatter or LambdaPowertoolsFormatter(**log_keys)
387+
formatter = self.logger_formatter or LambdaPowertoolsFormatter(**log_keys) # type: ignore
388388
self.registered_handler.setFormatter(formatter)
389389

390390
def set_correlation_id(self, value: str):
@@ -421,7 +421,7 @@ def _get_caller_filename():
421421

422422

423423
def set_package_logger(
424-
level: Union[str, int] = logging.DEBUG, stream: sys.stdout = None, formatter: logging.Formatter = None
424+
level: Union[str, int] = logging.DEBUG, stream: IO[str] = None, formatter: logging.Formatter = None
425425
):
426426
"""Set an additional stream handler, formatter, and log level for aws_lambda_powertools package logger.
427427

aws_lambda_powertools/utilities/validation/base.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import logging
2-
from typing import Any, Dict, Optional
2+
from typing import Any, Dict, Optional, Union
33

44
import fastjsonschema
55
import jmespath
@@ -12,7 +12,7 @@
1212
logger = logging.getLogger(__name__)
1313

1414

15-
def validate_data_against_schema(data: Dict, schema: Dict, formats: Optional[Dict] = None):
15+
def validate_data_against_schema(data: Union[Dict, str], schema: Dict, formats: Optional[Dict] = None):
1616
"""Validate dict data against given JSON Schema
1717
1818
Parameters
@@ -41,7 +41,7 @@ def validate_data_against_schema(data: Dict, schema: Dict, formats: Optional[Dic
4141
raise SchemaValidationError(message)
4242

4343

44-
def unwrap_event_from_envelope(data: Dict, envelope: str, jmespath_options: Optional[Dict]) -> Any:
44+
def unwrap_event_from_envelope(data: Union[Dict, str], envelope: str, jmespath_options: Optional[Dict]) -> Any:
4545
"""Searches data using JMESPath expression
4646
4747
Parameters

mypy.ini

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[mypy]
2+
warn_return_any=False
3+
warn_unused_configs=True
4+
no_implicit_optional=True
5+
warn_redundant_casts=True
6+
warn_unused_ignores=True
7+
pretty = True
8+
show_column_numbers = True
9+
show_error_codes = True
10+
show_error_context = True
11+
12+
[mypy-jmespath]
13+
ignore_missing_imports=True

poetry.lock

+44-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ flake8-bugbear = "^21.3.2"
5252
mkdocs-material = "^7.1.9"
5353
mkdocs-git-revision-date-plugin = "^0.3.1"
5454
mike = "^0.6.0"
55+
mypy = "^0.910"
5556

5657

5758
[tool.poetry.extras]

0 commit comments

Comments
 (0)