B
� f� � @ sZ d Z ddlZddlmZ ddlmZ dddd�Zdd
d�Zdd
d�Zddd�Z dd� Z
dS )zFdistutils.file_util
Utility functions for operating on single files.
� N)�DistutilsFileError)�logZcopyingzhard linkingzsymbolically linking)N�hard�sym� @ c
C s� d}d}�zvyt | d�}W n4 tk
rN } ztd| |jf ��W dd}~X Y nX tj�|�r�yt�|� W n4 tk
r� } ztd||jf ��W dd}~X Y nX yt |d�}W n4 tk
r� } ztd||jf ��W dd}~X Y nX x�y|�|�}W n6 tk
�r* } ztd| |jf ��W dd}~X Y nX |�s4P y|� |� W q� tk
�rx } ztd||jf ��W dd}~X Y q�X q�W W d|�r�|�
� |�r�|�
� 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 �8/opt/alt/python37/lib64/python3.7/distutils/file_util.py�_copy_file_contents sF $"""*r � c C s ddl m} ddlm} m}
m}m} tj� | �s