code: def next(self):
      
      if not self._zip:
        self._zip = zipfile.ZipFile(self._reader(self._blob_key))
        # Get a list of entries, reversed so we can pop entries off in order
        self._entries = self._zip.infolist()[self._start_index:self._end_index]
        self._entries.reverse()
      if not self._entries:
        raise StopIteration()
      entry = self._entries.pop()
      self._start_index += 1
      return (entry, lambda: self._read(entry))
docs: Returns the next input from this input reader as (ZipInfo, opener) tuple.
  
      Returns:
        The next input from this input reader, in the form of a 2-tuple.
        The first element of the tuple is a zipfile.ZipInfo object.
        The second element of the tuple is a zero-argument function that, when
        called, returns the complete body of the file.