本文整理汇总了Python中waflib.Task.funex方法的典型用法代码示例。如果您正苦于以下问题:Python Task.funex方法的具体用法?Python Task.funex怎么用?Python Task.funex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类waflib.Task
的用法示例。
在下文中一共展示了Task.funex方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: compile_template
# 需要导入模块: from waflib import Task [as 别名]
# 或者: from waflib.Task import funex [as 别名]
def compile_template(line):
"""
Compile a template expression into a python function (like jsps, but way shorter)
"""
extr = []
def repl(match):
g = match.group
if g('dollar'): return "$"
elif g('backslash'):
return "\\"
elif g('subst'):
extr.append(g('code'))
return "<<|@|>>"
return None
line2 = reg_act.sub(repl, line)
params = line2.split('<<|@|>>')
assert(extr)
indent = 0
buf = []
dvars = []
app = buf.append
def app(txt):
buf.append(indent * '\t' + txt)
for x in range(len(extr)):
if params[x]:
app("lst.append(%r)" % params[x])
f = extr[x]
if f.startswith('if') or f.startswith('for'):
app(f + ':')
indent += 1
elif f.startswith('py:'):
app(f[3:])
elif f.startswith('endif') or f.startswith('endfor'):
indent -= 1
elif f.startswith('else') or f.startswith('elif'):
indent -= 1
app(f + ':')
indent += 1
elif f.startswith('xml:'):
app('lst.append(xml_escape(%s))' % f[4:])
else:
#app('lst.append((%s) or "cannot find %s")' % (f, f))
app('lst.append(%s)' % f)
if extr:
if params[-1]:
app("lst.append(%r)" % params[-1])
fun = COMPILE_TEMPLATE % "\n\t".join(buf)
#print(fun)
return Task.funex(fun)
示例2: compile_template
# 需要导入模块: from waflib import Task [as 别名]
# 或者: from waflib.Task import funex [as 别名]
def compile_template(line):
"""
Compile a template expression into a python function (like jsps, but way shorter)
"""
extr = []
def repl(match):
g = match.group
if g("dollar"):
return "$"
elif g("backslash"):
return "\\"
elif g("subst"):
extr.append(g("code"))
return "<<|@|>>"
return None
line2 = reg_act.sub(repl, line)
params = line2.split("<<|@|>>")
assert extr
indent = 0
buf = []
app = buf.append
def app(txt):
buf.append(indent * "\t" + txt)
for x in range(len(extr)):
if params[x]:
app("lst.append(%r)" % params[x])
f = extr[x]
if f.startswith("if") or f.startswith("for"):
app(f + ":")
indent += 1
elif f.startswith("py:"):
app(f[3:])
elif f.startswith("endif") or f.startswith("endfor"):
indent -= 1
elif f.startswith("else") or f.startswith("elif"):
indent -= 1
app(f + ":")
indent += 1
elif f.startswith("xml:"):
app("lst.append(xml_escape(%s))" % f[4:])
else:
# app('lst.append((%s) or "cannot find %s")' % (f, f))
app("lst.append(%s)" % f)
if extr:
if params[-1]:
app("lst.append(%r)" % params[-1])
fun = COMPILE_TEMPLATE % "\n\t".join(buf)
# print(fun)
return Task.funex(fun)