parameters: (path)
return_statement: return zipinfo
docstring: This builds a similar dictionary to the zipimport directory
      caches.  However instead of tuples, ZipInfo objects are stored.
  
      The translation of the tuple is as follows:
        * [0] - zipinfo.filename on stock pythons this needs "/" --> os.sep
                on pypy it is the same (one reason why distribute did work
                in some cases on pypy and win32).
        * [1] - zipinfo.compress_type
        * [2] - zipinfo.compress_size
        * [3] - zipinfo.file_size
        * [4] - len(utf-8 encoding of filename) if zipinfo & 0x800
                len(ascii encoding of filename) otherwise
        * [5] - (zipinfo.date_time[0] - 1980) << 9 |
                 zipinfo.date_time[1] << 5 | zipinfo.date_time[2]
        * [6] - (zipinfo.date_time[3] - 1980) << 11 |
                 zipinfo.date_time[4] << 5 | (zipinfo.date_time[5] // 2)
        * [7] - zipinfo.CRC
docstring_summary: This builds a similar dictionary to the zipimport directory
      caches.  However instead of tuples, ZipInfo objects are stored.
docstring_tokens: This builds a similar dictionary to the zipimport directory caches . However instead of tuples ZipInfo objects are stored .
function: def build_zipmanifest(path):
      """
      This builds a similar dictionary to the zipimport directory
      caches.  However instead of tuples, ZipInfo objects are stored.
  
      The translation of the tuple is as follows:
        * [0] - zipinfo.filename on stock pythons this needs "/" --> os.sep
                on pypy it is the same (one reason why distribute did work
                in some cases on pypy and win32).
        * [1] - zipinfo.compress_type
        * [2] - zipinfo.compress_size
        * [3] - zipinfo.file_size
        * [4] - len(utf-8 encoding of filename) if zipinfo & 0x800
                len(ascii encoding of filename) otherwise
        * [5] - (zipinfo.date_time[0] - 1980) << 9 |
                 zipinfo.date_time[1] << 5 | zipinfo.date_time[2]
        * [6] - (zipinfo.date_time[3] - 1980) << 11 |
                 zipinfo.date_time[4] << 5 | (zipinfo.date_time[5] // 2)
        * [7] - zipinfo.CRC
      """
      zipinfo = dict()
      with ContextualZipFile(path) as zfile:
          for zitem in zfile.namelist():
              zpath = zitem.replace('/', os.sep)
              zipinfo[zpath] = zfile.getinfo(zitem)
              assert zipinfo[zpath] is not None
      return zipinfo
function_tokens: def build_zipmanifest ( path ) : zipinfo = dict ( ) with ContextualZipFile ( path ) as zfile : for zitem in zfile . namelist ( ) : zpath = zitem . replace ( '/' , os . sep ) zipinfo [ zpath ] = zfile . getinfo ( zitem ) assert zipinfo [ zpath ] is not None return zipinfo