Skip to content

Commit cb521e0

Browse files
committed
Python 3.8 (prep): Import Mapping etc. from collections.abc
Python 3.3 moved various collections abstract base classes from `collections` to `collections.abc`, but also kept them available in `collections` for compatibility with Python 2. Python 3.8 will allow importing only from `collections.abc`. (`collections.abc` hasn't yet been added to six.moves; see benjaminp/six#155.)
1 parent 382ebf2 commit cb521e0

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

anymail/backends/sendgrid.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import uuid
2-
from collections import Mapping
3-
from email.utils import quote as rfc822_quote
42
import warnings
3+
from email.utils import quote as rfc822_quote
54

65
from requests.structures import CaseInsensitiveDict
76

87
from .base_requests import AnymailRequestsBackend, RequestsPayload
98
from ..exceptions import AnymailConfigurationError, AnymailRequestsAPIError, AnymailWarning
109
from ..message import AnymailRecipientStatus
11-
from ..utils import BASIC_NUMERIC_TYPES, get_anymail_setting, timestamp, update_deep
10+
from ..utils import BASIC_NUMERIC_TYPES, Mapping, get_anymail_setting, timestamp, update_deep
1211

1312

1413
class EmailBackend(AnymailRequestsBackend):

anymail/utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import base64
22
import mimetypes
33
from base64 import b64encode
4-
from collections import Mapping, MutableMapping
54
from datetime import datetime
65
from email.mime.base import MIMEBase
76
from email.utils import formatdate, getaddresses, unquote
@@ -15,6 +14,11 @@
1514
from django.utils.timezone import utc, get_fixed_timezone
1615
from six.moves.urllib.parse import urlsplit, urlunsplit
1716

17+
try:
18+
from collections.abc import Mapping, MutableMapping # Python 3.3+
19+
except ImportError:
20+
from collections import Mapping, MutableMapping
21+
1822
from .exceptions import AnymailConfigurationError, AnymailInvalidAddress
1923

2024

0 commit comments

Comments
 (0)