Python Jinja2模板获取对应的行号不';行不通
我想构建一个工具来收集Jinja2模板的覆盖率,为此我需要将生成的字节码映射到源HTML文件 我在Python Jinja2模板获取对应的行号不';行不通,python,jinja2,template-engine,Python,Jinja2,Template Engine,我想构建一个工具来收集Jinja2模板的覆盖率,为此我需要将生成的字节码映射到源HTML文件 我在Templateclassget\u correlative\u lineno中找到了一个方法,它看起来应该可以完成这项工作,但它没有 这是我的代码示例。它包含主脚本、main.py和templates文件夹中的模板文件,模板文件位于文件夹中的main.py # main.py import os import jinja2 TEMPLATE_FILENAME = 'index.html' TEM
Template
classget\u correlative\u lineno
中找到了一个方法,它看起来应该可以完成这项工作,但它没有
这是我的代码示例。它包含主脚本、main.py
和templates文件夹中的模板文件,模板文件位于文件夹中的main.py
# main.py
import os
import jinja2
TEMPLATE_FILENAME = 'index.html'
TEMPLATE_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'templates')
env = jinja2.Environment(loader=jinja2.FileSystemLoader(TEMPLATE_DIR))
template = env.get_template(TEMPLATE_FILENAME)
text = template.render()
lineno =template.get_corresponding_lineno(1)
模板index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if 2 + 2 == 4 %}
<p>This looks ok</p>
{% else %}
<p>This is not good</p>
{% endif %}
</body>
</html>
Traceback (most recent call last):
File "/Users/nikolaygolub/workspace/my/coverage-jinja-plugin/example/run.py", line 15, in <module>
print(template.get_corresponding_lineno(8))
File "/Users/nikolaygolub/workspace/pyenvs/py3all/lib/python3.5/site-packages/jinja2/environment.py", line 1056, in get_corresponding_lineno
for template_line, code_line in reversed(self.debug_info):
File "/Users/nikolaygolub/workspace/pyenvs/py3all/lib/python3.5/site-packages/jinja2/environment.py", line 1072, in debug_info
self._debug_info.split('&')]
File "/Users/nikolaygolub/workspace/pyenvs/py3all/lib/python3.5/site-packages/jinja2/environment.py", line 1071, in <listcomp>
return [tuple(imap(int, x.split('='))) for x in
ValueError: invalid literal for int() with base 10: ''
{% block content %}
<body>
{% if 2 + 2 == 4 %}
<p>This looks ok</p>
{% else %}
<p>This is not good</p>
{% endif %}
</body>
{% endblock %}