[Scons-users] Scons swallowing exception stack trace for jinja2.exceptions.TemplateNotFound
Samir Mahaboob Khan Kagadkar
kagadkar at qti.qualcomm.com
Tue May 14 00:16:14 EDT 2024
Hi SCons Team,
I use the Jinja2 templating language (https://jinja.palletsprojects.com/en/3.1.x/) to generate scripts from within SCons.
Jinja2 raises the TemplateNotFound (jinja2.exceptions.TemplateNotFound) exception when, say, a file included in the template cannot be found.
Unfortunately scons does not show the exception stack trace when this is raised as part of a builder.
Here is a simple SConstruct that demonstrates this:
import jinja2
def small_builder(target, source, env):
raise jinja2.exceptions.TemplateNotFound("You should see this message")
env=Environment()
env.Command(['dummy/TEST.COMPLETE'], [], small_builder, chdir=0)
Here is the output not showing any stack trace:
$ scons -f <path_to_sconstruct_dir>/SConstruct dummy/TEST.COMPLETE
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
small_builder(["dummy/TEST.COMPLETE"], [])
scons: done building targets.
The TemplateNotFound can be raised in a simple standalone python3 script invocation:
import jinja2
raise jinja2.exceptions.TemplateNotFound("You should see this message")
with the below output
$ python3 test1.py
Traceback (most recent call last):
File "test1.py", line 2, in <module>
raise jinja2.exceptions.TemplateNotFound("You should see this message")
jinja2.exceptions.TemplateNotFound: You should see this message
Other exceptions work in SCons builders, of course. For example:
import jinja2
def small_builder(target, source, env):
#raise jinja2.exceptions.TemplateNotFound("You should see this message")
raise ValueError("You should see this message")
env=Environment()
env.Command(['dummy/TEST.COMPLETE'], [], small_builder, chdir=0)
with the following output:
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
small_builder(["dummy/TEST.COMPLETE"], [])
scons: *** [dummy/TEST.COMPLETE] ValueError : You should see this message
Traceback (most recent call last):
File “<….>/SCons/Action.py", line 1441, in execute
result = self.execfunction(target=target, source=rsources, env=env)
File "<….> /SConstruct", line 5, in small_builder
raise ValueError("You should see this message")
ValueError: You should see this message
scons: building terminated because of errors.
I am running all of this on the latest scons:
scons --version
SCons by Steven Knight et al.:
SCons: v4.7.0.265be6883fadbb5a545612265acc919595158366, Sun, 17 Mar 2024 17:33:54 -0700, by bdbaddog on M1Dog2021
Could you please take a look?
Thanks
Samir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20240514/3df35507/attachment.htm>
More information about the Scons-users
mailing list