From c0972cc137a4dace30bdceba744450a73e6557d5 Mon Sep 17 00:00:00 2001 From: Manuel Ochoa Date: Thu, 23 Jun 2022 03:49:20 -0500 Subject: [PATCH] feature(parser): handle when email_validator package is not present for SES model (#998) --- .../utilities/parser/models/ses.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/aws_lambda_powertools/utilities/parser/models/ses.py b/aws_lambda_powertools/utilities/parser/models/ses.py index 70fd2e83978..a12c7748504 100644 --- a/aws_lambda_powertools/utilities/parser/models/ses.py +++ b/aws_lambda_powertools/utilities/parser/models/ses.py @@ -1,12 +1,21 @@ +import logging +import sys from datetime import datetime -from typing import List, Optional +from typing import List, NewType, Optional from pydantic import BaseModel, Field -from pydantic.networks import EmailStr from pydantic.types import PositiveInt from ..types import Literal +has_email_validator = "email_validator" in sys.modules + +if has_email_validator: + from pydantic.networks import EmailStr +else: + logging.warning("email_validator package is not installed") + EmailStr = NewType("EmailStr", str) # type: ignore[no-redef, misc] + class SesReceiptVerdict(BaseModel): status: Literal["PASS", "FAIL", "GRAY", "PROCESSING_FAILED"]