Allow with_items to specify a variable

This commit is contained in:
Daniel Hokka Zakrisson 2012-06-09 21:59:22 +02:00
parent 933b5e8631
commit a05da2d312
3 changed files with 11 additions and 3 deletions

View file

@ -201,7 +201,7 @@ def parse_json(data):
_LISTRE = re.compile(r"(\w+)\[(\d+)\]")
def varLookup(name, vars):
def _varLookup(name, vars):
''' find the contents of a possibly complex variable in vars. '''
path = name.split('.')
space = vars
@ -223,6 +223,12 @@ def varLookup(name, vars):
_KEYCRE = re.compile(r"\$(?P<complex>\{){0,1}((?(complex)[\w\.\[\]]+|\w+))(?(complex)\})")
# if { -> complex if complex, allow . and need trailing }
def varLookup(varname, vars):
m = _KEYCRE.search(varname)
if not m:
return None
return _varLookup(m.group(2), vars)
def varReplace(raw, vars):
'''Perform variable replacement of $vars
@ -245,7 +251,7 @@ def varReplace(raw, vars):
# original)
varname = m.group(2)
replacement = unicode(varLookup(varname, vars) or m.group())
replacement = unicode(_varLookup(varname, vars) or m.group())
start, end = m.span()
done.append(raw[:start]) # Keep stuff leading up to token