From e29c84ccc0661e5f74cc9f55d309e12e5b60ed38 Mon Sep 17 00:00:00 2001 From: Alex Morega Date: Sat, 18 May 2013 15:35:46 +0300 Subject: [PATCH] Python 3 exceptions can handle unicode messages --- jinja2/exceptions.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/jinja2/exceptions.py b/jinja2/exceptions.py index 813b7fb0..9fe698b5 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): -- 2.47.2