a �DOg��@sVddlZddlmZddlmZdddd�Zdd d �Zdd d �Zddd�Zdd�Z dS)�N)�DistutilsFileError)�logZcopyingz hard linkingzsymbolically linking)N�hard�sym�@c Cs�d}d}�z�zt|d�}Wn6tyP}ztd||jf��WYd}~n d}~00tj�|�r�zt�|�Wn6ty�}ztd||jf��WYd}~n d}~00zt|d�}Wn6ty�}ztd||jf��WYd}~n d}~00z|�|�}Wn8t�y0}ztd||jf��WYd}~n d}~00|�s<�q�z|� |�Wq�t�y�}ztd||jf��WYd}~q�d}~00q�W|�r�|� �|�r�|� �n|�r�|� �|�r�|� �0dS)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�dstZ buffer_size�fsrc�fdst�e�buf�r�+/usr/lib64/python3.9/distutils/file_util.py�_copy_file_contentssT (  � � � � �r�cCs ddlm}ddlm} m} m} m} tj� |�s %srr)Zdistutils.dep_utilr�statrrr r!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_runrrrr r!�dir�action�strrr� copy_fileCsV!  �              r8c 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} zt � ||�WnRt�y } z8| j\} } | | jkr�d } nt d ||| f��WYd} ~ n d} ~ 00| �r�t|||d �zt �|�Wnht�y�} zN| j\} } zt �|�Wnt�ynYn0t d |||| f��WYd} ~ n d} ~ 00|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)r3zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr#r$r&r'�errnorr,rr r r%�renamer �argsZEXDEVr8r)rrr3r4rr#r$r&r'r9Zcopy_itr�num�msgrrr� move_file�s`  �� ��   �  ��r>cCs>t|d�}z$|D]}|�|d�qW|��n |��0dS)N�w� )r rr)�filename�contents�f�linerrr� write_file�s  rE)r)rrrNrr)rr) r Zdistutils.errorsrZ distutilsrr)rr8r>rErrrr�s  � 3� d� ?