From aa24b486d098e9435d37a37e4a6de9d6349508c9 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Wed, 3 Jan 2024 18:02:56 +0000 Subject: [PATCH 1/2] Adding more verbose to Parser error message --- aws_lambda_powertools/utilities/parser/parser.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/aws_lambda_powertools/utilities/parser/parser.py b/aws_lambda_powertools/utilities/parser/parser.py index 9d3f8afa2c8..9b7ed0f23b4 100644 --- a/aws_lambda_powertools/utilities/parser/parser.py +++ b/aws_lambda_powertools/utilities/parser/parser.py @@ -171,8 +171,12 @@ def handler(event: Order, context: LambdaContext): try: logger.debug(f"Parsing and validating event model with envelope={envelope}") return envelope().parse(data=event, model=model) - except AttributeError: - raise InvalidEnvelopeError(f"Envelope must implement BaseEnvelope, envelope={envelope}") + except AttributeError as exc: + raise InvalidEnvelopeError( + f"Error: {str(exc)}. Please ensure that both the Input model and Envelope inherit from BaseModel,\n" + "And your payload adheres to the specified Input model structure.\n" + f"Envelope={envelope} \nModel={model}", + ) try: disable_pydantic_v2_warning() @@ -181,5 +185,9 @@ def handler(event: Order, context: LambdaContext): return model.parse_raw(event) return model.parse_obj(event) - except AttributeError: - raise InvalidModelTypeError(f"Input model must implement BaseModel, model={model}") + except AttributeError as exc: + raise InvalidModelTypeError( + f"Error: {str(exc)}. Please ensure the Input model inherit from BaseModel,\n" + "And your payload adheres to the specified Input model structure.\n" + f"Model={model}", + ) From a61d6635bda838ec4e8d824b4c0c1c8c3a4ef91d Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Thu, 4 Jan 2024 10:05:32 +0000 Subject: [PATCH 2/2] Addressing Ruben's feedback --- aws_lambda_powertools/utilities/parser/parser.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/aws_lambda_powertools/utilities/parser/parser.py b/aws_lambda_powertools/utilities/parser/parser.py index 9b7ed0f23b4..91d2763f4ec 100644 --- a/aws_lambda_powertools/utilities/parser/parser.py +++ b/aws_lambda_powertools/utilities/parser/parser.py @@ -173,9 +173,9 @@ def handler(event: Order, context: LambdaContext): return envelope().parse(data=event, model=model) except AttributeError as exc: raise InvalidEnvelopeError( - f"Error: {str(exc)}. Please ensure that both the Input model and Envelope inherit from BaseModel,\n" - "And your payload adheres to the specified Input model structure.\n" - f"Envelope={envelope} \nModel={model}", + f"Error: {str(exc)}. Please ensure that both the Input model and the Envelope inherits from BaseModel,\n" # noqa E501 + "and your payload adheres to the specified Input model structure.\n" + f"Envelope={envelope}\nModel={model}", ) try: @@ -187,7 +187,7 @@ def handler(event: Order, context: LambdaContext): return model.parse_obj(event) except AttributeError as exc: raise InvalidModelTypeError( - f"Error: {str(exc)}. Please ensure the Input model inherit from BaseModel,\n" - "And your payload adheres to the specified Input model structure.\n" + f"Error: {str(exc)}. Please ensure the Input model inherits from BaseModel,\n" + "and your payload adheres to the specified Input model structure.\n" f"Model={model}", )