code: def iter_tar(arch_f, gz=False, stream=False):
    
    read_type = 'r' + ('|' if stream else ':')
    if gz:
      read_type += 'gz'
  
    with _open_or_pass(arch_f) as fobj:
      tar = tarfile.open(mode=read_type, fileobj=fobj)
      for member in tar:
        extract_file = tar.extractfile(member)
        if extract_file:  # File with data (not directory):
          path = _normpath(member.path)
          if not path:
            continue
          yield [path, extract_file]
docs: Iter over tar archive, yielding (path, object-like) tuples.
  
    Args:
      arch_f: File object of the archive to iterate.
      gz: If True, open a gzip'ed archive.
      stream: If True, open the archive in stream mode which allows for faster
        processing and less temporary disk consumption, but random access to the
        file is not allowed.
  
    Yields:
      (filepath, extracted_fobj) for each file in the archive.