B YI~dޣ@sddlZddlZddlZddlZddlZddlZyddlZ[dZWnek rZdZYnXyddl Z [ dZ Wnek rdZ YnXyddl Z [ dZ Wnek rdZ YnXyddl mZWnek rdZYnXyddlmZWnek rdZYnXdddd d d d d dddddddddddddddddgZGdddeZGd ddeZGd!ddeZGd"ddeZGd#d$d$eZGd%d&d&eZdd(dZd)d*Zdd+d,dZdd+d-dZeed.rdd+d/d0Znd1d0Zdd+d2d Z dd+d3d Z!dd+d4d Z"d5dZ#dde"dfd6d Z$d7d8Z%d9d:Z&ej'ejej(ej)hej*kozej+ej,kozejej-kZ.dd;dZ/e.e/_0dd Z2d?d@Z3dAdBZ4dCdDZ5ddFdGZ6ddHdIZ7dJe6dKgdLfiZ8ere6dMgdNfe8dO<e7gdPfe8dQ<e re6dRgdSfe8dT<e r,e6dUgdVfe8dW<dXdZ9ddZdZ:d[dZ;dd\dZdd`dZ?dadZ@dbdcZAdddeZBdfdgZCdhgeCgdLfdigeBgdPfdjZDerdkdlgeCgdNfeDdO<e rdmdngeCgdSfeDdT<e rdodpgeCgdVfeDdW<dqdrZEddsdZFeedtrLeGdueHdvdwZIdxeIjJ_KdyeIjL_KdzeIjM_Kd{duZNn2ejOd|kr~ddlPZPeGdueHdvdwZId}duZNdd~dZQdddZRejSejTBdfddZUdS)NTF)getpwnam)getgrnam copyfileobjcopyfilecopymodecopystatcopycopy2copytreemovermtreeErrorSpecialFileError ExecError make_archiveget_archive_formatsregister_archive_formatunregister_archive_formatget_unpack_formatsregister_unpack_formatunregister_unpack_formatunpack_archiveignore_patternschownwhichget_terminal_size SameFileErrorc@s eZdZdS)r N)__name__ __module__ __qualname__r r +/opt/alt/python37/lib64/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)readwrite)fsrcfdstlengthbufr r r!rLs  cCsXttjdr0ytj||Stk r.dSXtjtj|tjtj|kS)NsamefileF)hasattrospathr+OSErrornormcaseabspath)srcdstr r r! _samefileTs r4)follow_symlinksc Cst||rtd||xL||gD]@}yt|}Wntk rJYq$Xt|jr$td|q$W|stj |rt t ||n6t |d&}t |d}t||WdQRXWdQRX|S)Nz{!r} and {!r} are the same filez`%s` is a named piperbwb)r4rformatr-statr/S_ISFIFOst_moderr.islinksymlinkreadlinkopenr)r2r3r5fnstr'r(r r r!r`s    cCsx|s._nopcs tt|S)N)getattrr-)rM)rSr r!lookupszcopystat..lookupcstt|}|tjkr|SS)N)rTr-supports_follow_symlinks)rMr@)rSr r!rUs  r9)r5utimerCst_flagsZchflags)Z EOPNOTSUPPrH)r-r.r<r9rEr; st_atime_ns st_mtime_nsrONotImplementedErrorr,rXr/rGrT) r2r3r5ZfollowrUrAmodewhyerrr )rSr!rs,      cCsBtj|r"tj|tj|}t|||dt|||d|S)N)r5)r-r.isdirjoinbasenamerr)r2r3r5r r r!rs cCsBtj|r"tj|tj|}t|||dt|||d|S)N)r5)r-r.r_r`rarr)r2r3r5r r r!r s csfdd}|S)Ncs,g}xD]}|t||q Wt|S)N)extendfnmatchfilterset)r.rK ignored_namespattern)patternsr r!_ignore_patternss z)ignore_patterns.._ignore_patternsr )rhrir )rhr!rs c Cst|}|dk r|||}nt}t|g}x@|D]6} | |krJq:tj|| } tj|| } ytj| rt| } |rt| | t | | | dn:tj | s|rw:tj | rt | | |||n || | n(tj | rt | | |||n || | Wq:t k r:} z|| jdWdd} ~ XYq:tk rp}z|| | t|fWdd}~XYq:Xq:Wyt ||WnJtk r}z*t|dddkr|||t|fWdd}~XYnX|rt ||S)N)r5rZwinerror)r-listdirremakedirsr.r`r<r>r=rexistsr_r r rbrPr/appendstrrT)r2r3symlinksignore copy_functionZignore_dangling_symlinksrKrferrorsrMZsrcnameZdstnamelinktor^r]r r r!r sL$           *&c CsPy"t|}t|}WdQRXWn*tk rL|tj|tg}YnXx|D]}|j}y|jdd}Wntk rd}YnX|ry|rtdWn*tk r|tjj |twTYnXt ||qTyt |WqTtk r|tj |tYqTXqTWyt |Wn(tk rJ|tj |tYnXdS)NF)r5z%Cannot call rmtree on a symbolic link) r-scandirlistr/sysexc_infor.is_dir is_symlinkr<_rmtree_unsafeunlinkrmdir)r.onerror scandir_itentriesentryfullnamerxr r r!rzts8      rzc Csy"t|}t|}WdQRXWn:tk r\}z||_|tj|tdSd}~XYnXx|D]}tj||j }y,|j dd}|r|j dd} t | j }Wntk rd}YnX|rytj|j tj|d} Wn(tk r|tj|tYnXztj| t| rnt| ||ytj|j |dWn(tk rj|tj|tYnXn8y tdWn*tk r|tjj|tYnXWdt| Xqfytj|j |dWqftk r|tj|tYqfXqfWdS)NF)r5)dir_fdz%Cannot call rmtree on a symbolic link)r-rtrur/filenamervrwr.r`rMrxr9S_ISDIRr;r?O_RDONLYsamestatfstat_rmtree_safe_fdr|r<closer{) topfdr.r}r~rr^rrrxorig_stdirfdr r r!rsJ      rc Cs|rdd}n|dkrdd}trPt|tr8t|}yt|}Wn&tk rl|tj|tdSXyt |tj }Wn&tk r|tj|tdSXztj |t |rt|||yt|Wn(tk r|tj|tYnXn8y tdWn*tk r<|tj j|tYnXWdt|XnPytj |rhtdWn*tk r|tj j|tdSXt||SdS)NcWsdS)Nr )rPr r r!r}szrmtree..onerrorcWsdS)Nr )rPr r r!r}sz%Cannot call rmtree on a symbolic link)_use_fd_functions isinstancebytesr-fsdecoderD Exceptionrvrwr?rr.rrrr|r/r<rrz)r. ignore_errorsr}rfdr r r!r sH       cCs&tjjtjjpd}tj||S)N)r-r.sepaltseprarstrip)r.rr r r! _basename src Cs|}tj|rTt||r*t||dStj|t|}tj|rTtd|yt||Wnt k rtj |rt |}t ||t |nTtj|rt||rtd||ft|||ddt|n|||t |YnX|S)Nz$Destination path '%s' already existsz.Cannot move a directory '%s' into itself '%s'.T)rqro)r-r.r_r4renamer`rrlr r/r<r>r=r{ _destinsrcr r )r2r3rqZreal_dstrsr r r!r s2              cCsVtj|}tj|}|tjjs2|tjj7}|tjjsL|tjj7}||S)N)r-r.r1endswithr startswith)r2r3r r r!rHs    rcCsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)N)rKeyError)rMresultr r r!_get_gidQs  rcCsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)Nr)rr)rMrr r r!_get_uid]s  rgzipcs |dkrd}nDtr |dkr d}n2tr2|dkr2d}n trD|dkrDd}ntd|ddl} |rfd |nd} |d | } tj| } | rtj | s|dk r| d | |st | |dk r| d t t fd d} |s| | d|}z|j|| dWd|X| S)NrrZgzbzip2bz2xzzCbad value for 'compress', or compression format not supported : {0}r.z.tarz creating %szCreating tar archivecs,dk r|_|_dk r(|_|_|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r! _set_uid_gidsz#_make_tarball.._set_uid_gidzw|%s)rd)_ZLIB_SUPPORTED_BZ2_SUPPORTED_LZMA_SUPPORTED ValueErrorr8tarfiler-r.dirnamerlinforkrrr?addr) base_namebase_dircompressverbosedry_runrrloggerZtar_compressionrZ compress_extZ archive_name archive_dirrtarr )rrrrr! _make_tarballis<          rc Cszddl}|d}tj|}|rNtj|sN|dk r@|d||sNt||dk rd|d|||sv|j|d|jd}tj |} | tj kr| | | |dk r|d| xt |D]\} } } xFt | D]:} tj tj| | } | | | |dk r|d| qWxT| D]L} tj tj| | } tj| r| | | |dk r|d| qWqWWdQRX|S)Nrz.zipz creating %sz#creating '%s' and adding '%s' to itw)Z compressionz adding '%s')zipfiler-r.rrlrrkZipFileZ ZIP_DEFLATEDnormpathcurdirr&walksortedr`isfile)rrrrrrZ zip_filenamerZzfr.dirpathZdirnames filenamesrMr r r! _make_zipfiles@             rr)rNzuncompressed tar file)rrzgzip'ed tar-fileZgztarzZIP filezip)rrzbzip2'ed tar-fileZbztar)rrzxz'ed tar-fileZxztarcCsddtD}||S)NcSsg|]\}}||dfqS)rr ).0rMregistryr r r! sz'get_archive_formats..)_ARCHIVE_FORMATSitemssort)formatsr r r!rs rcCsx|dkr g}t|s td|t|ttfs6tdx.|D]&}t|ttfrZt|dkr|dk r$|d|tj|}|s>t||dkrLtj}||d} y t|} Wn"tk rt d|dYnX| d} x| dD]\} }|| | <qW|dkr|| d<|| d<z| ||f| }Wd|dk r|dk r|d | t| X|S) Nzchanging into '%s')rrzunknown archive format '%s'rrrrzchanging back to '%s') r-getcwddebugr.r1chdirrrrr)rr8Zroot_dirrrrrrrZsave_cwdrQ format_infofuncargvalrr r r!r s6        cCsddtD}||S)NcSs"g|]\}}||d|dfqS)rr )rrMrr r r!rFsz&get_unpack_formats..)_UNPACK_FORMATSrr)rr r r!r@s c Csvi}x.tD]"\}}x|dD] }|||<q WqWx,|D]$}||kr:d}t||||fq:Wt|srtddS)Nrz!%s is already registered for "%s"z*The registered function must be a callable)rrr#rr) extensionsrrZexisting_extensionsrMrext extensionmsgr r r!_check_unpack_optionsKs rcCs,|dkr g}t|||||||ft|<dS)N)rr)rMrrrrr r r!r]s cCs t|=dS)N)r)rMr r r!rsscCs&tj|}tj|s"t|dS)N)r-r.rr_rk)r.rr r r!_ensure_directoryws  rc Csddl}||std|||}zx|D]}|j}|ds4d|krRq4tjj |f| d}|spq4t || ds4| |j}t|d}z||Wd|~Xq4WWd|XdS)Nrz%s is not a zip file/z..r7)rZ is_zipfiler"rZinfolistrrr-r.r`splitrrr%r?r&r) r extract_dirrrrrMtargetdatafr r r!_unpack_zipfile}s*       rcCsXddl}y||}Wn"|jk r8td|YnXz||Wd|XdS)Nrz/%s is not a compressed or uncompressed tar file)rr?ZTarErrorr"Z extractallr)rrrZtarobjr r r!_unpack_tarfilesrz.tarz.zip)rrz.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzcCs:x4tD](\}}x|dD]}||r|SqWq WdS)Nr)rrr)rrMrrr r r!_find_unpack_formats   rcCs|dkrt}t|}t|}|dk r~y t|}Wn$tk r\td|dYnX|d}|||ft|dnHt|}|dkrt d|t|d}tt|d}|||f|dS)NzUnknown unpack format '{0}'rrzUnknown archive format '{0}') r-rfspathrrrr8dictrr")rrr8rrrQr r r!rs"    statvfs disk_usageusageztotal used freezTotal space in byteszUsed space in byteszFree space in bytescCs@t|}|j|j}|j|j}|j|j|j}t|||S)N)r-rf_bavailf_frsizef_blocksf_bfree_ntuple_diskusage)r.rAfreetotalusedr r r!rs    ntcCs"t|\}}||}t|||S)N)rZ _getdiskusager)r.rrrr r r!rscCs|dkr|dkrtd|}|}|dkr.d}n(t|trVt|}|dkrVtd||dkrdd}n(t|tst|}|dkrtd|t |||dS)Nzuser and/or group must be setzno such user: {!r}zno such group: {!r}) rrrnr LookupErrorr8intrr-r)r.userrZ_user_groupr r r!rs"  Pc Csyttjd}Wnttfk r.d}YnXyttjd}Wnttfk r^d}YnX|dksp|dkryttj}Wn$t tt fk rt |}YnX|dkr|j }|dkr|j }t ||fS)NCOLUMNSrZLINES)rr-environrrrrv __stdout__filenoAttributeErrorr/ terminal_sizecolumnslines)fallbackr rsizer r r!r1s$  c s^dd}tjr&||r"SdS|dkrrtjdd}|dkrrytd}Wnttfk rptj}YnX|szdS| tj }t j dkrtj |kr|dtj tjdd tj }tfd d |Dr܈g}qfd d |D}ng}t}x\|D]T}tj|}||kr||x,|D]$} tj|| } || |r,| Sq,WqWdS) NcSs&tj|o$t||o$tj| S)N)r-r.rlaccessr_)r@r\r r r! _access_checkkszwhich.._access_checkPATHCS_PATHwin32rZPATHEXTrc3s |]}|VqdS)N)lowerr)rr)cmdr r! szwhich..csg|] }|qSr r )rr)rr r!rszwhich..)r-r.rrgetconfstrr rdefpathrpathseprvplatformrinsertanyrer0rr`) rr\r.rZpathextfilesseendirZnormdirZthefilerMr )rr!r^sB             )r$)FN)rrrNNN)rrN)Nr)NNrrNNN)Nr)NN)NN)r)Vr-rvr9rc collectionsrGzlibr ImportErrorrrZlzmarpwdrZgrpr__all__r/r rrrr"rr#rr4rrr,rOrrr rr rzrr?r{r|supports_dir_fdrt supports_fdrVrr Zavoids_symlink_attacksrr rrrrrrrrrrrrrrrrrrrrrm namedtuplerr__doc__rrrrMrrrF_OKX_OKrr r r r!s          <  Y#/   = 8    @ -     6  "        (        -