def _walk(node, config, path, parameters):
if is_ref(node) and node[node.keys()[0]] in parameters:
node = parameters[node[node.keys()[0]]]
if isinstance(node, list):
return [apply_extrinsics(_walk(value, config, path + [i], parameters), config, path + [i], parameters)
for i, value in enumerate(node)]
if isinstance(node, collections.Mapping):
return {key: apply_extrinsics(_walk(value, config, path + [key], parameters), config, path + [key], parameters)
for key, value in node.iteritems()}
if isinstance(node, int):
return node
if isinstance(node, unicode):
return node
raise UnexpectedNodeType(path, node)
评论列表
文章目录