docs: def read_fastq(filename):
      """
      return a stream of FASTQ entries, handling gzipped and empty files
      """
      if not filename:
          return itertools.cycle((None,))
      if filename == "-":
          filename_fh = sys.stdin
      elif filename.endswith('gz'):
          if is_python3:
              filename_fh = gzip.open(filename, mode='rt')
          else:
              filename_fh = BufferedReader(gzip.open(filename, mode='rt'))
      else:
          filename_fh = open(filename)
      return stream_fastq(filename_fh)