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 =