Skip to content

mako.exceptions Tries to do b"bytes".split() when rendering text_error_template, and fails (in Python 3) #209

@sqlalchemy-bot

Description

@sqlalchemy-bot

Migrated issue, originally created by Anonymous

Magical combination:

  • Python 3
  • TemplateLookup being used with...
  • ...module_directory
  • Template's render() must fail (due to no such argument, for example)
  • While handling exception, do mako.exceptions.text_error_template().render()

Result:

While trying to display error template, another exception is thrown because byte-strings don't have split().

"''During handling of the above exception, another exception occurred [...snip...] for line in module_source.split("\n"):
TypeError: Type str doesn't support the buffer API''"

Work-Around:

To "fix" this, change line 170 in mako/exceptions.py from:

for line in module_source.split("\n"):

...to...

for line in module_source.decode('utf-8').split("\n"):

I believe 'utf-8' will need to be replaced with something else.


Attachments: my_template.html | mako_bug.py

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions