B YI~d��@sVddlZddlmZddlmZdddd�Zdd d �Zdd d �Zddd�Zdd�Z dS)�N)�DistutilsFileError)�logZcopyingz hard linkingzsymbolically linking)N�hard�sym�@c Cs�d}d}�zvyt|d�}Wn4tk rN}ztd||jf��Wdd}~XYnXtj�|�r�yt�|�Wn4tk r�}ztd||jf��Wdd}~XYnXyt|d�}Wn4tk r�}ztd||jf��Wdd}~XYnXx�y|�|�}Wn6tk �r*}ztd||jf��Wdd}~XYnX|�s4Py|� |�Wq�tk �rx}ztd||jf��Wdd}~XYq�Xq�WWd|�r�|� �|�r�|� �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�e�buf�r�8/opt/alt/python37/lib64/python3.7/distutils/file_util.py�_copy_file_contentssF $ """*r�cCs ddlm}ddlm} m} m} m} tj� |�s %srr)Zdistutils.dep_utilr�statrrrr r 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!               r7c Cs�ddlm}m}m}m}m}ddl} |dkr:t�d||�|rB|S||�sVt d|��||�rrt j � |||��}n||�r�t d||f��|||��s�t d||f��d} yt � ||�WnPtk �r } z0| j\} } | | jkr�d } nt d ||| f��Wdd} ~ XYnX| �r�t|||d �yt �|�Wnhtk �r�} zH| j\} } yt �|�Wntk �rpYnXt d |||| f��Wdd} ~ 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)r2zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr"r#r%r&�errnorr+rr r r$�renamer �argsZEXDEVr7r)rrr2r3rr"r#r%r&r8Zcopy_itrZnum�msgrrr� move_file�sR       " "r<cCs:t|d�}z x|D]}|�|d�qWWd|��XdS)N�w� )r rr)�filename�contents�f�linerrr� write_file�s   rC)r)rrrNrr)rr) r Zdistutils.errorsrZ distutilsrr(rr7r<rCrrrr�s   3 c =