From 2798da194e54181cfc3db9f56a7ff11406defb20 Mon Sep 17 00:00:00 2001 From: nayaverdier Date: Mon, 31 Oct 2022 02:49:10 -0700 Subject: [PATCH] fix(logger): fix unknown attributes being ignored by mypy (#1670) --- 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"""