Description
openedon Nov 26, 2020
Is your feature request related to a problem? Please describe.
Type checking can be useful both for productivity (autocomplete is better with it) and for correctness (validating things are being used correctly). The aws_lambda_powertools.utilities.typing
submodule is neat, but it seems it's currently focused for use with IDEs, and seemingly doesn't work with mypy for type checking:
# test.py
from aws_lambda_powertools.utilities.typing import LambdaContext
$ mypy test.py
test.py:2: error: Skipping analyzing 'aws_lambda_powertools.utilities.typing': found module but no type hints or library stubs
from aws_lambda_powertools.utilities.typing import LambdaContext
^
test.py:2: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)
Describe the solution you'd like
The link in the message links to a discussion about making PEP 561 compatible packages. It seems the most relevant one to this library is to add a py.typed
file to the package (that is, an empty aws_lambda_powertools/py.typed
file), which should allow mypy to automatically take advantage of existing type hints for LambdaContext
and elsewhere.
Describe alternatives you've considered
An alternative discussed above is stub files next to the existing ones, but this seems like more work than necessary given there's already type annotations inline in the code.
Additional context
N/A