diff --git a/anymail/backends/sendgrid.py b/anymail/backends/sendgrid.py index 5238df4..91016c5 100644 --- a/anymail/backends/sendgrid.py +++ b/anymail/backends/sendgrid.py @@ -1,14 +1,13 @@ import uuid -from collections import Mapping -from email.utils import quote as rfc822_quote import warnings +from email.utils import quote as rfc822_quote from requests.structures import CaseInsensitiveDict from .base_requests import AnymailRequestsBackend, RequestsPayload from ..exceptions import AnymailConfigurationError, AnymailRequestsAPIError, AnymailWarning from ..message import AnymailRecipientStatus -from ..utils import BASIC_NUMERIC_TYPES, get_anymail_setting, timestamp, update_deep +from ..utils import BASIC_NUMERIC_TYPES, Mapping, get_anymail_setting, timestamp, update_deep class EmailBackend(AnymailRequestsBackend): diff --git a/anymail/utils.py b/anymail/utils.py index f0e2c64..defb912 100644 --- a/anymail/utils.py +++ b/anymail/utils.py @@ -1,7 +1,6 @@ import base64 import mimetypes from base64 import b64encode -from collections import Mapping, MutableMapping from datetime import datetime from email.mime.base import MIMEBase from email.utils import formatdate, getaddresses, unquote @@ -15,6 +14,11 @@ from django.utils.functional import Promise from django.utils.timezone import utc, get_fixed_timezone from six.moves.urllib.parse import urlsplit, urlunsplit +try: + from collections.abc import Mapping, MutableMapping # Python 3.3+ +except ImportError: + from collections import Mapping, MutableMapping + from .exceptions import AnymailConfigurationError, AnymailInvalidAddress