GeezerVison is showing github.com — refactor(parser): Improve error message when parsing models and envel… · dastra/powertools-lambda-python@aacb37d
File tree
Expand file treeCollapse file tree
Open diff view settings
aws_lambda_powertools/utilities/parser
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: aws_lambda_powertools/utilities/parser/parser.py +12-4Lines changed: 12 additions & 4 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -171,8 +171,12 @@ def handler(event: Order, context: LambdaContext): |
171 | 171 | try: |
172 | 172 | logger.debug(f"Parsing and validating event model with envelope={envelope}") |
173 | 173 | return envelope().parse(data=event, model=model) |
174 | | - except AttributeError: |
175 | | - raise InvalidEnvelopeError(f"Envelope must implement BaseEnvelope, envelope={envelope}") |
| 174 | + except AttributeError as exc: |
| 175 | + raise InvalidEnvelopeError( |
| 176 | + f"Error: {str(exc)}. Please ensure that both the Input model and the Envelope inherits from BaseModel,\n" # noqa E501 |
| 177 | + "and your payload adheres to the specified Input model structure.\n" |
| 178 | + f"Envelope={envelope}\nModel={model}", |
| 179 | + ) |
176 | 180 |
|
177 | 181 | try: |
178 | 182 | disable_pydantic_v2_warning() |
@@ -181,5 +185,9 @@ def handler(event: Order, context: LambdaContext): |
181 | 185 | return model.parse_raw(event) |
182 | 186 |
|
183 | 187 | return model.parse_obj(event) |
184 | | - except AttributeError: |
185 | | - raise InvalidModelTypeError(f"Input model must implement BaseModel, model={model}") |
| 188 | + except AttributeError as exc: |
| 189 | + raise InvalidModelTypeError( |
| 190 | + f"Error: {str(exc)}. Please ensure the Input model inherits from BaseModel,\n" |
| 191 | + "and your payload adheres to the specified Input model structure.\n" |
| 192 | + f"Model={model}", |
| 193 | + ) |