code: def zip_hash(cls, zf, prefix=''):
      
      prefix_length = len(prefix)
      names = sorted(name[prefix_length:] for name in zf.namelist()
          if name.startswith(prefix) and not name.endswith('.pyc') and not name.endswith('/'))
      def stream_factory(name):
        return zf.open(prefix + name)
      return cls._compute_hash(names, stream_factory)
docs: Return the hash of the contents of a zipfile, comparable with a cls.dir_hash.