3 öLÖjã¡ãA@sÀddlZddlZddlZddlZddlZddlZyddlZ[dZWnek rZdZYnXyddl Z [ dZ Wnek r†dZ YnXyddl Z [ dZ Wnek r²dZ YnXyddl mZWnek rÜdZYnXyddlmZWnek �rdZYnXdddd d d d d dddddddddddddddddgZGdd„deƒZGd d„deƒZGd!d„deƒZGd"d„deƒZGd#d$„d$eƒZGd%d&„d&eƒZd†d)d„Zd*d+„Zdd,œd-d„Zdd,œd.d„Zeed/ƒ�rêdd,œd0d1„Znd2d1„Zdd,œd3d „Z dd,œd4d „Z!dd,œd5d „Z"d6d„Z#dde"dfd7d „Z$d8d9„Z%d:d;„Z&ej'ejej(ej)hej*k�ozej+ej,k�ozejej-kZ.d‡ddd<œd=d„Z/e.e/_0d>d?„Z1e"fd@d „Z2dAdB„Z3dCdD„Z4dEdF„Z5dˆdHdI„Z6d‰dJdK„Z7dLe6dŠgdNfiZ8e�re6d‹gdOfe8dP<e7gdQfe8dR<e �re6dŒgdTfe8dU<e �r4e6d�gdWfe8dX<dYd„Z9dŽd[d„Z:d\d„Z;d�d]d„Zd�dad„Z?dbd„Z@dcdd„ZAdedf„ZBddgœdhdi„ZCdjgeCgdNfdkgeBgdQfdlœZDe�rÐdmdngeCgdOfeDdP<e �rêdodpgeCgdTfeDdU<e �rdqdrgeCgdWfeDdX<dsdt„ZEd‘ddgœdud„ZFeedvƒ�r`ejGdwƒejHdxdyƒZIdzeIjJ_Kd{eIjL_Kd|eIjM_Kd}dw„ZNn2ejOd~k�r’ddlPZPejGdwƒejHdxdyƒZIddw„ZNd’d€d„ZQd”dƒd„ZRejSejTBdfd„d„ZUdS)•éNTF)Úgetpwnam)ÚgetgrnamÚ copyfileobjÚcopyfileÚcopymodeÚcopystatÚcopyÚcopy2ÚcopytreeÚmoveÚrmtreeÚErrorÚSpecialFileErrorÚ ExecErrorÚ make_archiveÚget_archive_formatsÚregister_archive_formatÚunregister_archive_formatÚget_unpack_formatsÚregister_unpack_formatÚunregister_unpack_formatÚunpack_archiveÚignore_patternsÚchownÚwhichÚget_terminal_sizeÚ SameFileErrorc@s eZdZdS)r N)Ú__name__Ú __module__Ú __qualname__©r r ú/usr/lib64/python3.6/shutil.pyr 7sc@s eZdZdS)rN)rrrr r r r!r:sc@s eZdZdS)rN)rrrr r r r!r=sc@s eZdZdS)rN)rrrr r r r!rAsc@s eZdZdS)Ú ReadErrorN)rrrr r r r!r"Dsr"c@s eZdZdS)Ú RegistryErrorN)rrrr r r r!r#Gsr#éicCs$x|j|ƒ}|sP|j|ƒqWdS)N)ÚreadÚwrite)ÚfsrcÚfdstZlengthZbufr r r!rLs  c CsXttjdƒr0ytjj||ƒStk r.dSXtjjtjj|ƒƒtjjtjj|ƒƒkS)NÚsamefileF)ÚhasattrÚosÚpathr)ÚOSErrorÚnormcaseÚabspath)ÚsrcÚdstr r r!Ú _samefileTs r2)Úfollow_symlinkscCsÈt||ƒrtdj||ƒƒ‚xL||gD]@}ytj|ƒ}Wntk rJYq$Xtj|jƒr$td|ƒ‚q$W| rŽtj j |ƒrŽtj tj |ƒ|ƒn6t |dƒ�&}t |dƒ�}t||ƒWdQRXWdQRX|S)Nz{!r} and {!r} are the same filez`%s` is a named pipeÚrbÚwb)r2rÚformatr+Ústatr-ÚS_ISFIFOÚst_moderr,ÚislinkÚsymlinkÚreadlinkÚopenr)r0r1r3ÚfnÚstr'r(r r r!r`s    cCsz| r>tjj|ƒr>tjj|ƒr>ttdƒr8tjtj}}q\dSnttdƒrXtjtj}}ndS||ƒ}||tj|j ƒƒdS)NÚlchmodÚchmod) r+r,r:r*Úlstatr@r7rAÚS_IMODEr9)r0r1r3Z stat_funcZ chmod_funcr?r r r!r}s  Ú listxattrcCs¼ytj||d�}Wn4tk rF}z|jtjtjfkr8‚dSd}~XnXxn|D]f}y&tj|||d�}tj||||d�WqNtk r²}z|jtjtjtjfkr¢‚WYdd}~XqNXqNWdS)N)r3) r+rDr-ÚerrnoÚENOTSUPZENODATAÚgetxattrÚsetxattrZEPERM)r0r1r3ÚnamesÚeÚnameÚvaluer r r!Ú _copyxattr“s  rMcOsdS)Nr )ÚargsÚkwargsr r r!rMªsc s6dddœdd„‰|p,tjj|ƒo*tjj|ƒ }|r@‡fdd„}n ‡fdd„}|dƒ||d�}tj|jƒ}|d ƒ||j|jf|d�y|d ƒ|||d�Wntk r¬YnXt |d ƒ�r$y|d ƒ||j |d�WnPt k �r"}z2x*dD] }t t |ƒrì|j t t |ƒkrìPqìW‚WYdd}~XnXt|||d�dS)N)Únsr3cWsdS)Nr )rPr3rNr r r!Ú_nop¸szcopystat.._nopcs tt|ˆƒS)N)Úgetattrr+)rK)rQr r!Úlookup¿szcopystat..lookupcstt|ˆƒ}|tjkr|SˆS)N)rRr+Úsupports_follow_symlinks)rKr>)rQr r!rSÄs  r7)r3ÚutimerAÚst_flagsZchflagsÚ EOPNOTSUPPrF)rWrF)r+r,r:r7rCr9Ú st_atime_nsÚ st_mtime_nsÚNotImplementedErrorr*rVr-rErRrM) r0r1r3ZfollowrSr?ÚmodeÚwhyÚerrr )rQr!r­s,      cCsBtjj|ƒr"tjj|tjj|ƒƒ}t|||d�t|||d�|S)N)r3)r+r,ÚisdirÚjoinÚbasenamerr)r0r1r3r r r!rçs cCsBtjj|ƒr"tjj|tjj|ƒƒ}t|||d�t|||d�|S)N)r3)r+r,r^r_r`rr)r0r1r3r r r!r ùs cs‡fdd„}|S)Ncs,g}xˆD]}|jtj||ƒƒq Wt|ƒS)N)ÚextendÚfnmatchÚfilterÚset)r,rIÚ ignored_namesÚpattern)Úpatternsr r!Ú_ignore_patternss z)ignore_patterns.._ignore_patternsr )rgrhr )rgr!r s cCsätj|ƒ}|dk r|||ƒ}ntƒ}tj|ƒg}�xB|D�]8} | |krJq:tjj|| ƒ} tjj|| ƒ} y¢tjj| ƒrÞtj| ƒ} |r tj| | ƒt | | | d�ny tdƒ‚Wn0tk �r’|tjj|tjƒ||d�YnXWdtj| ƒXqVytj||d�WqVtk �ræ|tj|tjƒ||d�YqVXqVWdS)NF)Údir_fdr3r)r{)Z entry_namer{z%Cannot call rmtree on a symbolic link)r+rir-Úfilenamersrtr,r_r7r9rur=ÚO_RDONLYÚsamestatÚfstatÚ_rmtree_safe_fdrxr:Úcloserw) Útopfdr,ryrIr]rKrzÚorig_str[Údirfdr r r!r€’sL$     r€)r{Ú _onexc_kwargsc!s‚|rdd„}n&|dkr dd„}n|s4|‰‡fdd„}t�rtt|tƒrNtj|ƒ}ytj||dd�}Wn&tk rˆ|tj|tj ƒƒdSXytj |tj |d�}Wn&tk rÆ|tj|tj ƒƒdSXzœtj j |tj|ƒƒ�r*t|||ƒytj||d�Wn(tk �r&|tj|tj ƒƒYnXn8y tdƒ‚Wn*tk �r`|tj j|tj ƒƒYnXWdtj|ƒXn t||ƒSdS) Nc_sdS)Nr )rNrOr r r!ryÔszrmtree..onerrorc_s‚dS)Nr )rNrOr r r!ry×scs ˆ|||ƒS)Nr )Úfuncr,rtrO)Ú_onerrorr r!ryÜsF)r{r3)r{z%Cannot call rmtree on a symbolic link)Ú_use_fd_functionsÚ isinstanceÚbytesr+Úfsdecoder7Ú ExceptionrBrsrtr=r}r,r~rr€rxr-r:r�rv)r,Ú ignore_errorsryr{r…rƒÚfdr )r‡r!r ÇsB        cCs&tjjtjjpd}tjj|j|ƒƒS)NÚ)r+r,ÚsepÚaltsepr`Úrstrip)r,r�r r r!Ú _basenamesr“c Cs|}tjj|ƒrTt||ƒr*tj||ƒdStjj|t|ƒƒ}tjj|ƒrTtd|ƒ‚ytj||ƒWn–t k rútjj |ƒr¢tj |ƒ}tj ||ƒtj |ƒnTtjj|ƒrât||ƒrÈtd||fƒ‚t|||dd�t|ƒn|||ƒtj |ƒYnX|S)Nz$Destination path '%s' already existsz.Cannot move a directory '%s' into itself '%s'.T)rprn)r+r,r^r2Úrenamer_r“rkr r-r:r<r;rwÚ _destinsrcr r )r0r1rpZreal_dstrrr r r!r s2              cCsVtjj|ƒ}tjj|ƒ}|jtjjƒs2|tjj7}|jtjjƒsL|tjj7}|j|ƒS)N)r+r,r/Úendswithr�Ú startswith)r0r1r r r!r•Bs    r•c CsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Né)rÚKeyError)rKÚresultr r r!Ú_get_gidKs  r›c CsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Nr˜)rr™)rKršr r r!Ú_get_uidWs  rœÚgzipc s"|dkrd}nDtr |dkr d}n2tr2|dkr2d}n trD|dkrDd}ntdj|ƒƒ‚ddl} |rfd |nd} |d | } tjj| ƒ} | r¶tjj | ƒ r¶|dk r¨|j d | ƒ|s¶tj | ƒ|dk rÈ|j d ƒt ˆƒ‰t ˆƒ‰‡‡‡‡fd d„} |�s| j| d|ƒ}z|j|| d�Wd|jƒX| S)Nr�r�ZgzÚbzip2Úbz2ÚxzzCbad value for 'compress', or compression format not supported : {0}rÚ.z.tarz creating %szCreating tar archivecs,ˆdk rˆ|_ˆ|_ˆdk r(ˆ|_ˆ|_|S)N)ÚgidZgnameÚuidÚuname)Ztarinfo)r¢ÚgroupÚownerr£r r!Ú _set_uid_gid’sz#_make_tarball.._set_uid_gidzw|%s)rc)Ú_ZLIB_SUPPORTEDÚ_BZ2_SUPPORTEDÚ_LZMA_SUPPORTEDÚ ValueErrorr6Útarfiler+r,ÚdirnamerkÚinforjrœr›r=Úaddr�)Ú base_nameÚbase_dirÚcompressÚverboseÚdry_runr¦r¥ÚloggerZtar_compressionr¬Z compress_extZ archive_nameÚ archive_dirr§Útarr )r¢r¥r¦r£r!Ú _make_tarballcs<          r¸c Cs|ddl}|d}tjj|ƒ}|rPtjj|ƒ rP|dk rB|jd|ƒ|sPtj|ƒ|dk rf|jd||ƒ|�sx|j|d|jd��ô}tjj |ƒ} | tj kr¶|j | | ƒ|dk r¶|jd| ƒx¶tj |ƒD]¨\} } } xFt | ƒD]:} tjj tjj| | ƒƒ} |j | | ƒ|dk rÖ|jd| ƒqÖWxT| D]L} tjj tjj| | ƒƒ} tjj| ƒ�r|j | | ƒ|dk �r|jd| ƒ�qWqÂWWdQRX|S)Nrz.zipz creating %sz#creating '%s' and adding '%s' to itÚw)Z compressionz adding '%s')Úzipfiler+r,r­rkr®rjÚZipFileZ ZIP_DEFLATEDÚnormpathÚcurdirr&ÚwalkÚsortedr_Úisfile)r°r±r³r´rµrºZ zip_filenamer¶Zzfr,ÚdirpathZdirnamesÚ filenamesrKr r r!Ú _make_zipfile¤s@             rÃr·r²zuncompressed tar filezgzip'ed tar-fileZgztarzZIP fileÚzipržzbzip2'ed tar-fileZbztarr zxz'ed tar-fileZxztarcCsdd„tjƒDƒ}|jƒ|S)NcSsg|]\}}||df‘qS)r˜r )Ú.0rKÚregistryr r r!ú æsz'get_archive_formats..)Ú_ARCHIVE_FORMATSÚitemsÚsort)Úformatsr r r!rás r�cCsz|dkr g}t|ƒs td|ƒ‚t|ttfƒs6tdƒ‚x0|D](}t|ttfƒ s\t|ƒdkr|dk r$|jd|ƒtjj|ƒ}|s>tj|ƒ|dkrLtj}||dœ} y t|} Wn tk r‚t d|ƒ‚YnX| d} x| dD]\} }|| | <q–W|dkrÂ|| d<|| d<z| ||f| Ž}Wd|dk rü|dk rò|jd | ƒtj| ƒX|S) Nzchanging into '%s')r´rµzunknown archive format '%s'rérÄr¦r¥zchanging back to '%s') r+ÚgetcwdÚdebugr,r/Úchdirr½rÈr™r«)r°r6Zroot_dirr±r³r´r¦r¥rµZsave_cwdrOÚ format_infor†ÚargÚvalr|r r r!rs6        cCsdd„tjƒDƒ}|jƒ|S)NcSs"g|]\}}||d|df‘qS)rér )rÅrKr®r r r!rÇ@sz&get_unpack_formats..)Ú_UNPACK_FORMATSrÉrÊ)rËr r r!r:s c Csvi}x.tjƒD]"\}}x|dD] }|||<q WqWx,|D]$}||kr:d}t||||fƒ‚q:Wt|ƒsrtdƒ‚dS)Nrz!%s is already registered for "%s"z*The registered function must be a callable)rÝrÉr#rÌrÍ) Ú extensionsrÑrÒZexisting_extensionsrKr®ÚextÚ extensionÚmsgr r r!Ú_check_unpack_optionsEs râcCs,|dkr g}t|||ƒ||||ft|<dS)N)rârÝ)rKrÞrÑrÒrÓr r r!rWs cCs t|=dS)N)rÝ)rKr r r!rmscCs&tjj|ƒ}tjj|ƒs"tj|ƒdS)N)r+r,r­r^rj)r,r­r r r!Ú_ensure_directoryqs  rãc CsÊddl}|j|ƒstd|ƒ‚|j|ƒ}z’xŒ|jƒD]€}|j}|jdƒs4d|krRq4tjj |f|j dƒžŽ}|spq4t |ƒ|j dƒs4|j |jƒ}t|dƒ}z|j|ƒWd|jƒ~Xq4WWd|jƒXdS)Nrz%s is not a zip fileú/z..r5)rºZ is_zipfiler"r»Zinfolistr|r—r+r,r_Úsplitrãr–r%r=r&r�) r|Ú extract_dirrºrÄr®rKÚtargetÚdataÚfr r r!Ú_unpack_zipfilews*       rê)rccCs\ddl}y|j|ƒ}Wn"|jk r8td|ƒ‚YnXz|j||d�Wd|jƒXdS)Nrz/%s is not a compressed or uncompressed tar file)rc)r¬r=ZTarErrorr"Z extractallr�)r|rærcr¬Ztarobjr r r!Ú_unpack_tarfile™srëz.tarz.zip)r·rÄz.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzcCs:x4tjƒD](\}}x|dD]}|j|ƒr|SqWq WdS)Nr)rÝrÉr–)r|rKr®ràr r r!Ú_find_unpack_format¸s   rìc CsØ|dkrtjƒ}|dkri}nd|i}|dk r‚y t|}Wn"tk r\tdj|ƒƒ‚YnX|d}|||ft|dƒ|—ŽnRt|ƒ}|dkr tdj|ƒƒ‚t|d}tt|dƒ}|j |ƒ|||f|ŽdS)NrczUnknown unpack format '{0}'rÕr˜zUnknown archive format '{0}') r+rÖrÝr™r«r6Údictrìr"Úupdate)r|rær6rcZ filter_kwargsrÙr†rOr r r!r¿s&   ÚstatvfsÚ disk_usageZusageztotal used freezTotal space in byteszUsed space in byteszFree space in bytescCs@tj|ƒ}|j|j}|j|j}|j|j|j}t|||ƒS)N)r+rïÚf_bavailÚf_frsizeÚf_blocksÚf_bfreeÚ_ntuple_diskusage)r,r?ÚfreeÚtotalÚusedr r r!rðös    ÚntcCs"tj|ƒ\}}||}t|||ƒS)N)rùZ _getdiskusagerõ)r,r÷rörør r r!rðscCsž|dkr|dkrtdƒ‚|}|}|dkr.d}n(t|tƒrVt|ƒ}|dkrVtdj|ƒƒ‚|dkrdd}n(t|tƒsŒt|ƒ}|dkrŒtdj|ƒƒ‚tj |||ƒdS)Nzuser and/or group must be setrÕzno such user: {!r}zno such group: {!r}éÿÿÿÿrú) r«r‰rmrœÚ LookupErrorr6Úintr›r+r)r,Úuserr¥Z_userZ_groupr r r!rs"  éPécCsÔyttjdƒ}Wnttfk r.d}YnXyttjdƒ}Wnttfk r^d}YnX|dksp|dkrÆytjtjjƒƒ}Wn$t tt fk r¨tj |ƒ}YnX|dkr¸|j }|dkrÆ|j }tj ||fƒS)NZCOLUMNSrZLINES)rür+Úenvironr™r«rrsÚ __stdout__ÚfilenoÚAttributeErrorr-Ú terminal_sizeÚcolumnsÚlines)ZfallbackrrÚsizer r r!r2s$  c s"dd„}tjjˆƒr&|ˆ|ƒr"ˆSdS|dkr>tjjdtjƒ}|sFdS|jtjƒ}tj dkr¼tj |krt|j dtj ƒtjjddƒjtjƒ}t ‡fdd „|Dƒƒr¨ˆg}q‡fd d „|Dƒ}nˆg}t ƒ}xT|D]L}tjj|ƒ}||krÎ|j|ƒx(|D] } tjj|| ƒ} || |ƒrö| SqöWqÎWdS) NcSs&tjj|ƒo$tj||ƒo$tjj|ƒ S)N)r+r,rkÚaccessr^)r>r[r r r!Ú _access_checklszwhich.._access_checkÚPATHZwin32rZPATHEXTr�c3s |]}ˆjƒj|jƒƒVqdS)N)Úlowerr–)rÅrß)Úcmdr r!ú ‰szwhich..csg|] }ˆ|‘qSr r )rÅrß)r r r!rÇŒszwhich..)r+r,r­rÚgetÚdefpathråÚpathseprsÚplatformr½ÚinsertÚanyrdr.r¯r_) r r[r,r ZpathextÚfilesÚseenÚdirZnormdirZthefilerKr )r r!r_s8            é@)r)FN)r�rrNNN)rrN)r²N)r²r�)r²rž)r²r )Nr�)NNrrNNN)Nr�)NN)NN©rþrÿ)r)Vr+rsr7rbÚ collectionsrEÚzlibr¨Ú ImportErrorrŸr©ZlzmarªÚpwdrZgrprÚ__all__r-r rrrr"rŒr#rr2rrr*rMrrr rr rvr€r=rwrxÚsupports_dir_fdriÚ supports_fdrTrˆr Zavoids_symlink_attacksr“r r•r›rœr¸rÃrÈrrrrrrârrrãrêrërÝrìrrlÚ namedtuplerõr÷Ú__doc__rørörðrKrùrrÚF_OKÚX_OKrr r r r!Úsþ          :  Y!0  : 8    @ -     6  "       /        -