@pimms.value<EOL><INDENT>def data_tree(_parsed_instructions, path, supplemental_paths, path_parameters, data_files):<DEDENT>
data_tree = _parsed_instructions[<NUM_LIT:1>]<EOL>def visit_data(d):<EOL><INDENT>d = {k:visit_maps(v) for (k,v) in six.iteritems(d)}<EOL>return data_struct(d)<EOL><DEDENT>def visit_maps(m):<EOL><INDENT>r = {}<EOL>anylazy = False<EOL>for (k,v) in six.iteritems(m):<EOL><INDENT>kk = k if isinstance(k, tuple) else [k]<EOL>for k in kk:<EOL><INDENT>if len(v) > <NUM_LIT:0> and '<STR_LIT>' in next(six.itervalues(v)):<EOL><INDENT>(flnm,inst) = next(six.iteritems(v))<EOL>flnm = FileMap._deduce_filename(flnm, path, supplemental_paths,<EOL>path_parameters, inst)<EOL>r[k] = curry(lambda flnm:data_files[flnm], flnm)<EOL>anylazy = True<EOL><DEDENT>else: r[k] = visit_data(v)<EOL><DEDENT><DEDENT>return pimms.lazy_map(r) if anylazy else pyr.pmap(r)<EOL><DEDENT>return visit_data(data_tree)<EOL>
filemap.data_tree is a lazy data-structure of the data loaded by the filemap's instructions.