diff options
author | Alex Morega <alex@grep.ro> | 2013-05-18 15:35:46 +0300 |
---|---|---|
committer | Alex Morega <alex@grep.ro> | 2013-05-18 15:38:11 +0300 |
commit | e29c84ccc0661e5f74cc9f55d309e12e5b60ed38 (patch) | |
tree | 2ae2e795796bf5b8068523bdcdcdee6230d8f49d /jinja2 | |
parent | a1f2ee71124935a57537f8c84d7392bb9afc63e8 (diff) | |
download | jinja2-e29c84ccc0661e5f74cc9f55d309e12e5b60ed38.tar.gz |
Python 3 exceptions can handle unicode messages
Diffstat (limited to 'jinja2')
-rw-r--r-- | jinja2/exceptions.py | 30 |
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): |