我有以下脚本:
import pystache
d = {
'MSG' : 'bye'
}
print pystache.render('I say {{MSG}} {{THIS_IS_UNDEFINED}}', d)
打印哪些:
I say bye
但实际上我希望pystache引发异常,因为存在未定义的模式。在我的真实代码中,事情变得更复杂,因此获得关于哪些模式未定义的提示将非常有价值。
是否可以为此配置pystache?
答案 0 :(得分:4)
Renderer
与missing_tags="strict"
:
>>> import pystache
>>> pystache.Renderer(missing_tags="strict").render("I say {{MSG}} {{THIS_IS_UNDEFINED}}", d)
KeyNotFoundError: Key u'THIS_IS_UNDEFINED' not found: first part
您可以定义自己的函数strictrender
:
def strictrender(s, d):
renderer = pystache.Renderer(missing_tags='strict')
return renderer.render(s, d)
答案 1 :(得分:0)
我不知道pystache。我可以建议帮助 - 使用format()
:
def render(fmt, d):
fmt.replace('{{', '{').replace('}}', '}').format(**d)
return pystache.render(fmt, d)
也许你可以做pystache.render = render
。
当然,这不是一个完美的解决方案。