diff --git a/aws_lambda_powertools/middleware_factory/__init__.py b/aws_lambda_powertools/middleware_factory/__init__.py index ebdb338cc15..79f292ccaf0 100644 --- a/aws_lambda_powertools/middleware_factory/__init__.py +++ b/aws_lambda_powertools/middleware_factory/__init__.py @@ -3,6 +3,6 @@ [`Middleware Factory`](../utilities/middleware_factory.md) """ -from .factory import lambda_handler_decorator +from aws_lambda_powertools.middleware_factory.factory import lambda_handler_decorator __all__ = ["lambda_handler_decorator"] diff --git a/aws_lambda_powertools/middleware_factory/factory.py b/aws_lambda_powertools/middleware_factory/factory.py index 4f60c2be287..a4eabf1f259 100644 --- a/aws_lambda_powertools/middleware_factory/factory.py +++ b/aws_lambda_powertools/middleware_factory/factory.py @@ -4,7 +4,7 @@ import inspect import logging import os -from typing import Any, Callable +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.middleware_factory.exceptions import MiddlewareInvalidArgumentError from aws_lambda_powertools.shared import constants @@ -13,6 +13,9 @@ logger = logging.getLogger(__name__) +if TYPE_CHECKING: + from collections.abc import Callable + # Maintenance: we can't yet provide an accurate return type without ParamSpec etc. see #1066 def lambda_handler_decorator(decorator: Callable | None = None, trace_execution: bool | None = None) -> Callable: diff --git a/tests/functional/middleware_factory/required_dependencies/test_middleware_factory.py b/tests/functional/middleware_factory/required_dependencies/test_middleware_factory.py index 7481e2b8f6b..be28523b99e 100644 --- a/tests/functional/middleware_factory/required_dependencies/test_middleware_factory.py +++ b/tests/functional/middleware_factory/required_dependencies/test_middleware_factory.py @@ -1,5 +1,7 @@ +from __future__ import annotations + import json -from typing import Callable +from typing import TYPE_CHECKING import pytest @@ -8,6 +10,9 @@ MiddlewareInvalidArgumentError, ) +if TYPE_CHECKING: + from collections.abc import Callable + @pytest.fixture def say_hi_middleware() -> Callable: