3
\� � @ sZ d Z ddlZddlmZ ddlmZ dddd�Zddd�Zddd�Zddd�Z dd� Z
dS )zFdistutils.file_util
Utility functions for operating on single files.
� N)�DistutilsFileError)�logZcopyingzhard linkingzsymbolically linking)N�hard�sym� i c N C s� d}d}�zvyt | d�}W n4 tk
rN } ztd| |jf ��W Y dd}~X nX tjj|�r�ytj|� W n4 tk
r� } ztd||jf ��W Y dd}~X nX yt |d�}W n4 tk
r� } ztd||jf ��W Y dd}~X nX x�y|j|�}W n6 tk
�r* } ztd| |jf ��W Y dd}~X nX |�s4P y|j |� W q� tk
�rx } ztd||jf ��W Y dd}~X q�X q�W W d|�r�|j
� |�r�|j
� X dS ) a5 Copy the file 'src' to 'dst'; both must be filenames. Any error
opening either file, reading from 'src', or writing to 'dst', raises
DistutilsFileError. Data is read/written in chunks of 'buffer_size'
bytes (default 16k). No attempt is made to handle anything apart from
regular files.
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_contents sF $"""*r � c C s ddl m} ddlm} m}
m}m} tjj | �s