def process_expansions(dct):
def expand(val, dct):
if isinstance(val, six.integer_types) or isinstance(val, bool):
return val
if isinstance(val, six.string_types):
dct2 = copy.deepcopy(dct)
for env_key, env_val in six.iteritems(os.environ):
dct2[env_key] = env_val
return string.Template(val).safe_substitute(dct2)
if isinstance(val, list):
return [expand(x, dct) for x in val]
if isinstance(val, dict):
return {k: expand(v,val) for k,v in six.iteritems(val)}
return val
for key,val in six.iteritems(dct):
nval = expand(val, dct)
dct[key] = nval
评论列表
文章目录