gpt4 book ai didi

validation - 如何在没有变量插值的情况下验证 Jinja 语法

转载 作者:行者123 更新时间:2023-12-04 10:35:42 24 4
gpt4 key购买 nike

我没有成功找到一个好的预提交钩子(Hook),我可以用它来验证 Jinja2 格式的文件是否格式正确,而无需尝试替换变量。目标是,如果文件格式正确,不考虑变量是否可用,则返回 shell 代码为零,否则返回 1。

最佳答案

您可以在 Jinja 本身中执行此操作,您只需要编写一个脚本来读取和解析模板。

既然你仅限 关心格式正确的模板,而不是变量是否可用,这应该很容易做到:

#!/usr/bin/env python
# filename: check_my_jinja.py
import sys
from jinja2 import Environment

env = Environment()
with open(sys.argv[1]) as template:
env.parse(template.read())

或迭代所有模板的东西

#!/usr/bin/env python
# filename: check_my_jinja_recursive.py
import sys
import os
from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader('./mytemplates'))
templates = [x for x in env.list_templates() if x.endswith('.jinja2')]
for template in templates:
t = env.get_template(template)
env.parse(t)

如果语法不正确,您将得到 TemplateSyntaxError
所以你的预提交钩子(Hook)可能看起来像
python check_my_jinja.py template.jinja2
python check_my_jinja_recursive.py /dir/templates_folder

关于validation - 如何在没有变量插值的情况下验证 Jinja 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37939131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com