def stream_fastq_full(fastq, threads):
logging.info("<STR_LIT>")<EOL>inputfastq = handle_compressed_input(fastq)<EOL>with cfutures.ProcessPoolExecutor(max_workers=threads) as executor:<EOL><INDENT>for results in executor.map(extract_all_from_fastq, SeqIO.parse(inputfastq, "<STR_LIT>")):<EOL><INDENT>yield results<EOL><DEDENT><DEDENT>logging.info("<STR_LIT>")<EOL>
Generator for returning metrics extracted from fastq.

    Extract from a fastq file:
    -readname
    -average and median quality
    -read_lenght