From 6792ed865872f9d4886ae620ae42d446f7c3065a Mon Sep 17 00:00:00 2001 From: Dmitry Groshev Date: Sat, 6 Jun 2020 19:19:59 +0100 Subject: [PATCH] Avoid Django3.0 force_text deprecation warning Switch to force_str, falling back to deprecated force_text for Python 2 compatibility. --- anymail/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/anymail/utils.py b/anymail/utils.py index ac48680..35a7e1c 100644 --- a/anymail/utils.py +++ b/anymail/utils.py @@ -9,7 +9,10 @@ from time import mktime import six from django.conf import settings from django.core.mail.message import sanitize_address, DEFAULT_ATTACHMENT_MIME_TYPE -from django.utils.encoding import force_text +if six.PY2: + from django.utils.encoding import force_text as force_str +else: + from django.utils.encoding import force_str from django.utils.functional import Promise from django.utils.timezone import utc, get_fixed_timezone from requests.structures import CaseInsensitiveDict @@ -147,7 +150,7 @@ def parse_address_list(address_list, field=None): # from the list -- which may split comma-seperated strings into multiple addresses. # (See django.core.mail.message: EmailMessage.message to/cc/bcc/reply_to handling; # also logic for ADDRESS_HEADERS in forbid_multi_line_headers.) - address_list_strings = [force_text(address) for address in address_list] # resolve lazy strings + address_list_strings = [force_str(address) for address in address_list] # resolve lazy strings name_email_pairs = getaddresses(address_list_strings) if name_email_pairs == [] and address_list_strings == [""]: name_email_pairs = [('', '')] # getaddresses ignores a single empty string