Commit ce1eb320 authored by Alex Gaynor's avatar Alex Gaynor
Browse files

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.
parent da958eb2
Loading
Loading
Loading
Loading
+6 −18
Original line number Diff line number Diff line
@@ -98,7 +98,6 @@ 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)
@@ -106,17 +105,6 @@ def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):
                        s = six.text_type(s)
                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])
        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