]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Python 3 exceptions can handle unicode messages 222/head
authorAlex Morega <alex@grep.ro>
Sat, 18 May 2013 12:35:46 +0000 (15:35 +0300)
committerAlex Morega <alex@grep.ro>
Sat, 18 May 2013 12:38:11 +0000 (15:38 +0300)
jinja2/exceptions.py

index 813b7fb01489a40dc61b2bd971103fc28557cc75..9fe698b576b213098fb7affb2ed317c7d9a84951 100644 (file)
@@ -8,6 +8,7 @@
     :copyright: (c) 2010 by the Jinja Team.
     :license: BSD, see LICENSE for more details.
 """
+import sys
 import six
 from six.moves import map
 
@@ -15,17 +16,26 @@ from six.moves import map
 class TemplateError(Exception):
     """Baseclass for all template errors."""
 
-    def __init__(self, message=None):
-        if message is not None:
-            message = six.text_type(message).encode('utf-8')
-        Exception.__init__(self, message)
-
-    @property
-    def message(self):
-        if self.args:
-            message = self.args[0]
+    if sys.version_info[0] < 3:
+        def __init__(self, message=None):
             if message is not None:
-                return message.decode('utf-8', 'replace')
+                message = six.text_type(message).encode('utf-8')
+            Exception.__init__(self, message)
+
+        @property
+        def message(self):
+            if self.args:
+                message = self.args[0]
+                if message is not None:
+                    return message.decode('utf-8', 'replace')
+
+    else:
+        @property
+        def message(self):
+            if self.args:
+                message = self.args[0]
+                if message is not None:
+                    return message
 
 
 class TemplateNotFound(IOError, LookupError, TemplateError):