From 6baee16a2214b65e25720b7dc9837b95d340487f Mon Sep 17 00:00:00 2001 From: Amin Alaee Date: Mon, 22 Jul 2024 15:17:58 +0200 Subject: [PATCH 1/2] chore(typing): update tracing capture_lambda_handler type Signed-off-by: Amin Alaee --- aws_lambda_powertools/tracing/tracer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws_lambda_powertools/tracing/tracer.py b/aws_lambda_powertools/tracing/tracer.py index a79ac4ec738..93b1288222c 100644 --- a/aws_lambda_powertools/tracing/tracer.py +++ b/aws_lambda_powertools/tracing/tracer.py @@ -250,7 +250,7 @@ def patch(self, modules: Optional[Sequence[str]] = None): def capture_lambda_handler( self, - lambda_handler: Union[Callable[[Dict, Any], Any], Optional[Callable[[Dict, Any, Optional[Dict]], Any]]] = None, + lambda_handler: Optional[AnyCallableT] = None, capture_response: Optional[bool] = None, capture_error: Optional[bool] = None, ): From f70952924236ee714aceaf87025671dddca12ea9 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Mon, 5 Aug 2024 18:04:19 +0100 Subject: [PATCH 2/2] Making event argument generic and optional arguments Any --- aws_lambda_powertools/shared/types.py | 2 ++ aws_lambda_powertools/tracing/tracer.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/aws_lambda_powertools/shared/types.py b/aws_lambda_powertools/shared/types.py index d5014c4c467..dd4b52e9f9a 100644 --- a/aws_lambda_powertools/shared/types.py +++ b/aws_lambda_powertools/shared/types.py @@ -19,6 +19,8 @@ from typing_extensions import TypeAlias, get_args, get_origin AnyCallableT = TypeVar("AnyCallableT", bound=Callable[..., Any]) # noqa: VNE001 + + # JSON primitives only, mypy doesn't support recursive tho JSONType = Union[str, int, float, bool, None, Dict[str, Any], List[Any]] diff --git a/aws_lambda_powertools/tracing/tracer.py b/aws_lambda_powertools/tracing/tracer.py index 93b1288222c..276d9fa0799 100644 --- a/aws_lambda_powertools/tracing/tracer.py +++ b/aws_lambda_powertools/tracing/tracer.py @@ -5,7 +5,7 @@ import logging import numbers import os -from typing import Any, Callable, Dict, List, Optional, Sequence, Union, cast, overload +from typing import Any, Callable, Dict, List, Optional, Sequence, TypeVar, Union, cast, overload from aws_lambda_powertools.shared import constants from aws_lambda_powertools.shared.functions import ( @@ -22,6 +22,8 @@ aws_xray_sdk = LazyLoader(constants.XRAY_SDK_MODULE, globals(), constants.XRAY_SDK_MODULE) +T = TypeVar("T") + class Tracer: """Tracer using AWS-XRay to provide decorators with known defaults for Lambda functions @@ -250,7 +252,7 @@ def patch(self, modules: Optional[Sequence[str]] = None): def capture_lambda_handler( self, - lambda_handler: Optional[AnyCallableT] = None, + lambda_handler: Optional[Union[Callable[[T, Any], Any], Callable[[T, Any, Any], Any]]] = None, capture_response: Optional[bool] = None, capture_error: Optional[bool] = None, ):