from pprint import pprint
from Cheetah.Template import Template
src_nameMapper_noTransArg = """
#def foo
This is bar: $bar(1234)
#end def
#def bar(arg)
--- $arg ---
#end def
#def main
This is foo: $foo
#end def
A test template
This is main: $main
#for i in range(100)
$i
#end for
#raw
#for i in range(100)
$i
#end for
#end raw
#for i in range(10)
$main
#end for
"""
src_nameMapper_withTransArg = """
#def foo
This is bar: $bar(arg=1234,trans=trans)
#end def
#def bar(arg)
--- $arg ---
#end def
#def main
This is foo: $foo(trans=trans)
#end def
A test template
This is main: $main(trans=trans)
#for i in range(100)
$i
#end for
#raw
#for i in range(100)
$i
#end for
#end raw
#for i in range(10)
$main(trans=trans)
#end for
"""
src_noNameMapper_withTransArg = """
#def foo
This is bar: $self.bar(trans=trans,arg=1234)
#end def
#def bar(arg)
--- $arg ---
#end def
#def main
This is foo: $self.foo(trans)
#end def
A test template
This is main: $self.main(trans)
#for i in range(100)
$i
#end for
#raw
#for i in range(100)
$i
#end for
#end raw
#for i in range(10)
$self.main(trans)
#end for
"""
src_noNameMapper_noTransArg = """
#def foo
This is bar: $self.bar(arg=1234)
#end def
#def bar(arg)
--- $arg ---
#end def
#def main
This is foo: $self.foo()
#end def
A test template
This is main: $self.main()
#for i in range(100)
$i
#end for
#raw
#for i in range(100)
$i
#end for
#end raw
#for i in range(10)
$self.main()
#end for
"""
settings1 = {'useNameMapper':True,
'useStackFrames':False,
'alwaysFilterNone':False,
'useFilters':True,
'includeRawExprInFilterArgs':True,
}
settings2 = {'useNameMapper':True,
'useStackFrames':True,
'alwaysFilterNone':False,
'useFilters':True,
'includeRawExprInFilterArgs':True,
}
settings3 = {'useNameMapper':True,
'useStackFrames':True,
'alwaysFilterNone':True,
'useFilters':True,
'includeRawExprInFilterArgs':True,
}
settings4 = {'useNameMapper':True,
'useStackFrames':True,
'alwaysFilterNone':True,
'useFilters':True,
'includeRawExprInFilterArgs':False,
}
settings5 = {'useNameMapper':True,
'useStackFrames':True,
'alwaysFilterNone':True,
'useFilters':False,
#'includeRawExprInFilterArgs':False,
}
settings6 = {'useNameMapper':False,
#'useStackFrames':True,
'alwaysFilterNone':True,
'useFilters':False,
#'includeRawExprInFilterArgs':False,
}
includeTransArg = True
def getTemplateSrc(settings):
if settings['useNameMapper']:
if includeTransArg:
return src_nameMapper_withTransArg
else:
return src_nameMapper_noTransArg
else:
if includeTransArg:
return src_noNameMapper_withTransArg
else:
return src_noNameMapper_noTransArg
precompiledTemplates = {}
def getTemplate(i):
settings = globals().get('settings%i'%i)
if i not in precompiledTemplates:
precompiledTemplates[i] = Template(getTemplateSrc(settings), compilerSettings=settings)
return precompiledTemplates[i]
#template = T(templateSrc_NameMapper)
#print template._generatedClassCode
#print str(template)
def printSettings(i):
settings = globals().get('settings%i'%i)
items = settings.items()
items.sort()
for set in items:
print ' %s=%s'%set
#pprint(items, indent=4)
def printTemplateCode(i):
settings = globals().get('settings%i'%i)
print getTemplate(i)._generatedClassCode
def testPrecompiled(i):
str(getTemplate(i))
def testWithCompilation(i):
settings = globals().get('settings%i'%i)
str(Template(getTemplateSrc(settings), compilerSettings=settings))
syntax highlighted by Code2HTML, v. 0.9.1