Skip to content

How to troubleshoot/debug what line of mako file cause python exception to raise? #424

@kaddkaka

Description

@kaddkaka

I'm getting a python TypeError raised when elaborating a .mako file but the Traceback does not tell me what line of the mako file cause it. It looks like this:

Traceback (most recent call last):
  File "foo.py", line NN, in elaborate_template
    return my_template.render(var=value)
  File ".../python3.10/site-packages/mako/template.py", line 438, in render
    return runtime._render(self, self.callable_, args, data)
  File ".../python3.10/site-packages/mako/runtime.py", line 874, in _render
    _render_context(
  File ".../python3.10/site-packages/mako/runtime.py", line 916, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
  File ".../python3.10/site-packages/mako/runtime.py", line 943, in _exec_template
    callable_(context, *args, **kwargs)
  File "memory:0x7ca7deb88130", line 606, in render_body
  File "bar.py", line MM, in __eq__
    raise TypeError("Comparison not supported")
TypeError: Comparison not supported

Code at foo.py

my_template = Template(template_file.read())
return my_template.render(var=value)

Environment:

  • python verstion 3.10.15
  • mako.__version__ = 1.3.5

Background:

I was changing external python in bar.py and have never had to modify a mako file before. I couldn't find anything in Discussions or Issues when searching for Troubleshoot/Debug/Exception. So any help appreciated.

  1. Is it possible to print() from inside the .mako so that it appears on stdout while rendering?
  2. Can I step through the render process with debugger somehow?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions