From 58bdf8007e957175f63b1fc117aba0dd416503a4 Mon Sep 17 00:00:00 2001 From: Naya Verdier Date: Fri, 28 Oct 2022 11:51:05 -0700 Subject: [PATCH] fix(logger): fix unknown attributes being ignored by mypy --- aws_lambda_powertools/logging/logger.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/aws_lambda_powertools/logging/logger.py b/aws_lambda_powertools/logging/logger.py index be30c098db4..b82c510036a 100644 --- a/aws_lambda_powertools/logging/logger.py +++ b/aws_lambda_powertools/logging/logger.py @@ -8,6 +8,7 @@ import traceback from typing import ( IO, + TYPE_CHECKING, Any, Callable, Dict, @@ -241,10 +242,14 @@ def __init__( self._init_logger(formatter_options=formatter_options, **kwargs) - def __getattr__(self, name): - # Proxy attributes not found to actual logger to support backward compatibility - # https://github.com/awslabs/aws-lambda-powertools-python/issues/97 - return getattr(self._logger, name) + # Prevent __getattr__ from shielding unknown attribute errors in type checkers + # https://github.com/awslabs/aws-lambda-powertools-python/issues/1660 + if not TYPE_CHECKING: + + def __getattr__(self, name): + # Proxy attributes not found to actual logger to support backward compatibility + # https://github.com/awslabs/aws-lambda-powertools-python/issues/97 + return getattr(self._logger, name) def _get_logger(self): """Returns a Logger named {self.service}, or {self.service.filename} for child loggers"""