docs: def _iterate_records(self):
          """ iterate over each record
          """
          raise_invalid_gzip = False
          empty_record = False
  
          while True:
              try:
                  self.record = self._next_record(self.next_line)
                  if raise_invalid_gzip:
                      self._raise_invalid_gzip_err()
  
                  yield self.record
  
              except EOFError:
                  empty_record = True
  
              self.read_to_end()
  
              if self.reader.decompressor:
                  # if another gzip member, continue
                  if self.reader.read_next_member():
                      continue
  
                  # if empty record, then we're done
                  elif empty_record:
                      break
  
                  # otherwise, probably a gzip
                  # containing multiple non-chunked records
                  # raise this as an error
                  else:
                      raise_invalid_gzip = True
  
              # non-gzip, so we're done
              elif empty_record:
                  break
  
          self.close()