def process_without_storing(d_vals, s_f_strm, s_f_key, output_type, outfh,<EOL>f_f_header=None, s_f_has_header=False,<EOL>missing_val=None, delim=None,<EOL>ignore_missing_keys=False,<EOL>output_unpaired=False, verbose=False):
used_d_val_keys = set()<EOL>key_field_num = s_f_key<EOL>s_f_header = None<EOL>seen_keys = set()<EOL>out_handler = output_type.get_handler()<EOL>expected_cols_per_line = None<EOL>first_element = True<EOL>for line in file_iterator(s_f_strm, verbose):<EOL><INDENT>parts = __populated_missing_vals(line.split(delim), missing_val)<EOL>if first_element:<EOL><INDENT>regular_first, s_f_header, key_field_num =process_without_storing_header(parts, d_vals, f_f_header,<EOL>s_f_has_header, s_f_header, s_f_key,<EOL>key_field_num, out_handler, outfh,<EOL>missing_val, delim)<EOL><DEDENT>if not first_element or regular_first:<EOL><INDENT>if expected_cols_per_line is None:<EOL><INDENT>expected_cols_per_line = (len(parts) if s_f_header is None<EOL>else len(s_f_header))<EOL><DEDENT>if expected_cols_per_line != len(parts):<EOL><INDENT>raise RaggedInputError("<STR_LIT>" + str(len(parts)) + "<STR_LIT:U+0020>"<EOL>"<STR_LIT>" +<EOL>str(expected_cols_per_line) + "<STR_LIT>")<EOL><DEDENT>key_val = get_key_value(parts, key_field_num, ignore_missing_keys,<EOL>seen_keys, output_type)<EOL>if key_val is None and ignore_missing_keys:<EOL><INDENT>continue<EOL><DEDENT>seen_keys.add(key_val)<EOL>if key_val not in d_vals:<EOL><INDENT>if not output_unpaired:<EOL><INDENT>continue<EOL><DEDENT>f_f_flds = populate_unpaired_line(d_vals, f_f_header, missing_val)<EOL><DEDENT>else:<EOL><INDENT>f_f_flds = d_vals[key_val]<EOL>used_d_val_keys.add(key_val)<EOL><DEDENT>s_f_flds = ([dict(zip(s_f_header, parts))]<EOL>if s_f_header is not None else [parts])<EOL>out_handler.write_output(outfh, delim, s_f_flds, f_f_flds,<EOL>s_f_header, f_f_header)<EOL><DEDENT>first_element = False<EOL><DEDENT>if output_unpaired:<EOL><INDENT>__output_unpaired_vals(d_vals, used_d_val_keys, f_f_header, s_f_flds,<EOL>s_f_header, missing_val, out_handler, outfh, delim)<EOL><DEDENT>
Given a dictionary of values and (optionally) a header for a file,
join with another file with a linear pass that does not store The
file's values

:param d_vals: dictionary of key-value pairs to match up with the lines
               in the second file. If header_f1 is None, the values should
               be ordered iterables --output will be in presentation order.
               If f1_header is not None, values should be dictionary-like
               objects accessible via a keys --output will be in the order
               that the keys appear in header_f1
:param s_f_strm: TODO
:param s_f_key: TODO
:param header: TODO
:param f2_has_header: TODO
:param missing_val: TODO
:param verbose: TODO