summary refs log tree commit diff
path: root/synapse/util/stringutils.py
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2020-05-15 19:07:24 +0100
committerRichard van der Hoff <richard@matrix.org>2020-05-15 19:07:24 +0100
commit08fa96f03037178620f5f0dd609fac52fbf7f2d1 (patch)
tree65a6062a314470aa3309c6e1b1e4f77606e5f2c7 /synapse/util/stringutils.py
parentAdd Caddy 2 example (#7463) (diff)
downloadsynapse-08fa96f03037178620f5f0dd609fac52fbf7f2d1.tar.xz
Remove `exception_to_unicode`
this is a no-op on python 3.
Diffstat (limited to 'synapse/util/stringutils.py')
-rw-r--r--synapse/util/stringutils.py36
1 files changed, 0 insertions, 36 deletions
diff --git a/synapse/util/stringutils.py b/synapse/util/stringutils.py
index 6899bcb788..2cfa5cf721 100644
--- a/synapse/util/stringutils.py
+++ b/synapse/util/stringutils.py
@@ -85,42 +85,6 @@ def to_ascii(s):
         return s
 
 
-def exception_to_unicode(e):
-    """Helper function to extract the text of an exception as a unicode string
-
-    Args:
-        e (Exception): exception to be stringified
-
-    Returns:
-        unicode
-    """
-    # urgh, this is a mess. The basic problem here is that psycopg2 constructs its
-    # exceptions with PyErr_SetString, with a (possibly non-ascii) argument. str() will
-    # then produce the raw byte sequence. Under Python 2, this will then cause another
-    # error if it gets mixed with a `unicode` object, as per
-    # https://github.com/matrix-org/synapse/issues/4252
-
-    # First of all, if we're under python3, everything is fine because it will sort this
-    # nonsense out for us.
-    if not PY2:
-        return str(e)
-
-    # otherwise let's have a stab at decoding the exception message. We'll circumvent
-    # Exception.__str__(), which would explode if someone raised Exception(u'non-ascii')
-    # and instead look at what is in the args member.
-
-    if len(e.args) == 0:
-        return ""
-    elif len(e.args) > 1:
-        return six.text_type(repr(e.args))
-
-    msg = e.args[0]
-    if isinstance(msg, bytes):
-        return msg.decode("utf-8", errors="replace")
-    else:
-        return msg
-
-
 def assert_valid_client_secret(client_secret):
     """Validate that a given string matches the client_secret regex defined by the spec"""
     if client_secret_regex.match(client_secret) is None: