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__'):
|
if hasattr(s, '__unicode__'):
|
||||||
s = s.__unicode__()
|
s = s.__unicode__()
|
||||||
else:
|
else:
|
||||||
try:
|
if six.PY3:
|
||||||
if six.PY3:
|
if isinstance(s, bytes):
|
||||||
if isinstance(s, bytes):
|
s = six.text_type(s, encoding, errors)
|
||||||
s = six.text_type(s, encoding, errors)
|
|
||||||
else:
|
|
||||||
s = six.text_type(s)
|
|
||||||
else:
|
else:
|
||||||
s = six.text_type(bytes(s), encoding, errors)
|
s = six.text_type(s)
|
||||||
except UnicodeEncodeError:
|
else:
|
||||||
if not isinstance(s, Exception):
|
s = six.text_type(bytes(s), encoding, errors)
|
||||||
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])
|
|
||||||
else:
|
else:
|
||||||
# Note: We use .decode() here, instead of six.text_type(s, encoding,
|
# 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
|
# errors), so that if s is a SafeBytes, it ends up being a
|
||||||
|
Loading…
x
Reference in New Issue
Block a user