Remove a case that is no longer reachable in encodings.py.
This case was originally designed to handle Exception's which didn't gracefully support coercing themselves to unicode. However, because it lives in the `else` case of `if hasattr(s, '__unicode__'):` we can be sure it's no longer reachable in djanog anymore, because since Python 2.5 exception has subclassed object, which means Exception objects always have an __unicode__ method.
This commit is contained in:
parent
da958eb209
commit
ce1eb320e5
|
@ -98,25 +98,13 @@ def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):
|
|||
if hasattr(s, '__unicode__'):
|
||||
s = s.__unicode__()
|
||||
else:
|
||||
try:
|
||||
if six.PY3:
|
||||
if isinstance(s, bytes):
|
||||
s = six.text_type(s, encoding, errors)
|
||||
else:
|
||||
s = six.text_type(s)
|
||||
if six.PY3:
|
||||
if isinstance(s, bytes):
|
||||
s = six.text_type(s, encoding, errors)
|
||||
else:
|
||||
s = six.text_type(bytes(s), encoding, errors)
|
||||
except UnicodeEncodeError:
|
||||
if not isinstance(s, Exception):
|
||||
raise
|
||||
# If we get to here, the caller has passed in an Exception
|
||||
# subclass populated with non-ASCII data without special
|
||||
# handling to display as a string. We need to handle this
|
||||
# without raising a further exception. We do an
|
||||
# approximation to what the Exception's standard str()
|
||||
# output should be.
|
||||
s = ' '.join([force_text(arg, encoding, strings_only,
|
||||
errors) for arg in s])
|
||||
s = six.text_type(s)
|
||||
else:
|
||||
s = six.text_type(bytes(s), encoding, errors)
|
||||
else:
|
||||
# Note: We use .decode() here, instead of six.text_type(s, encoding,
|
||||
# errors), so that if s is a SafeBytes, it ends up being a
|
||||
|
|
Loading…
Reference in New Issue