3 \Ôã@sVddlZddlmZddlmZddddœZdd d „Zdd d„Zddd„Zdd„Z dS)éN)ÚDistutilsFileError)ÚlogZcopyingz hard linkingzsymbolically linking)NÚhardÚsyméicNCs¤d}d}�zvyt|dƒ}Wn4tk rN}ztd||jfƒ‚WYdd}~XnXtjj|ƒr ytj|ƒWn4tk rž}ztd||jfƒ‚WYdd}~XnXyt|dƒ}Wn4tk râ}ztd||jfƒ‚WYdd}~XnXx˜y|j|ƒ}Wn6tk �r*}ztd||jfƒ‚WYdd}~XnX|�s4Py|j |ƒWqætk �rx}ztd||jfƒ‚WYdd}~XqæXqæWWd|�r�|j ƒ|�rž|j ƒXdS)NÚrbzcould not open '%s': %szcould not delete '%s': %sÚwbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) ÚopenÚOSErrorrÚstrerrorÚosÚpathÚexistsÚunlinkÚreadÚwriteÚclose)ÚsrcÚdstÚ buffer_sizeZfsrcZfdstÚeZbuf©rú+/usr/lib64/python3.6/distutils/file_util.pyÚ_copy_file_contentssF $ """*récCsddlm}ddlm} m} m} m} tjj |ƒs %srr)Zdistutils.dep_utilrÚstatrrrrr r ÚisfilerÚisdirÚjoinÚbasenameÚdirnamerÚdebugÚ _copy_actionÚKeyErrorÚ ValueErrorÚinforÚsamefileÚlinkr ÚsymlinkrÚutimeÚchmod)rrZ preserve_modeZpreserve_timesÚupdater,ÚverboseÚdry_runrrrrrÚdirÚactionÚstrrrÚ copy_fileCsT!               r6c(Csœddlm}m}m}m}m}ddl} |dkr:tjd||ƒ|rB|S||ƒsVt d|ƒ‚||ƒrrt j j |||ƒƒ}n||ƒrŠt d||fƒ‚|||ƒƒs¦t d||fƒ‚d} yt j ||ƒWnPtk �r } z2| j\} } | | jkrèd } nt d ||| fƒ‚WYdd} ~ XnX| �r˜t|||d �yt j|ƒWnhtk �r–} zJ| j\} } yt j|ƒWntk �rpYnXt d |||| fƒ‚WYdd} ~ XnX|S) Nr)rr!r"r$r%rzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %s)r1zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr!r"r$r%Úerrnorr*rr r r#Úrenamer ÚargsZEXDEVr6r)rrr1r2rr!r"r$r%r7Zcopy_itrZnumÚmsgrrrÚ move_file¦sR       " "r;c Cs:t|dƒ}z x|D]}|j|dƒqWWd|jƒXdS)NÚwÚ )r rr)ÚfilenameÚcontentsÚfÚlinerrrÚ write_fileås   rBé@)rC)rrrNrr)rr) r Zdistutils.errorsrZ distutilsrr'rr6r;rBrrrrÚs   3 c =