summaryrefslogtreecommitdiff
path: root/jinja2
diff options
context:
space:
mode:
authorAlex Morega <alex@grep.ro>2013-05-18 15:35:46 +0300
committerAlex Morega <alex@grep.ro>2013-05-18 15:38:11 +0300
commite29c84ccc0661e5f74cc9f55d309e12e5b60ed38 (patch)
tree2ae2e795796bf5b8068523bdcdcdee6230d8f49d /jinja2
parenta1f2ee71124935a57537f8c84d7392bb9afc63e8 (diff)
downloadjinja2-e29c84ccc0661e5f74cc9f55d309e12e5b60ed38.tar.gz
Python 3 exceptions can handle unicode messages
Diffstat (limited to 'jinja2')
-rw-r--r--jinja2/exceptions.py30
1 files changed, 20 insertions, 10 deletions
diff --git a/jinja2/exceptions.py b/jinja2/exceptions.py
index 813b7fb..9fe698b 100644
--- a/jinja2/exceptions.py
+++ b/jinja2/exceptions.py
@@ -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):