Genera una excepción para atributos no definidos en jinja2

Necesito lo siguiente para levantar una excepción:

jinja2.Template("Hello {{ ax }}").render(a={}) 

Jinja2 devuelve silenciosamente una cadena vacía para el ax , por lo que se presenta como “Hola”.

¿Cómo hago para que jinja2 genere una excepción en atributos no definidos?

 from jinja2 import Template, StrictUndefined print Template("Hello {{ ax }}", undefined=StrictUndefined).render(a={}) 

Esto provocará una excepción:

 File " 

Si establece un valor para ax, funcionará según lo previsto:

 print Template("Hello {{ ax }}", undefined=StrictUndefined).render(a={'x':42}) 

imprimirá:

 Hello 42 

De acuerdo con la documentación, usted no puede porque ese comportamiento es una característica: vea aquí

Lo que haría es escribir un filtro personalizado que se comporte más de forma pirónica y KeyError un KeyError en el caso.

Algo que se puede usar más o menos como:

 jinja2.Template("Hello {{ a|myget('x') }}").render(a={})