Skip to content

Commit 4c70f12

Browse files
Merging from V3
1 parent 1b44e86 commit 4c70f12

File tree

2 files changed

+43
-39
lines changed

2 files changed

+43
-39
lines changed

aws_lambda_powertools/tracing/provider/aws_xray/aws_xray_tracer.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from contextlib import asynccontextmanager, contextmanager
44
from numbers import Number
5-
from typing import Any, AsyncGenerator, Generator, Literal, Optional, Sequence, Union
5+
from typing import Any, AsyncGenerator, Generator, Literal, Sequence
66

77
from aws_lambda_powertools.shared import constants
88
from aws_lambda_powertools.shared.lazy_import import LazyLoader
@@ -73,9 +73,9 @@ class AwsXrayProvider(BaseProvider):
7373
def __init__(
7474
self,
7575
service: str = "",
76-
disabled: Optional[bool] = None,
77-
auto_patch: Optional[bool] = None,
78-
patch_modules: Optional[Sequence[str]] = None,
76+
disabled: bool | None = None,
77+
auto_patch: bool | None = None,
78+
patch_modules: Sequence[str] | None = None,
7979
):
8080
from aws_xray_sdk.core import xray_recorder # type: ignore
8181

@@ -141,7 +141,7 @@ def set_attribute(
141141
# Auto & not in (str, Number, bool)
142142
self.put_metadata(key=key, value=value, namespace=kwargs.get("namespace", "dafault"))
143143

144-
def put_annotation(self, key: str, value: Union[str, Number, bool]) -> None:
144+
def put_annotation(self, key: str, value: str | Number | bool) -> None:
145145
return self.recorder.put_annotation(key=key, value=value)
146146

147147
def put_metadata(self, key: str, value: Any, namespace: str = "default") -> None:

aws_lambda_powertools/tracing/provider/base.py

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1+
from __future__ import annotations
2+
13
import contextlib
24
import functools
35
import inspect
46
import logging
57
import os
68
from abc import ABC, abstractmethod
79
from contextlib import asynccontextmanager, contextmanager
8-
from typing import Any, AsyncGenerator, Callable, Generator, Optional, Sequence, Union, cast, overload
10+
from typing import TYPE_CHECKING, Any, AsyncGenerator, Callable, Generator, Sequence, cast, overload
911

1012
from aws_lambda_powertools.shared import constants
1113
from aws_lambda_powertools.shared.functions import resolve_truthy_env_var_choice, sanitize_xray_segment_name
1214
from aws_lambda_powertools.shared.types import AnyCallableT
13-
from aws_lambda_powertools.tracing.base import BaseSegment
15+
16+
if TYPE_CHECKING:
17+
from aws_lambda_powertools.tracing.base import BaseSegment
1418

1519
logger = logging.getLogger(__name__)
1620

@@ -32,7 +36,7 @@ def set_attribute(self, key: str, value: Any, **kwargs) -> None:
3236
Attribute key
3337
value: Any
3438
Attribute value
35-
kwargs: Optional[dict]
39+
kwargs: dict | None
3640
Optional parameters
3741
"""
3842

@@ -43,8 +47,8 @@ def record_exception(self, exception: BaseException, **kwargs):
4347
Parameters
4448
----------
4549
exception: Exception
46-
Caught exception during the exectution of this Span
47-
kwargs: Optional[dict]
50+
Caught exception during the execution of this Span
51+
kwargs: dict | None
4852
Optional parameters
4953
"""
5054

@@ -71,7 +75,7 @@ def trace(self, name: str, **kwargs) -> Generator[BaseSpan, None, None]:
7175
----------
7276
name: str
7377
Span name
74-
kwargs: Optional[dict]
78+
kwargs: dict | None
7579
Optional parameters to be propagated to the span
7680
"""
7781

@@ -89,7 +93,7 @@ def trace_async(self, name: str, **kwargs) -> AsyncGenerator[BaseSpan, None]:
8993
----------
9094
name: str
9195
Span name
92-
kwargs: Optional[dict]
96+
kwargs: dict | None
9397
Optional parameters to be propagated to the span
9498
"""
9599

@@ -103,7 +107,7 @@ def set_attribute(self, key: str, value: Any, **kwargs) -> None:
103107
attribute key
104108
value: Any
105109
attribute value
106-
kwargs: Optional[dict]
110+
kwargs: dict | None
107111
Optional parameters to be propagated to the span
108112
"""
109113

@@ -132,8 +136,8 @@ def patch_all(self) -> None:
132136
def capture_lambda_handler(
133137
self,
134138
lambda_handler: Any = None,
135-
capture_response: Optional[bool] = None,
136-
capture_error: Optional[bool] = None,
139+
capture_response: bool | None = None,
140+
capture_error: bool | None = None,
137141
):
138142
"""Decorator to create subsegment for lambda handlers
139143
@@ -230,21 +234,21 @@ def decorate(event, context, **kwargs):
230234

231235
# see #465
232236
@overload
233-
def capture_method(self, method: "AnyCallableT") -> "AnyCallableT": ... # pragma: no cover
237+
def capture_method(self, method: AnyCallableT) -> AnyCallableT: ... # pragma: no cover
234238

235239
@overload
236240
def capture_method(
237241
self,
238242
method: None = None,
239-
capture_response: Optional[bool] = None,
240-
capture_error: Optional[bool] = None,
241-
) -> Callable[["AnyCallableT"], "AnyCallableT"]: ... # pragma: no cover
243+
capture_response: bool | None = None,
244+
capture_error: bool | None = None,
245+
) -> Callable[[AnyCallableT], AnyCallableT]: ... # pragma: no cover
242246

243247
def capture_method(
244248
self,
245-
method: Optional[AnyCallableT] = None,
246-
capture_response: Optional[bool] = None,
247-
capture_error: Optional[bool] = None,
249+
method: AnyCallableT | None = None,
250+
capture_response: bool | None = None,
251+
capture_error: bool | None = None,
248252
) -> AnyCallableT:
249253
"""Decorator to create subsegment for arbitrary functions
250254
@@ -450,9 +454,9 @@ async def async_tasks():
450454
def _decorate_async_function(
451455
self,
452456
method: Callable,
453-
capture_response: Optional[Union[bool, str]] = None,
454-
capture_error: Optional[Union[bool, str]] = None,
455-
method_name: Optional[str] = None,
457+
capture_response: bool | str | None = None,
458+
capture_error: bool | str | None = None,
459+
method_name: str | None = None,
456460
):
457461
@functools.wraps(method)
458462
async def decorate(*args, **kwargs):
@@ -483,9 +487,9 @@ async def decorate(*args, **kwargs):
483487
def _decorate_generator_function(
484488
self,
485489
method: Callable,
486-
capture_response: Optional[Union[bool, str]] = None,
487-
capture_error: Optional[Union[bool, str]] = None,
488-
method_name: Optional[str] = None,
490+
capture_response: bool | str | None = None,
491+
capture_error: bool | str | None = None,
492+
method_name: str | None = None,
489493
):
490494
@functools.wraps(method)
491495
def decorate(*args, **kwargs):
@@ -516,9 +520,9 @@ def decorate(*args, **kwargs):
516520
def _decorate_generator_function_with_context_manager(
517521
self,
518522
method: Callable,
519-
capture_response: Optional[Union[bool, str]] = None,
520-
capture_error: Optional[Union[bool, str]] = None,
521-
method_name: Optional[str] = None,
523+
capture_response: bool | str | None = None,
524+
capture_error: bool | str | None = None,
525+
method_name: str | None = None,
522526
):
523527
@functools.wraps(method)
524528
@contextlib.contextmanager
@@ -550,9 +554,9 @@ def decorate(*args, **kwargs):
550554
def _decorate_sync_function(
551555
self,
552556
method: AnyCallableT,
553-
capture_response: Optional[Union[bool, str]] = None,
554-
capture_error: Optional[Union[bool, str]] = None,
555-
method_name: Optional[str] = None,
557+
capture_response: bool | str | None = None,
558+
capture_error: bool | str | None = None,
559+
method_name: str | None = None,
556560
) -> AnyCallableT:
557561
@functools.wraps(method)
558562
def decorate(*args, **kwargs):
@@ -582,10 +586,10 @@ def decorate(*args, **kwargs):
582586

583587
def _add_response_as_metadata(
584588
self,
585-
method_name: Optional[str] = None,
586-
data: Optional[Any] = None,
587-
subsegment: Optional[BaseSegment] = None,
588-
capture_response: Optional[Union[bool, str]] = None,
589+
method_name: str | None = None,
590+
data: Any | None = None,
591+
subsegment: BaseSegment | None = None,
592+
capture_response: bool | str | None = None,
589593
):
590594
"""Add response as metadata for given subsegment
591595
@@ -610,7 +614,7 @@ def _add_full_exception_as_metadata(
610614
method_name: str,
611615
error: Exception,
612616
subsegment: BaseSegment,
613-
capture_error: Optional[bool] = None,
617+
capture_error: bool | None = None,
614618
):
615619
"""Add full exception object as metadata for given subsegment
616620

0 commit comments

Comments
 (0)