a
XC?h� � @ 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}�z�zt | d�}W n6 tyP } ztd| |jf ��W Y d}~n
d}~0 0 tj�|�r�zt�|� W n6 ty� } ztd||jf ��W Y d}~n
d}~0 0 zt |d�}W n6 ty� } ztd||jf ��W Y d}~n
d}~0 0 z|�|�}W n8 t�y0 } ztd| |jf ��W Y d}~n
d}~0 0 |�s<�q�z|� |� W q� t�y� } ztd||jf ��W Y d}~q�d}~0 0 q�W |�r�|�
� |�r�|�
� n|�r�|�
� |�r�|�
� 0 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�dstZbuffer_sizeZfsrcZfdst�eZbuf� r �8/opt/alt/python39/lib64/python3.9/distutils/file_util.py�_copy_file_contents sT (����
�r � c C s
ddl m} ddlm} m}
m}m} tj� | �s