Introducing UndefinedSilently to silently ignore undefined vars errors.
This commit is contained in:
parent
c32ff51032
commit
ecc8fa5db5
1 changed files with 15 additions and 2 deletions
17
renders.py
17
renders.py
|
|
@ -38,7 +38,7 @@ import zipfile
|
||||||
import StringIO
|
import StringIO
|
||||||
import xml.dom.minidom
|
import xml.dom.minidom
|
||||||
from os.path import isfile
|
from os.path import isfile
|
||||||
from jinja2 import Environment, Template as TemplateEngine
|
from jinja2 import Environment, Undefined
|
||||||
|
|
||||||
|
|
||||||
PARAGRAPH_TAG = '{% control_paragraph %}'
|
PARAGRAPH_TAG = '{% control_paragraph %}'
|
||||||
|
|
@ -50,6 +50,19 @@ OOO_TABLEROW_NODE = 'table:table-row'
|
||||||
OOO_TABLECELL_NODE = 'table:table-cell'
|
OOO_TABLECELL_NODE = 'table:table-cell'
|
||||||
|
|
||||||
|
|
||||||
|
# Silently undefined,
|
||||||
|
# see http://stackoverflow.com/questions/6182498/jinja2-how-to-make-it-fail-silently-like-djangotemplate
|
||||||
|
def silently_undefined(*args, **kwargs):
|
||||||
|
return u''
|
||||||
|
|
||||||
|
return_new = lambda *args, **kwargs: UndefinedSilently()
|
||||||
|
|
||||||
|
class UndefinedSilently(Undefined):
|
||||||
|
__unicode__ = silently_undefined
|
||||||
|
__str__ = silently_undefined
|
||||||
|
__call__ = return_new
|
||||||
|
__getattr__ = return_new
|
||||||
|
|
||||||
# ************************************************
|
# ************************************************
|
||||||
#
|
#
|
||||||
# SECRETARY FILTERS
|
# SECRETARY FILTERS
|
||||||
|
|
@ -106,7 +119,7 @@ class BaseRender():
|
||||||
to do the actual rendering.
|
to do the actual rendering.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
environment = Environment()
|
environment = Environment(undefined=UndefinedSilently)
|
||||||
environment.filters['pad'] = pad_string
|
environment.filters['pad'] = pad_string
|
||||||
|
|
||||||
template = environment.from_string(self.xml_document.toxml())
|
template = environment.from_string(self.xml_document.toxml())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue