U e5d@sVddlZddlmZddlmZddddZdd d Zdd d ZdddZddZ dS)N)DistutilsFileError)logZcopyingz hard linkingzsymbolically linking)Nhardsym@c Csd}d}ztzt|d}Wn4tk rN}ztd||jfW5d}~XYnXtj|rzt|Wn4tk r}ztd||jfW5d}~XYnXzt|d}Wn4tk r}ztd||jfW5d}~XYnXz| |}Wn6tk r(}ztd||jfW5d}~XYnX|s4q|z| |Wqtk rx}ztd||jfW5d}~XYqXqW5|r||r|XdS)Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) closeopenOSErrorrstrerrorospathexistsunlinkreadwrite)srcdstZ buffer_sizeZfsrcZfdsteZbufr+/usr/lib64/python3.8/distutils/file_util.py_copy_file_contentssL $     rcCsddlm}ddlm} m} m} m} tj |s %srr)Zdistutils.dep_utilrstatrrrrr risfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater+verbosedry_runrrrrrdiractionstrrr copy_fileCsV!               r5c Csddlm}m}m}m}m}ddl} |dkr:td|||rB|S||sVt d|||rrt j |||}n||rt d||f|||st d||fd} zt ||WnPtk r } z0| j\} } | | jkrd } nt d ||| fW5d} ~ XYnX| rt|||d zt |Wnhtk r} zH| j\} } zt |Wntk rpYnXt d |||| fW5d} ~ XYnX|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)r0zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr r!r#r$errnorr)rr rr"renamer argsZEXDEVr5r)rrr0r1rr r!r#r$r6Zcopy_itrZnummsgrrr move_files`        r:cCs6t|d}z|D]}||dqW5|XdS)Nw )r r r)filenamecontentsflinerrr write_files  rA)r)rrrNrr)rr) r Zdistutils.errorsrZ distutilsrr&rr5r:rArrrrs    3 d ?