diff --git a/aws_lambda_powertools/logging/buffer/functions.py b/aws_lambda_powertools/logging/buffer/functions.py index cc266354e91..cbd453bcb00 100644 --- a/aws_lambda_powertools/logging/buffer/functions.py +++ b/aws_lambda_powertools/logging/buffer/functions.py @@ -2,10 +2,11 @@ import sys import time -from typing import TYPE_CHECKING, Any, Mapping +from typing import TYPE_CHECKING, Any if TYPE_CHECKING: import logging + from collections.abc import Mapping def _create_buffer_record( diff --git a/aws_lambda_powertools/logging/formatter.py b/aws_lambda_powertools/logging/formatter.py index 4dadcaf1ef7..705ca419823 100644 --- a/aws_lambda_powertools/logging/formatter.py +++ b/aws_lambda_powertools/logging/formatter.py @@ -11,12 +11,14 @@ from contextvars import ContextVar from datetime import datetime, timezone from functools import partial -from typing import TYPE_CHECKING, Any, Callable, Generator, Iterable +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.shared import constants from aws_lambda_powertools.shared.functions import powertools_dev_is_set if TYPE_CHECKING: + from collections.abc import Callable, Generator, Iterable + from aws_lambda_powertools.logging.types import LogRecord, LogStackTrace RESERVED_LOG_ATTRS = ( @@ -68,7 +70,7 @@ def append_context_keys(self, **additional_keys: Any) -> Generator[None, None, N yield # These specific thread-safe methods are necessary to manage shared context in concurrent environments. - # They prevent race conditions and ensure data consistency across multiple threads. + # They prevent race conditions and ensure data consistency across multiple threads and logger. def thread_safe_append_keys(self, **additional_keys) -> None: raise NotImplementedError() diff --git a/aws_lambda_powertools/logging/formatters/datadog.py b/aws_lambda_powertools/logging/formatters/datadog.py index 4f140d93683..03c8c11e4d5 100644 --- a/aws_lambda_powertools/logging/formatters/datadog.py +++ b/aws_lambda_powertools/logging/formatters/datadog.py @@ -1,10 +1,12 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Callable +from typing import TYPE_CHECKING, Any from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter if TYPE_CHECKING: + from collections.abc import Callable + from aws_lambda_powertools.logging.types import LogRecord diff --git a/aws_lambda_powertools/logging/logger.py b/aws_lambda_powertools/logging/logger.py index cb190030432..3dae687e7e6 100644 --- a/aws_lambda_powertools/logging/logger.py +++ b/aws_lambda_powertools/logging/logger.py @@ -14,7 +14,7 @@ import sys import warnings from contextlib import contextmanager -from typing import IO, TYPE_CHECKING, Any, Callable, Generator, Iterable, Mapping, TypeVar, cast, overload +from typing import IO, TYPE_CHECKING, Any, TypeVar, cast, overload from aws_lambda_powertools.logging.buffer.cache import LoggerBufferCache from aws_lambda_powertools.logging.buffer.functions import _check_minimum_buffer_log_level, _create_buffer_record @@ -45,6 +45,8 @@ from aws_lambda_powertools.warnings import PowertoolsUserWarning if TYPE_CHECKING: + from collections.abc import Callable, Generator, Iterable, Mapping + from aws_lambda_powertools.logging.buffer.config import LoggerBufferConfig from aws_lambda_powertools.shared.types import AnyCallableT diff --git a/aws_lambda_powertools/logging/utils.py b/aws_lambda_powertools/logging/utils.py index ccf704579e3..91a683ee0ce 100644 --- a/aws_lambda_powertools/logging/utils.py +++ b/aws_lambda_powertools/logging/utils.py @@ -1,9 +1,11 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING, Callable +from typing import TYPE_CHECKING if TYPE_CHECKING: + from collections.abc import Callable + from aws_lambda_powertools.logging.logger import Logger PACKAGE_LOGGER = "aws_lambda_powertools" diff --git a/tests/functional/logger/required_dependencies/test_logger.py b/tests/functional/logger/required_dependencies/test_logger.py index fdbeef26c64..56ec7b352cd 100644 --- a/tests/functional/logger/required_dependencies/test_logger.py +++ b/tests/functional/logger/required_dependencies/test_logger.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import functools import inspect import io @@ -9,8 +11,9 @@ import string import sys from collections import namedtuple +from collections.abc import Callable, Iterable from datetime import datetime, timezone -from typing import Any, Callable, Dict, Iterable, List, Optional, Union +from typing import Any import pytest @@ -855,12 +858,12 @@ def test_logger_custom_powertools_formatter_clear_state(stdout, service_name, la class CustomFormatter(LambdaPowertoolsFormatter): def __init__( self, - json_serializer: Optional[Callable[[Dict], str]] = None, - json_deserializer: Optional[Callable[[Union[Dict, str, bool, int, float]], str]] = None, - json_default: Optional[Callable[[Any], Any]] = None, - datefmt: Optional[str] = None, + json_serializer: Callable[[dict], str] | None = None, + json_deserializer: Callable[[dict, str, bool, int, float], str] | None = None, + json_default: Callable[[Any], Any] | None = None, + datefmt: str | None = None, use_datetime_directive: bool = False, - log_record_order: Optional[List[str]] = None, + log_record_order: list[str] | None = None, utc: bool = False, **kwargs, ): diff --git a/tests/functional/logger/required_dependencies/test_logger_powertools_formatter.py b/tests/functional/logger/required_dependencies/test_logger_powertools_formatter.py index a5189d783d7..2b6f9349340 100644 --- a/tests/functional/logger/required_dependencies/test_logger_powertools_formatter.py +++ b/tests/functional/logger/required_dependencies/test_logger_powertools_formatter.py @@ -1,5 +1,7 @@ """aws_lambda_logging tests.""" +from __future__ import annotations + import io import json import os diff --git a/tests/functional/logger/required_dependencies/test_logger_utils.py b/tests/functional/logger/required_dependencies/test_logger_utils.py index 53a94d612ad..f0a2baf3cf4 100644 --- a/tests/functional/logger/required_dependencies/test_logger_utils.py +++ b/tests/functional/logger/required_dependencies/test_logger_utils.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import io import json import logging diff --git a/tests/functional/logger/required_dependencies/test_logger_with_package_logger.py b/tests/functional/logger/required_dependencies/test_logger_with_package_logger.py index 2dfd6016333..e34972b34ad 100644 --- a/tests/functional/logger/required_dependencies/test_logger_with_package_logger.py +++ b/tests/functional/logger/required_dependencies/test_logger_with_package_logger.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import io import json import logging diff --git a/tests/functional/logger/required_dependencies/test_powertools_logger_buffer.py b/tests/functional/logger/required_dependencies/test_powertools_logger_buffer.py index 44e87d6102c..3c149d6dfed 100644 --- a/tests/functional/logger/required_dependencies/test_powertools_logger_buffer.py +++ b/tests/functional/logger/required_dependencies/test_powertools_logger_buffer.py @@ -1,5 +1,7 @@ """aws_lambda_logging tests.""" +from __future__ import annotations + import io import json import random diff --git a/tests/unit/logger/required_dependencies/test_logger_buffer_cache.py b/tests/unit/logger/required_dependencies/test_logger_buffer_cache.py index 00ae7696281..814331844a2 100644 --- a/tests/unit/logger/required_dependencies/test_logger_buffer_cache.py +++ b/tests/unit/logger/required_dependencies/test_logger_buffer_cache.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.logging.buffer.cache import LoggerBufferCache diff --git a/tests/unit/logger/required_dependencies/test_logger_buffer_config.py b/tests/unit/logger/required_dependencies/test_logger_buffer_config.py index 1cb0f1a5f0d..6c3061b1d87 100644 --- a/tests/unit/logger/required_dependencies/test_logger_buffer_config.py +++ b/tests/unit/logger/required_dependencies/test_logger_buffer_config.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from aws_lambda_powertools.logging.buffer import LoggerBufferConfig diff --git a/tests/unit/logger/required_dependencies/test_logger_buffer_functions.py b/tests/unit/logger/required_dependencies/test_logger_buffer_functions.py index 5a714b095d2..c4e80ec3058 100644 --- a/tests/unit/logger/required_dependencies/test_logger_buffer_functions.py +++ b/tests/unit/logger/required_dependencies/test_logger_buffer_functions.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from aws_lambda_powertools.logging.buffer.functions import _check_minimum_buffer_log_level