Kaydet (Commit) ce1eb320 authored tarafından Alex Gaynor's avatar Alex Gaynor

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.
üst da958eb2
...@@ -98,25 +98,13 @@ def force_text(s, encoding='utf-8', strings_only=False, errors='strict'): ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment