‡Æ
Nö9c       s    d  Z    d k Z d k Z d k Z  d k Z  y 	 d k Z Wn 
  e Z n X d e f d „  ƒ  YZ  e Z	  d Z
  d Z  d Z  d Z  d Z  d	 Z  d
 Z  d Z  d „  Z / d f  d „  ƒ  YZ \ d f  d „  ƒ  YZ ‡d e f d „  ƒ  YZ d S(   s   Read and write ZIP files.Ns
   BadZipfilec      s     RS(   N(    (    s$   /mit/python/lib/python2.0/zipfile.pys
   BadZipfile s   i    i   s   <4s4H2lHs   PKs   <4s4B4H3l5H2ls   PKs   <4s2B4H3l2Hs   PKc    s—    # $ yz % t  |  d ƒ } & | i d d ƒ ' | i ƒ  } ( | i ƒ  ) | d d !d j o | d d j o * d Sn Wn + , n Xd	 S(
   s   Quickly see if file is a ZIP file by checking the magic number.

    Will not accept a ZIP archive with an ending comment.
    s   rbi   i   i    i   s   PKs     i   N(   s   opens   filenames   fpins   seeks   reads   endrecs   close(   s   filenames   fpins   endrecs$   /mit/python/lib/python2.0/zipfile.pys
   is_zipfile s   )s   ZipInfoc      s>   / d  Z  0 2 d d d d d d d f d „ Z H d „  Z RS(   s>   Class with attributes describing each file in the ZIP archive.c    s£   2 3 | |  _  4 | |  _ 6 t |  _ 7 d |  _ 8 d |  _ 9 d |  _ : d |  _ ; d |  _	 < d |  _
 = d |  _ > d |  _ ? d |  _ @ d |  _ d  S(   Ns    i    i   (   s   filenames   selfs	   date_times
   ZIP_STOREDs   compress_types   comments   extras   create_systems   create_versions   extract_versions   reserveds	   flag_bitss   volumes   internal_attrs   external_attr(   s   selfs   filenames	   date_times$   /mit/python/lib/python2.0/zipfile.pys   __init__2 s   s   NoNamei¼  i   i    c    s'  H I J |  i } K | d d d >| d d >B| d B} L | d d >| d	 d >B| d d B} M |  i d
 @o O d } } } n% Q |  i } R |  i } S |  i } T t	 i
 t t U |  i |  i |  i V |  i | | | W | | X t |  i ƒ t |  i ƒ ƒ } Y | |  i |  i Sd S(   s'   Return the per-file header as a string.i    i¼  i	   i   i   i   i   i   i   i   N(   s   selfs	   date_times   dts   dosdates   dostimes	   flag_bitss   CRCs   compress_sizes	   file_sizes   structs   packs   structFileHeaders   stringFileHeaders   extract_versions   reserveds   compress_types   lens   filenames   extras   header(   s   selfs   dts   dosdates   dostimes   CRCs   compress_sizes	   file_sizes   headers$   /mit/python/lib/python2.0/zipfile.pys
   FileHeaderH s   ))	!(   s   __doc__s   __init__s
   FileHeader(    s$   /mit/python/lib/python2.0/zipfile.pys   ZipInfo/ s   	$s   ZipFilec      s¶   \ d  Z  ] _ d e d „ Z ‚ d „  Z ¿ d „  Z Æ d „  Z Ë d „  Z Ò d „  Z Ú d „  Z Þ d	 „  Z	  d
 „  Z
 e e d „ Z Id „  Z ad „  Z gd „  Z RS(   s?   Class with methods to open, read, write, close, list zip files.c    sÊ  _ ` a | t j o b n< c | t j o d t o e t d ‚ n n h t d ‚ i d |  _ j h  |  _ k g  |  _ l | |  _  m | |  _	 n | d |  _
 } o | d j o& p t | d ƒ |  _ q |  i ƒ  né r | d j o s t | d ƒ |  _ nÀ t | d j o£ u t | d	 ƒ } |  _ v | i d
 d ƒ w | i ƒ  } x | d d !t j o | d d j o' z |  i ƒ  | | i |  i d ƒ n ~ | i d d ƒ n € t d ‚ d S(   s>   Open the ZIP file with mode read "r", write "w" or append "a".s.   Compression requires the (missing) zlib modules(   That compression method is not supportedi    s   rs   rbs   ws   wbs   as   r+bi   i   i   s     s   Mode must be "r", "w" or "a"N(   s   compressions
   ZIP_STOREDs   ZIP_DEFLATEDs   zlibs   RuntimeErrors   selfs   debugs
   NameToInfos   filelists   filenames   modes   keys   opens   fps   _GetContentss   seeks   reads   endrecs   stringEndArchives	   start_dir(   s   selfs   filenames   modes   compressions   keys   fps   endrecs$   /mit/python/lib/python2.0/zipfile.pys   __init___ s6   )s   rc    sU  ‚ ƒ „ |  i } … | i d d ƒ † | i ƒ  d } ‡ | i d ƒ } ˆ | d d !t j p | d d j o ‰ t d ‚ n Š t	 i
 t | ƒ } ‹ |  i d j o Œ | GHn  | d } Ž | d	 }  | d | } ‘ | | } ’ |  i d j o “ d
 G| G| G| GHn • | | |  _ – | i |  i d ƒ — d } ˜ x;˜ | | j  o*™ | i d ƒ }	 š | d } › |	 d d !t j o œ t d ‚ n  t	 i
 t |	 ƒ }	 ž |  i d j o Ÿ |	 GHn   | i |	 d ƒ }
 ¢ t |
 ƒ } £ | i |	 d ƒ | _ ¤ | i |	 d ƒ | _ ¥ | |	 d |	 d |	 d } ¦ |	 d | | _ § | i d |	 d |	 d | _ ¨ |	 d d !\ | _ | _ | _ | _ | _  | _! } } | _$ | _% | _& « |	 d d !\ | _' | _( | _) ­ | d ?d | d ?d @| d @| d ?| d ?d @| d @d f | _* ¯ |  i+ i, | ƒ ° | |  i- | i <± |  i d j o ² d G| GHn qPW³ xÀ |  i+ d ³ r° } ´ | i | i d ƒ µ | i d ƒ } ¶ | d d !t0 j o · t d ‚ n ¸ t	 i
 t1 | ƒ } ¹ | i | d ƒ } º | | i j o » t3 d | i | f ‚ n qšWd S(   s/   Read in the table of contents for the ZIP file.i   i   i    i   s     s.   File is not a zip file, or ends with a commenti   i   i   s   given, inferred, offseti.   s&   Bad magic number for central directoryi   i   i   i   i   i   i	   i¼  i   i   i?   s   totals    Bad magic number for file headeri
   s3   File name in directory "%s" and header "%s" differ.N(4   s   selfs   fps   seeks   tells   filesizes   reads   endrecs   stringEndArchives
   BadZipfiles   structs   unpacks   structEndArchives   debugs   size_cds	   offset_cds   xs   concats	   start_dirs   totals   centdirs   stringCentralDirs   structCentralDirs   filenames   ZipInfos   extras   comments   header_offsets   file_offsets   create_versions   create_systems   extract_versions   reserveds	   flag_bitss   compress_types   ts   ds   CRCs   compress_sizes	   file_sizes   volumes   internal_attrs   external_attrs	   date_times   filelists   appends
   NameToInfos   datas   fheaders   stringFileHeaders   structFileHeaders   fnames   RuntimeError(   s   selfs   fps   filesizes   endrecs   size_cds	   offset_cds   xs   concats   totals   centdirs   filenames   ts   ds   datas   fheaders   fnames$   /mit/python/lib/python2.0/zipfile.pys   _GetContents‚ sh   )	 !#L"F 	c    sI   ¿ À Á g  } Â x) |  i d Â r } Ã | i | i ƒ q WÄ | Sd S(   s+   Return a list of file names in the archive.i    N(   s   ls   selfs   filelists   datas   appends   filename(   s   selfs   ls   datas$   /mit/python/lib/python2.0/zipfile.pys   namelist¿ s   	 	c    s   Æ È É |  i Sd S(   sJ   Return a list of class ZipInfo instances for files in the
        archive.N(   s   selfs   filelist(   s   selfs$   /mit/python/lib/python2.0/zipfile.pys   infolistÆ s   c    sf   Ë Ì Í d d d d f GHÎ xA |  i d Î r1 } Ï d | i } Ð d | i | | i f GHq* Wd S(	   s+   Print a table of contents for the zip file.s   %-46s %19s %12ss	   File Names   Modified    s   Sizei    s   %d-%02d-%02d %02d:%02d:%02ds   %-46s %s %12dN(   s   selfs   filelists   zinfos	   date_times   dates   filenames	   file_size(   s   selfs   zinfos   dates$   /mit/python/lib/python2.0/zipfile.pys   printdirË s    	c    sW   Ò Ó Ô xG |  i d Ô r7 } Õ y Ö |  i | i ƒ Wn × Ø | i Sn Xq Wd S(   s%   Read all the files and check the CRC.i    N(   s   selfs   filelists   zinfos   reads   filename(   s   selfs   zinfos$   /mit/python/lib/python2.0/zipfile.pys   testzipÒ s    	c    s   Ú Û Ü |  i | Sd S(   s,   Return the instance of ZipInfo given 'name'.N(   s   selfs
   NameToInfos   name(   s   selfs   names$   /mit/python/lib/python2.0/zipfile.pys   getinfoÚ s   c    s½  Þ ß à |  i d d f j o á t d ‚ n â |  i o ã t d ‚ n å |  i | ƒ } æ |  i i ƒ  } ç |  i i	 | i
 d ƒ è |  i i | i ƒ } é |  i i	 | d ƒ ê | i t j o ë n¨ ì | i t j o{ í t o î t d ‚ n ñ t i d ƒ } ò | i | ƒ } ô | i d ƒ | i ƒ  } õ | o ö | | } n n ø t d	 | i | f ‚ û t i | ƒ } ü | | i j o ý t d
 | ‚ n þ | Sd S(   s)   Return file bytes (as a string) for name.s   rs   as   read() requires mode "r" or "a"s3   Attempt to read ZIP archive that was already closedi    s1   De-compression requires the (missing) zlib modulei   s   Zs-   Unsupported compression method %d for file %ss   Bad CRC-32 for file %sN(   s   selfs   modes   RuntimeErrors   fps   getinfos   names   zinfos   tells   fileposs   seeks   file_offsets   reads   compress_sizes   bytess   compress_types
   ZIP_STOREDs   ZIP_DEFLATEDs   zlibs   decompressobjs   dcs
   decompresss   flushs   exs
   BadZipfiles   binasciis   crc32s   crcs   CRC(   s   selfs   names   zinfos   fileposs   bytess   dcs   exs   crcs$   /mit/python/lib/python2.0/zipfile.pys   readÞ s2   
c    sâ    |  i i | i ƒ o$ |  i o d G| i GHn n |  i d d f j o t d ‚ n |  i o t d ‚ n 
| i	 t
 j o t o t d ‚ n | i	 t t
 f j o t d ‚ n d S(	   s6   Check for errors before writing a file to the archive.s   Duplicate name:s   ws   as    write() requires mode "w" or "a"s4   Attempt to write ZIP archive that was already closeds.   Compression requires the (missing) zlib modules(   That compression method is not supportedN(   s   selfs
   NameToInfos   has_keys   zinfos   filenames   debugs   modes   RuntimeErrors   fps   compress_types   ZIP_DEFLATEDs   zlibs
   ZIP_STORED(   s   selfs   zinfos$   /mit/python/lib/python2.0/zipfile.pys   _writecheck s   c    s  t  i | ƒ } t i | d ƒ } | d d !} | t	 j o t
 | | ƒ } n t
 | | ƒ } | d d >| _ | t	 j o |  i | _ n  | | _ !|  i | ƒ "t | d ƒ } #d | _ $|  i i ƒ  | _ %|  i i | i ƒ  ƒ &|  i i ƒ  | _ 'd }	 (d }
 )d } *| i t j o& +t i t i ,t i  d ƒ } n
 .t	 } /x¦ /d o› 0| i" d d ƒ } 1| o 2Pn 3| t$ | ƒ } 4t% i& | |	 ƒ }	 5| o) 6| i' | ƒ } 7|
 t$ | ƒ }
 n 8|  i i | ƒ qW9| i( ƒ  :| oE ;| i) ƒ  } <|
 t$ | ƒ }
 =|  i i | ƒ >|
 | _ n @| | _ A|	 | _ B| | _ D|  i i t* i+ d	 | i | i E| i ƒ ƒ F|  i, i- | ƒ G| |  i. | i <d
 S(   sL   Put the bytes from filename into the archive under the name
        arcname.i   i    i   i   s   rbi   i   i   s   <lllN(/   s   oss   stats   filenames   sts   times	   localtimes   mtimes	   date_times   arcnames   Nones   ZipInfos   zinfos   external_attrs   compress_types   selfs   compressions   _writechecks   opens   fps	   flag_bitss   tells   header_offsets   writes
   FileHeaders   file_offsets   CRCs   compress_sizes	   file_sizes   ZIP_DEFLATEDs   zlibs   compressobjs   Z_DEFAULT_COMPRESSIONs   DEFLATEDs   cmprs   reads   bufs   lens   binasciis   crc32s   compresss   closes   flushs   structs   packs   filelists   appends
   NameToInfo(   s   selfs   filenames   arcnames   compress_types   sts   mtimes	   date_times   zinfos   fps   CRCs   compress_sizes	   file_sizes   cmprs   bufs$   /mit/python/lib/python2.0/zipfile.pys   writes`   				 


!c    sy  IKL|  i | ƒ Mt | ƒ | _ Nt i | ƒ | _ O| i	 t
 j oT Pt i t i Qt i d ƒ } R| i | ƒ | i ƒ  } St | ƒ | _ n U| i | _ V|  i i ƒ  | _ W|  i i | i ƒ  ƒ X|  i i ƒ  | _ Y|  i i | ƒ Z| i d @o5 \|  i i t i d | i | i ]| i ƒ ƒ n ^|  i i | ƒ _| |  i | i <d S(   sK   Write a file into the archive.  The contents is the string
        'bytes'.i   i   s   <lllN(    s   selfs   _writechecks   zinfos   lens   bytess	   file_sizes   binasciis   crc32s   CRCs   compress_types   ZIP_DEFLATEDs   zlibs   compressobjs   Z_DEFAULT_COMPRESSIONs   DEFLATEDs   cos   compresss   flushs   compress_sizes   fps   tells   header_offsets   writes
   FileHeaders   file_offsets	   flag_bitss   structs   packs   filelists   appends
   NameToInfos   filename(   s   selfs   zinfos   bytess   cos$   /mit/python/lib/python2.0/zipfile.pys   writestrIs&   !c    s7   abc|  i o  d|  i i ƒ  et |  _ n d S(   s2   Call the "close()" method in case the user forgot.N(   s   selfs   fps   closes   None(   s   selfs$   /mit/python/lib/python2.0/zipfile.pys   __del__as   c 
   s/  gij|  i d d f j oðkd } l|  i i ƒ  } mxu|  i d mre} n| d } o| i } p| d d d >| d d >B| d B} q| d	 d
 >| d d >B| d d B} rt i t st | i t| i | i | i u| i | i | | v| i | i | i wt | i ƒ t | i ƒ t | i ƒ xd | i | i y| i ƒ } z|  i i! | ƒ {|  i i! | i ƒ ||  i i! | i ƒ }|  i i! | i ƒ qI W~|  i i ƒ  } €t i t# t$ d d | | | | | d ƒ	 }	 ‚|  i i! |	 ƒ n ƒ|  i i& ƒ  „t' |  _ d S(   sJ   Close the file, and for mode "w" and "a" write the ending
        records.s   ws   ai    i   i¼  i	   i   i   i   i   i   N((   s   selfs   modes   counts   fps   tells   pos1s   filelists   zinfos	   date_times   dts   dosdates   dostimes   structs   packs   structCentralDirs   stringCentralDirs   create_versions   create_systems   extract_versions   reserveds	   flag_bitss   compress_types   CRCs   compress_sizes	   file_sizes   lens   filenames   extras   comments   internal_attrs   external_attrs   header_offsets   centdirs   writes   pos2s   structEndArchives   stringEndArchives   endrecs   closes   None(
   s   selfs   counts   pos1s   zinfos   dts   dosdates   dostimes   centdirs   pos2s   endrecs$   /mit/python/lib/python2.0/zipfile.pys   closegs8   	 	))'"(   s   __doc__s
   ZIP_STOREDs   __init__s   _GetContentss   namelists   infolists   printdirs   testzips   getinfos   reads   _writechecks   Nones   writes   writestrs   __del__s   close(    s$   /mit/python/lib/python2.0/zipfile.pys   ZipFile\ s   	#="8s	   PyZipFilec      s)   ‡d  Z  ˆŠd d „ Z Ëd „  Z RS(   sD   Class to create ZIP archives with Python library files and packages.c    s•  Š•–t  i i | ƒ \ } } —t  i i | ƒ oâ˜t  i i | d ƒ } ™t  i i	 | ƒ oÔ›| o œd | | f } n
 ž| } Ÿ|  i o  d G| Gd G| GHn ¡|  i | d d !| ƒ \ } } ¢|  i o £d G| GHn ¤|  i | | ƒ ¥t  i | ƒ } ¦| i d ƒ ¨x| d ¨rù }	 ©t  i i | |	 ƒ }
 ªt  i i |	 ƒ \ } } «t  i i |
 ƒ o@ ¬t  i i	 t  i i |
 d ƒ ƒ o ®|  i |
 | ƒ n nk ¯| d j oZ °|  i |
 d d !±| ƒ \ } } ²|  i o ³d G| GHn ´|  i | | ƒ n q5WnÝ ·|  i o ¸d	 G| GHn ¹x¹ t  i | ƒ d ¹r£ }	 ºt  i i | |	 ƒ }
 »t  i i |	 ƒ \ } } ¼| d j oZ ½|  i |
 d d !¾| ƒ \ } } ¿|  i o Àd G| GHn Á|  i | | ƒ n qkWny Ã| d d j o Ät d
 ‚ n Æ|  i | d d !| ƒ \ } } Ç|  i o Èd G| GHn É|  i | | ƒ d S(   s,  Add all files from "pathname" to the ZIP archive.

        If pathname is a package directory, search the directory and
        all package subdirectories recursively for all *.py and enter
        the modules into the archive.  If pathname is a plain
        directory, listdir *.py and enter all modules.  Else, pathname
        must be a Python *.py file and the module will be put into the
        archive.  Added modules are always module.pyo or module.pyc.
        This method will compile the module.py into module.pyc if
        necessary.
        s   __init__.pys   %s/%ss   Adding package ins   asi    i   s   Addings   .pys   Adding files from directorys.   Files added with writepy() must end with ".py"s   Adding fileN(   s   oss   paths   splits   pathnames   dirs   names   isdirs   joins   initnames   isfiles   basenames   selfs   debugs   _get_codenames   fnames   arcnames   writes   listdirs   dirlists   removes   filenames   splitexts   roots   exts   writepys   RuntimeError(   s   selfs   pathnames   basenames   dirs   names   initnames   fnames   arcnames   dirlists   filenames   paths   roots   exts$   /mit/python/lib/python2.0/zipfile.pys   writepyŠs^   
	# 	% 	#s    c 	   sR  ËÑÒ| d } Ó| d } Ô| d } Õt i i | ƒ o$ t i | ƒ d t i | ƒ d j o ×| } n‘ Øt i i | ƒ p$ t i | ƒ d t i | ƒ d j  oI Úd k	 } Û|  i o Üd G| GHn Ý| i | | ƒ Þ| } n
 à| } át i i | ƒ d } â| o ãd | | f } n ä| | f Sd S(	   s   Return (filename, archivename) for the path.

        Given a module name path, return the correct file path and
        archive name, compiling if necessary.  For example, given
        /python/lib/string, return (/python/lib/string.pyc, string).
        s   .pys   .pycs   .pyoi   Ns	   Compilingi   s   %s/%s(   s   pathnames   file_pys   file_pycs   file_pyos   oss   paths   isfiles   stats   fnames
   py_compiles   selfs   debugs   compiles   splits   archivenames   basename(	   s   selfs   pathnames   basenames   file_pys   file_pycs   file_pyos   fnames
   py_compiles   archivenames$   /mit/python/lib/python2.0/zipfile.pys   _get_codenameËs"   =>	
(   s   __doc__s   writepys   _get_codename(    s$   /mit/python/lib/python2.0/zipfile.pys	   PyZipFile‡s   	A(   s   __doc__s   structs   oss   times   binasciis   zlibs   Nones	   Exceptions
   BadZipfiles   errors
   ZIP_STOREDs   ZIP_DEFLATEDs   structEndArchives   stringEndArchives   structCentralDirs   stringCentralDirs   structFileHeaders   stringFileHeaders
   is_zipfiles   ZipInfos   ZipFiles	   PyZipFile(    s$   /mit/python/lib/python2.0/zipfile.pys   ? s*   									-ÿ ,