mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 11:51:05 -05:00
Drop Python 2 and Django 1.11 support
Minimum supported versions are now Django 2.0, Python 3.5. This touches a lot of code, to: * Remove obsolete portability code and workarounds (six, backports of email parsers, test utils, etc.) * Use Python 3 syntax (class defs, raise ... from, etc.) * Correct inheritance for mixin classes * Fix outdated docs content and links * Suppress Python 3 "unclosed SSLSocket" ResourceWarnings that are beyond our control (in integration tests due to boto3, python-sparkpost)
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import json
|
||||
from datetime import date, datetime
|
||||
|
||||
import six
|
||||
from django.conf import settings
|
||||
from django.core.mail.backends.base import BaseEmailBackend
|
||||
from django.utils.timezone import is_naive, get_current_timezone, make_aware, utc
|
||||
@@ -23,7 +22,7 @@ class AnymailBaseBackend(BaseEmailBackend):
|
||||
"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(AnymailBaseBackend, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
self.ignore_unsupported_features = get_anymail_setting('ignore_unsupported_features',
|
||||
kwargs=kwargs, default=False)
|
||||
@@ -207,7 +206,7 @@ class AnymailBaseBackend(BaseEmailBackend):
|
||||
(self.__class__.__module__, self.__class__.__name__))
|
||||
|
||||
|
||||
class BasePayload(object):
|
||||
class BasePayload:
|
||||
# Listing of EmailMessage/EmailMultiAlternatives attributes
|
||||
# to process into Payload. Each item is in the form:
|
||||
# (attr, combiner, converter)
|
||||
@@ -365,7 +364,7 @@ class BasePayload(object):
|
||||
# TypeError: must be str, not list
|
||||
# TypeError: can only concatenate list (not "str") to list
|
||||
# TypeError: Can't convert 'list' object to str implicitly
|
||||
if isinstance(value, six.string_types) or is_lazy(value):
|
||||
if isinstance(value, str) or is_lazy(value):
|
||||
raise TypeError('"{attr}" attribute must be a list or other iterable'.format(attr=attr))
|
||||
|
||||
#
|
||||
@@ -538,7 +537,7 @@ class BasePayload(object):
|
||||
except TypeError as err:
|
||||
# Add some context to the "not JSON serializable" message
|
||||
raise AnymailSerializationError(orig_err=err, email_message=self.message,
|
||||
backend=self.backend, payload=self)
|
||||
backend=self.backend, payload=self) from None
|
||||
|
||||
@staticmethod
|
||||
def _json_default(o):
|
||||
|
||||
Reference in New Issue
Block a user