B ÷m°Ês¢ÂÐã@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+œd/d0„Znd1d0„Zdd+œd2d „Z dd+œd3d „Z!dd+œd4d „Z"d5d„Z#dde"dfd6d „Z$d7d8„Z%d9d:„Z&ej'ejej(ej)hej*kozej+ej,kozejej-kZ.dƒd;d„Z/e.e/_0dd „Z2d?d@„Z3dAdB„Z4dCdD„Z5d„dFdG„Z6d…dHdI„Z7dJe6dKgdLfiZ8ere6dMgdNfe8dO<e7gdPfe8dQ<e re6dRgdSfe8dT<e r,e6dUgdVfe8dW<dXd„Z9d†dZd„Z:d[d„Z;d‡d\d„Zdˆd`d„Z?dad„Z@dbdc„ZAddde„ZBdfdg„ZCdhgeCgdLfdigeBgdPfdjœZDerÂdkdlgeCgdNfeDdO<e rÜdmdngeCgdSfeDdT<e rödodpgeCgdVfeDdW<dqdr„ZEd‰dsd„ZFeedtƒrLe Gdu¡e Hdvdw¡ZIdxeIjJ_KdyeIjL_KdzeIjM_Kd{du„ZNn2ejOd|kr~ddlPZPe Gdu¡e Hdvdw¡ZId}du„ZNdŠd~d„ZQd‹d€d„ZRejSejTBdfdd„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 ú)/opt/alt/python37/lib/python3.7/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#é@cCs$x| |¡}|sP| |¡qWdS)N)ÚreadÚwrite)ÚfsrcÚfdstÚlengthÚbufr r r!rLs  cCsXttjdƒr0ytj ||¡Stk r.dSXtj tj |¡¡tj tj |¡¡kS)NÚsamefileF)ÚhasattrÚosÚpathr+ÚOSErrorÚnormcaseÚabspath)ÚsrcÚdstr r r!Ú _samefileTs r4)Úfollow_symlinksc CsÆt||ƒrtd ||¡ƒ‚xL||gD]@}yt |¡}Wntk rJYq$Xt |j¡r$td|ƒ‚q$W|sŒtj   |¡rŒt  t  |¡|¡n6t |dƒ&}t |dƒ}t||ƒWdQRXWdQRX|S)Nz{!r} and {!r} are the same filez`%s` is a named pipeÚrbÚwb)r4rÚformatr-Ústatr/ÚS_ISFIFOÚst_moderr.ÚislinkÚsymlinkÚreadlinkÚopenr)r2r3r5ÚfnÚstr'r(r r r!r`s    cCsx|s._nopcs tt|ˆƒS)N)Úgetattrr-)rM)rSr r!ÚlookupÀszcopystat..lookupcstt|ˆƒ}|tjkr|SˆS)N)rTr-Úsupports_follow_symlinks)rMr@)rSr r!rUÅs  r9)r5ÚutimerCÚst_flagsZchflags)Z EOPNOTSUPPrH)r-r.r<r9rEr;Ú st_atime_nsÚ st_mtime_nsrOÚNotImplementedErrorr,rXr/rGrT) r2r3r5ZfollowrUrAÚmodeÚwhyÚerrr )rSr!r®s,      cCsBtj |¡r"tj |tj |¡¡}t|||dt|||d|S)N)r5)r-r.ÚisdirÚjoinÚbasenamerr)r2r3r5r r r!rês cCsBtj |¡r"tj |tj |¡¡}t|||dt|||d|S)N)r5)r-r.r_r`rarr)r2r3r5r r r!r üs cs‡fdd„}|S)Ncs,g}xˆD]}| t ||¡¡q Wt|ƒS)N)ÚextendÚfnmatchÚfilterÚset)r.rKÚ ignored_namesÚpattern)Úpatternsr r!Ú_ignore_patternss z)ignore_patterns.._ignore_patternsr )rhrir )rhr!rs c Csât |¡}|dk r|||ƒ}ntƒ}t |¡g}x@|D]6} | |krJq:tj || ¡} tj || ¡} y tj | ¡rÜt | ¡} |r t | | ¡t | | | dn:tj  | ¡s²|r²w:tj  | ¡rÐt | | |||ƒn || | ƒn(tj  | ¡rút | | |||ƒn || | ƒWq:t k r:} z| | jd¡Wdd} ~ XYq:tk rp}z| | | t|ƒf¡Wdd}~XYq:Xq:Wyt ||ƒWnJtk rÎ}z*t|ddƒdkr¾| ||t|ƒf¡Wdd}~XYnX|rÞt |ƒ‚|S)N)r5rZwinerror)r-ÚlistdirreÚmakedirsr.r`r<r>r=rÚexistsr_r r rbrPr/ÚappendÚstrrT)r2r3ÚsymlinksÚignoreÚ copy_functionZignore_dangling_symlinksrKrfÚerrorsrMZsrcnameZdstnameÚlinktor^r]r r r!r sL$           *&c CsPy"t |¡}t|ƒ}WdQRXWn*tk rL|tj|t ¡ƒg}YnXxÄ|D]¼}|j}y|jdd}Wntk r†d}YnX|rØy| ¡ržtdƒ‚Wn*tk rÊ|tjj |t ¡ƒwTYnXt ||ƒqTyt  |¡WqTtk r|tj |t ¡ƒYqTXqTWyt  |¡Wn(tk rJ|tj |t ¡ƒYnXdS)NF)r5z%Cannot call rmtree on a symbolic link) r-ÚscandirÚlistr/ÚsysÚexc_infor.Úis_dirÚ is_symlinkr<Ú_rmtree_unsafeÚunlinkÚrmdir)r.ÚonerrorÚ scandir_itÚentriesÚentryÚfullnamerxr r r!rzts8      rzc Csþy"t |¡}t|ƒ}WdQRXWn:tk r\}z||_|tj|t ¡ƒdSd}~XYnXx˜|D]Ž}tj ||j ¡}y,|j dd}|r¦|j dd} t   | j ¡}Wntk rÀd}YnX|r¸ytj|j tj|d} Wn(tk r|tj|t ¡ƒYn®Xzžtj | t | ¡¡rnt| ||ƒytj|j |dWn(tk rj|tj|t ¡ƒYnXn8y tdƒ‚Wn*tk r¤|tjj|t ¡ƒYnXWdt | ¡Xqfytj|j |dWqftk rô|tj|t ¡ƒYqfXqfWdS)NF)r5)Údir_fdz%Cannot call rmtree on a symbolic link)r-rtrur/Úfilenamervrwr.r`rMrxr9ÚS_ISDIRr;r?ÚO_RDONLYÚsamestatÚfstatÚ_rmtree_safe_fdr|r<Úcloser{) Útopfdr.r}r~rr^r€rrxÚorig_stÚdirfdr r r!rˆ—sJ      rˆc Cs¤|rdd„}n|dkrdd„}trPt|tƒr8t |¡}yt |¡}Wn&tk rl|tj|t ¡ƒdSXyt  |tj ¡}Wn&tk r¦|tj|t ¡ƒdSXz˜tj   |t  |¡¡rt|||ƒyt |¡Wn(tk r|tj|t ¡ƒYnXn8y tdƒ‚Wn*tk r<|tj j|t ¡ƒYnXWdt |¡XnPytj  |¡rhtdƒ‚Wn*tk r”|tj j|t ¡ƒdSXt||ƒSdS)NcWsdS)Nr )rPr r r!r}×szrmtree..onerrorcWs‚dS)Nr )rPr r r!r}Úsz%Cannot call rmtree on a symbolic link)Ú_use_fd_functionsÚ isinstanceÚbytesr-ÚfsdecoderDÚ Exceptionrvrwr?r…r.r†r‡rˆr|r/r<r‰rz)r.Ú ignore_errorsr}r‹Úfdr r r!r ËsH       cCs&tjjtjjpd}tj | |¡¡S)NÚ)r-r.ÚsepÚaltsepraÚrstrip)r.r•r r r!Ú _basename sr˜c Cs|}tj |¡rTt||ƒr*t ||¡dStj |t|ƒ¡}tj |¡rTtd|ƒ‚yt ||¡Wn–t k rútj  |¡r¢t  |¡}t  ||¡t  |¡nTtj |¡rât||ƒrÈtd||fƒ‚t|||ddt|ƒn|||ƒt  |¡YnX|S)Nz$Destination path '%s' already existsz.Cannot move a directory '%s' into itself '%s'.T)rqro)r-r.r_r4Úrenamer`r˜rlr r/r<r>r=r{Ú _destinsrcr r )r2r3rqZreal_dstrsr r r!r s2              cCsVtj |¡}tj |¡}| tjj¡s2|tjj7}| tjj¡sL|tjj7}| |¡S)N)r-r.r1Úendswithr•Ú startswith)r2r3r r r!ršHs    ršcCsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Né)rÚKeyError)rMÚresultr r r!Ú_get_gidQs  r cCsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Nr)rrž)rMrŸr r r!Ú_get_uid]s  r¡Úgzipcs |dkrd}nDtr |dkr d}n2tr2|dkr2d}n trD|dkrDd}ntd |¡ƒ‚ddl} |rfd |nd} |d | } tj | ¡} | r´tj  | ¡s´|dk r¦|  d | ¡|s´t  | ¡|dk rÆ|  d ¡t ˆƒ‰t ˆƒ‰‡‡‡‡fd d„} |s|  | d|¡}z|j|| dWd| ¡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)rd)Ú_ZLIB_SUPPORTEDÚ_BZ2_SUPPORTEDÚ_LZMA_SUPPORTEDÚ ValueErrorr8Útarfiler-r.ÚdirnamerlÚinforkr¡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_tarballis<          r½c Cszddl}|d}tj |¡}|rNtj |¡sN|dk r@| d|¡|sNt |¡|dk rd| d||¡|sv|j|d|jdô}tj  |¡} | tj kr´|  | | ¡|dk r´| d| ¡x¶t  |¡D]¨\} } } xFt | ƒD]:} tj  tj | | ¡¡} |  | | ¡|dk rÔ| d| ¡qÔWxT| D]L} tj  tj | | ¡¡} tj | ¡r|  | | ¡|dk r| d| ¡qWqÀWWdQRX|S)Nrz.zipz creating %sz#creating '%s' and adding '%s' to itÚw)Z compressionz adding '%s')Úzipfiler-r.r²rlr³rkÚZipFileZ ZIP_DEFLATEDÚnormpathÚcurdirr&ÚwalkÚsortedr`Úisfile)rµr¶r¸r¹rºr¿Z zip_filenamer»Zzfr.ÚdirpathZdirnamesÚ filenamesrMr r r!Ú _make_zipfileªs@             rÈr¼)r·Nzuncompressed tar file)r·r¢zgzip'ed tar-fileZgztarzZIP fileÚzip)r·r£zbzip2'ed tar-fileZbztar)r·r¥zxz'ed tar-fileZxztarcCsdd„t ¡Dƒ}| ¡|S)NcSsg|]\}}||df‘qS)rr )Ú.0rMÚregistryr r r!ú ìsz'get_archive_formats..)Ú_ARCHIVE_FORMATSÚitemsÚsort)Úformatsr r r!rçs r”cCsx|dkr g}t|ƒs td|ƒ‚t|ttfƒs6tdƒ‚x.|D]&}t|ttfƒrZt|ƒdkr|dk r$| d|¡tj |¡}|s>t |¡|dkrLtj}||dœ} y t|} Wn"tk r„t d|ƒd‚YnX| d} x| dD]\} }|| | <q˜W|dkrÄ|| d<|| d<z| ||f| Ž}Wd|dk rþ|dk rô| d | ¡t | ¡X|S) Nzchanging into '%s')r¹rºzunknown archive format '%s'rérÉr«rªzchanging back to '%s') r-ÚgetcwdÚdebugr.r1ÚchdirrÂrÍržr°)rµr8Zroot_dirr¶r¸r¹r«rªrºZsave_cwdrQÚ format_infoÚfuncÚargÚvalrƒr r r!r s6        cCsdd„t ¡Dƒ}| ¡|S)NcSs"g|]\}}||d|df‘qS)rér )rÊrMr³r r r!rÌFsz&get_unpack_formats..)Ú_UNPACK_FORMATSrÎrÏ)rÐr r r!r@s c Csvi}x.t ¡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_extensionsrMr³ÚextÚ extensionÚmsgr r r!Ú_check_unpack_optionsKs ræcCs,|dkr g}t|||ƒ||||ft|<dS)N)rærá)rMrârÕrÖr×r r r!r]s cCs t|=dS)N)rá)rMr r r!rsscCs&tj |¡}tj |¡s"t |¡dS)N)r-r.r²r_rk)r.r²r r r!Ú_ensure_directoryws  rçc CsÊddl}| |¡std|ƒ‚| |¡}z’xŒ| ¡D]€}|j}| d¡s4d|krRq4tjj |f|  d¡žŽ}|spq4t |ƒ|  d¡s4|  |j¡}t|dƒ}z| |¡Wd| ¡~Xq4WWd| ¡XdS)Nrz%s is not a zip fileú/z..r7)r¿Z is_zipfiler"rÀZinfolistrƒrœr-r.r`Úsplitrçr›r%r?r&r‰) rƒÚ extract_dirr¿rÉr³rMÚtargetÚdataÚfr r r!Ú_unpack_zipfile}s*       rîcCsXddl}y| |¡}Wn"|jk r8td|ƒ‚YnXz| |¡Wd| ¡XdS)Nrz/%s is not a compressed or uncompressed tar file)r±r?ZTarErrorr"Z extractallr‰)rƒrêr±Ztarobjr r r!Ú_unpack_tarfileŸsrïz.tarz.zip)r¼rÉz.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzcCs:x4t ¡D](\}}x|dD]}| |¡r|SqWq WdS)Nr)rárÎr›)rƒrMr³rär r r!Ú_find_unpack_format¾s   rðcCsÊ|dkrt ¡}t |¡}t |¡}|dk r~y t|}Wn$tk r\td |¡ƒd‚YnX|d}|||ft|dƒŽnHt|ƒ}|dkrœt d |¡ƒ‚t|d}tt|dƒ}|||f|ŽdS)NzUnknown unpack format '{0}'rØrzUnknown archive format '{0}') r-rÙÚfspathráržr°r8Údictrðr")rƒrêr8rÜrÝrQr r r!rÅs"    ÚstatvfsÚ disk_usageÚusageztotal used freezTotal space in byteszUsed space in byteszFree space in bytescCs@t |¡}|j|j}|j|j}|j|j|j}t|||ƒS)N)r-róÚf_bavailÚf_frsizeÚf_blocksÚf_bfreeÚ_ntuple_diskusage)r.rAÚfreeÚtotalÚusedr r r!rôõs    ÚntcCs"t |¡\}}||}t|||ƒS)N)rþZ _getdiskusagerú)r.rürûrýr r r!rôscCsž|dkr|dkrtdƒ‚|}|}|dkr.d}n(t|tƒrVt|ƒ}|dkrVtd |¡ƒ‚|dkrdd}n(t|tƒsŒt|ƒ}|dkrŒtd |¡ƒ‚t  |||¡dS)Nzuser and/or group must be setéÿÿÿÿzno such user: {!r}zno such group: {!r}) r°rŽrnr¡Ú LookupErrorr8Úintr r-r)r.ÚuserrªZ_userÚ_groupr r r!rs"  ©éPéc CsÔyttjdƒ}Wnttfk r.d}YnXyttjdƒ}Wnttfk r^d}YnX|dksp|dkrÆyt tj ¡¡}Wn$t tt fk r¨t  |¡}YnX|dkr¸|j }|dkrÆ|j }t  ||f¡S)NÚCOLUMNSrZLINES)rr-Úenvironržr°rrvÚ __stdout__ÚfilenoÚAttributeErrorr/Ú terminal_sizeÚcolumnsÚlines)Úfallbackr rÚsizer r r!r1s$  c s^dd„}tj ˆ¡r&|ˆ|ƒr"ˆSdS|dkrrtj dd¡}|dkrryt d¡}Wnttfk rptj}YnX|szdS|  tj ¡}t j dkrðtj |kr¨| dtj ¡tj dd¡  tj ¡}t‡fd d „|Dƒƒr܈g}qö‡fd d „|Dƒ}nˆg}tƒ}x\|D]T}tj |¡}||kr| |¡x,|D]$} tj || ¡} || |ƒr,| Sq,WqWdS) NcSs&tj |¡o$t ||¡o$tj |¡ S)N)r-r.rlÚaccessr_)r@r\r r r!Ú _access_checkkszwhich.._access_checkÚPATHÚCS_PATHÚwin32rZPATHEXTr”c3s |]}ˆ ¡ | ¡¡VqdS)N)Úlowerr›)rÊrã)Úcmdr r!ú ’szwhich..csg|] }ˆ|‘qSr r )rÊrã)rr r!rÌ•szwhich..)r-r.r²rÚgetÚconfstrr r°ÚdefpathréÚpathseprvÚplatformrÂÚinsertÚanyrer0r´r`) rr\r.rZpathextÚfilesÚseenÚdirZnormdirZthefilerMr )rr!r^sB             )r$)FN)r¢rrNNN)rrN)Nr”)NNrrNNN)Nr”)NN)NN)r)Vr-rvr9rcÚ collectionsrGÚzlibr­Ú ImportErrorr¤r®Zlzmar¯ÚpwdrZgrprÚ__all__r/r rrrr"r‘r#rr4rrr,rOrrr rr rzrˆr?r{r|Úsupports_dir_fdrtÚ supports_fdrVrr Zavoids_symlink_attacksr˜r ršr r¡r½rÈrÍrrrrrrærrrçrîrïrárðrrmÚ namedtuplerúrüÚ__doc__rýrûrôrMrþrrÚF_OKÚX_OKrr r r r!Úsü          <  Y#/   = 8    @ -     6  "        (        -