U
e5d� � @ 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}�ztzt| d�}W n4 tk
rN } ztd| |jf ��W 5 d}~X Y nX tj�|�r�zt�|� W n4 tk
r� } ztd||jf ��W 5 d}~X Y nX zt|d�}W n4 tk
r� } ztd||jf ��W 5 d}~X Y nX z|� |�}W n6 tk
�r( } ztd| |jf ��W 5 d}~X Y nX |�s4�q|z|�
|� W q� tk
�rx } ztd||jf ��W 5 d}~X Y q�X q�W 5 |�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)�close�open�OSErrorr �strerror�os�path�exists�unlink�read�write)�src�dstZbuffer_sizeZfsrcZfdst�eZbuf� r �+/usr/lib64/python3.8/distutils/file_util.py�_copy_file_contents sL $����r � c C s ddl m} ddlm} m}
m}m} tj� | �s