; L+(;c@sdZdkZdkZdkZdkZdkZy:dkZy eiWnej oeie_nXWn e ZnXde fdYZ e Z dZ dZdZdZdZd Zd Zd Zd Zd fdYZdfdYZdefdYZdS(sRead and write ZIP filesNs _BadZipfilecBstZRS(N(s__name__s __module__(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys _BadZipfilesiis<4s4H2lHsPKs <4s4B4H3l5H2lsPKs <4s2B4H3l2HsPKcCstyft|d}|idd|i}|i|dd!djo|ddjod SnWnnXd S( svQuickly see if file is a ZIP file by checking the magic number. Will not accept a ZIP archive with an ending comment.srbiiiisPKisiN(sopensfilenamesfpinsseeksreadsendrecsclose(sfilenamesfpinsendrec((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys is_zipfile"s  % sZipInfocBs8tZdZdddddddfdZdZRS(s=Class with attributes describing each file in the ZIP archivesNoNameiiicCsy||_||_t|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_dS(Nsii(sfilenamesselfs date_times ZIP_STOREDs compress_typescommentsextras create_systemscreate_versionsextract_versionsreserveds flag_bitssvolumes internal_attrs external_attr(sselfsfilenames date_time((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys__init__2s            cCs|i}|ddd>|dd>B|dB}|dd>|d d>B|ddB}|id @od}}}n|i}|i}|i}t i t t |i |i|i|i|||||t|it|i }||i|iSd S( s&Return the per-file header as a stringiii iiiii iiN(sselfs date_timesdtsdosdatesdostimes flag_bitssCRCs compress_sizes file_sizesstructspacksstructFileHeadersstringFileHeadersextract_versionsreserveds compress_typeslensfilenamesextrasheader(sselfsheadersCRCs compress_sizes file_sizesdosdatesdtsdostime((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys FileHeaderHs &&    (s__name__s __module__s__doc__s__init__s FileHeader(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysZipInfo0s !sZipFilecBstZdZdedZdZdZdZdZdZ dZ d Z d Z e e d Zd Zd ZdZRS(s>Class with methods to open, read, write, close, list zip filessrcCst|tjon0|tjot o tdq@n tdd|_h|_g|_||_||_ |d|_ }|djo t |d|_ |in|djot |d|_ n|djot |d }|_ |id d |i}|dd !tjo|d djo!|i|i|idqp|idd n tddS(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 supportedisrsrbswswbsasr+biiiissMode must be "r", "w" or "a"N(s compressions ZIP_STOREDs ZIP_DEFLATEDszlibs RuntimeErrorsselfsdebugs NameToInfosfilelistsfilenamesmodeskeysopensfps _GetContentssseeksreadsendrecsstringEndArchives start_dir(sselfsfilenamesmodes compressionsfpskeysendrec((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys__init__^s6            % c Cs|i} | idd| id}| id}|dd!tjp|ddjo tdnt i t |}|i d jo |GHn|d }|d } |d|}|| }|i djod G| G|G|GHn| ||_| i|idd}x||jo| id }|d }|dd!tjo tdnt i t|}|i djo |GHn| i|d}t|}| i|d|_| i|d|_||d|d|d}|d||_|id|d|d|_|d d!\ |_|_|_|_|_ |_!}} |_$|_%|_&|dd!\|_'|_(|_)| d?d| d ?d@| d@|d?|d ?d@|d@df|_*|i+i,|||i-|i<|i djo dG|GHqqWx|i+D]} | i| id| id} | dd!t0jo tdnt i t1| } | i| d}|| ijot3d| i|fqqWdS(s.Read in the table of contents for the zip fileiiiiiiss.File is not a zip file, or ends with a commentiiisgiven, inferred, offseti.s&Bad magic number for central directoryi i iiiii iii i?stotals Bad magic number for file headeri s@File name in Central Directory "%s" and File Header "%s" differ.N(4sselfsfpsseekstellsfilesizesreadsendrecsstringEndArchiveserrorsstructsunpacksstructEndArchivesdebugssize_cds offset_cdsxsconcats start_dirstotalscentdirsstringCentralDirsstructCentralDirsfilenamesZipInfosextrascomments header_offsets file_offsetscreate_versions create_systemsextract_versionsreserveds flag_bitss compress_typestsdsCRCs compress_sizes file_sizesvolumes internal_attrs external_attrs date_timesfilelistsappends NameToInfosdatasfheadersstringFileHeadersstructFileHeadersfnames RuntimeError(sselfscentdirsconcatstotalsfilenamesfilesizesfnamessize_cdsendrecsfpsfheaders offset_cdsdatasdstsx((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys _GetContentssh %            IC  cCs2g}x!|iD]}|i|iqW|SdS(s*Return a list of file names in the archiveN(slsselfsfilelistsdatasappendsfilename(sselfsdatasl((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysnamelists  cCs |iSdS(sAReturn a list of class ZipInfo instances for files in the archiveN(sselfsfilelist(sself((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysinfolistscCsOddddfGHx6|iD]+}d|i}d|i||ifGHqWdS(s*Print a table of contents for the zip files%-46s %19s %12ss File Names Modified sSizes%d-%02d-%02d %02d:%02d:%02ds %-46s %s %12dN(sselfsfilelistszinfos date_timesdatesfilenames file_size(sselfsdateszinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysprintdirs   cCs=x6|iD]+}y|i|iWq |iSq Xq WdS(s$Read all the files and check the CRCN(sselfsfilelistszinfosreadsfilename(sselfszinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pystestzips cCs|i|SdS(s+Return the instance of ZipInfo given "name"N(sselfs NameToInfosname(sselfsname((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysgetinfoscCsn|iddfjo tdn|i o tdn|i|}|ii}|ii |i d|ii |i }|ii |d|itjon|itjoet o tdntid}|i|}|id|i}|o||}q6ntd |i|fti|}||ijotd |n|Sd S( s(Return file bytes (as a string) for namesrsasread() requires mode "r" or "a"s3Attempt to read ZIP archive that was already closedis1De-compression requires the (missing) zlib moduleisZs-Unsupported compression method %d for file %ssBad CRC-32 for file %sN(sselfsmodes RuntimeErrorsfpsgetinfosnameszinfostellsfilepossseeks file_offsetsreads compress_sizesbytess compress_types ZIP_STOREDs ZIP_DEFLATEDszlibs decompressobjsdcs decompresssflushsexserrorsbinasciiscrc32scrcsCRC(sselfsnamesfilepossbytessdcszinfoscrcsex((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysreads2    cCs|ii|io|iodG|iGHq4n|iddfjo tdn|i o tdn|i t jot o tdn|i t t fjo tdndS( s5Check for errors before writing a file to the archivesDuplicate name:swsas write() requires mode "w" or "a"s4Attempt to write ZIP archive that was already closeds.Compression requires the (missing) zlib modules(That compression method is not supportedN( sselfs NameToInfoshas_keyszinfosfilenamesdebugsmodes RuntimeErrorsfps compress_types ZIP_DEFLATEDszlibs ZIP_STORED(sselfszinfo((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys _writechecks     cCszti|} ti| d}|dd!} |t jot || }nt || }| dd>|_ |t jo|i|_ n ||_ |i|t|d} d|_|ii|_|ii|i|ii|_d}d} d}|i tjotititi d}nt }xno| i"dd} | oPn|t$| }t%i&| |}|o#|i'| } | t$| } n|ii| qEW| i(|o9|i)} | t$| } |ii| | |_n ||_||_||_|iit*i+d |i|i|i|i,i-|||i.|i|dd>B|dB}|d d >|d d>B|ddB}t i tt|i|i|i|i|i|i|||i|i|it|it|it|id|i|i|i}|ii!||ii!|i|ii!|i|ii!|iq5W|ii}t i t#t$dd|||| | d }|ii!|n|ii&t'|_d S( sAClose the file, and for mode "w" and "a" write the ending recordsswsaiiii iiii iN((sselfsmodescountsfpstellspos1sfilelistszinfos date_timesdtsdosdatesdostimesstructspacksstructCentralDirsstringCentralDirscreate_versions create_systemsextract_versionsreserveds flag_bitss compress_typesCRCs compress_sizes file_sizeslensfilenamesextrascomments internal_attrs external_attrs header_offsetscentdirswritespos2sstructEndArchivesstringEndArchivesendrecsclosesNone( sselfscountscentdirszinfosendrecsdosdatesdtspos2sdostimespos1((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysclosecs8   &&  $   (s__name__s __module__s__doc__s ZIP_STOREDs__init__s _GetContentssnamelistsinfolistsprintdirstestzipsgetinfosreads _writechecksNoneswriteswritestrs__del__sclose(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pysZipFile\s # =      " 7  s PyZipFilecBs#tZdZddZdZRS(sCClass to create ZIP archives with Python library files and packagessc Cstii|\} }tii|oitii|d}tii |o|od||f}n|}|i odG|GdG|GHn|i |dd!|\} } |i o dG| GHn|i| | ti|}|idx|D]}tii||} tii|\}}tii| o:tii tii| do|i| |qq|djoJ|i | dd!|\} } |i o dG| GHn|i| | qqWq|i o d G|GHnxti|D]}tii||} tii|\}}|djoJ|i | dd!|\} } |i o dG| GHn|i| | qqWne|ddjo td n|i |dd!|\} } |i o d G| GHn|i| | d S( sAdd 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/%ssAdding package insasiisAddings.pysAdding files from directorys.Files added with writepy() must end with ".py"s Adding fileN(sosspathssplitspathnamesdirsnamesisdirsjoinsinitnamesisfilesbasenamesselfsdebugs _get_codenamesfnamesarcnameswriteslistdirsdirlistsremovesfilenamessplitextsrootsextswritepys RuntimeError( sselfspathnamesbasenamesdirlistsnamesrootsinitnamesfilenamesextsarcnamesfnamespathsdir((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pyswritepys^    "           cCs|d}|d}|d}tii|o$ti|dti|djo |}nstii| p$ti|dti|djo1|i o dG|GHnt i |||}n|}tii |d}|od||f}n||fSdS( sReturn (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.pyois Compilingis%s/%sN(spathnamesfile_pysfile_pycsfile_pyososspathsisfilesstatsfnamesselfsdebugs py_compilescompilessplits archivenamesbasename(sselfspathnamesbasenamesfile_pycs archivenamesfile_pyosfnamesfile_py((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys _get_codenames    : ;   (s__name__s __module__s__doc__swritepys _get_codename(((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys PyZipFiles  >(s__doc__sstructsosstimesbinasciis py_compileszlibscrc32sAttributeErrorsNones Exceptions _BadZipfileserrors ZIP_STOREDs ZIP_DEFLATEDsstructEndArchivesstringEndArchivesstructCentralDirsstringCentralDirsstructFileHeadersstringFileHeaders is_zipfilesZipInfosZipFiles PyZipFile(sstructFileHeadersZipFiles is_zipfilesstringFileHeaders ZIP_DEFLATEDsstructs py_compilesbinasciis PyZipFilesstructEndArchivestimesstructCentralDirs _BadZipfilesstringEndArchives ZIP_STOREDsZipInfososszlibsstringCentralDirserror((sY/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/ExternalLib/zipfile.pys?s2    ,'