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
https://github.com/benjaminp/six/issues/155.)
This commit is contained in:
medmunds
2018-08-27 11:24:44 -07:00
parent 382ebf249c
commit cb521e0e0e
2 changed files with 7 additions and 4 deletions

View File

@@ -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):

View File

@@ -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