summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2021-07-22 16:03:06 +0200
committerDominik Holland <dominik.holland@googlemail.com>2022-01-27 13:50:04 +0100
commitb9eb94192848dd3a610c27404b14ff285260c44a (patch)
tree055aa25ff3736d8caa57e8aa8e1b71807ecf18be
parentcc4234b07474d6b3cc933e5c23ce12caf2076eda (diff)
downloadqtivi-qface-b9eb94192848dd3a610c27404b14ff285260c44a.tar.gz
Always provide a error message when using undefiend jinja variables
This stopped working with newer jinja versions.
-rw-r--r--qface/generator.py16
1 files changed, 5 insertions, 11 deletions
diff --git a/qface/generator.py b/qface/generator.py
index 3974cbc..d84a04c 100644
--- a/qface/generator.py
+++ b/qface/generator.py
@@ -41,15 +41,6 @@ def merge(a, b):
return a
-def template_error_handler(traceback):
- exc_type, exc_obj, exc_tb = traceback.exc_info
- error = exc_obj
- if isinstance(exc_type, TemplateError):
- error = exc_obj.message
- message = '{0}:{1}: error: {2}'.format(exc_tb.tb_frame.f_code.co_filename, exc_tb.tb_lineno, error)
- click.secho(message, fg='red', err=True)
-
-
class TestableUndefined(StrictUndefined):
"""Return an error for all undefined values, but allow testing them in if statements"""
def __bool__(self):
@@ -91,7 +82,6 @@ class Generator(object):
trim_blocks=True,
lstrip_blocks=True,
)
- self.env.exception_handler = template_error_handler
self.env.filters.update(get_filters())
self._destination = Path()
self._path = Path()
@@ -185,7 +175,11 @@ class Generator(object):
click.secho(message, fg='red', err=True)
error = True
except TemplateError as exc:
- # Just return with an error, the generic template_error_handler takes care of printing it
+ exc_tb = sys.exc_info()[2]
+ while exc_tb.tb_next != None:
+ exc_tb = exc_tb.tb_next
+ message = '{0}:{1}: error: {2}'.format(exc_tb.tb_frame.f_code.co_filename, exc_tb.tb_lineno, exc.message)
+ click.secho(message, fg='red', err=True)
error = True
if error and Generator.strict: