MINI MINI MANI MO
3
  \                 @   sV   d dl Z d dlmZ d dlmZ ddddZdd
dZdd
dZdddZdd Z	dS )    N)DistutilsFileError)logZcopyingzhard linkingzsymbolically linking)Nhardsym   i   c          N   C   s  d }d }zvyt | d}W n4 tk
rN } ztd| |jf W Y d d }~X nX tjj|rytj| W n4 tk
r } ztd||jf W Y d d }~X nX yt |d}W n4 tk
r } ztd||jf W Y d d }~X nX xy|j|}W n6 tk
r* } ztd| |jf W Y d d }~X nX |s4P y|j	| W q tk
rx } ztd||jf W Y d d }~X qX qW W d |r|j
  |r|j
  X d S )Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s)openOSErrorr   strerrorospathexistsunlinkreadwriteclose)srcdstbuffer_sizeZfsrcZfdsteZbuf 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<t
d|  tjj|rd|}
tjj|tjj
| }ntjj|}
|r|| | r|dkrtjd|  |dfS yt| }W n  tk
r   td| Y nX |dkrtjj
|tjj
| kr tjd|| |
 ntjd|| | |r|dfS |d	krttjj|oBtjj| |sytj| | |dfS  tk
rp   Y nX n<|d
krtjj|otjj| |stj| | |dfS t| | |s|rtj| }|rtj|||	 ||
 f |rtj||||  |dfS )Nr   )newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filer   z"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz%s %s -> %sr   r   )Zdistutils.dep_utilr   statr   r   r   r   r   r
   isfiler   isdirjoinbasenamedirnamer   debug_copy_actionKeyError
ValueErrorinfor   samefilelinkr
   symlinkr   utimechmod)r   r   Z
preserve_modeZpreserve_timesupdater,   verbosedry_runr   r   r   r   r   diractionstr   r   r   	copy_fileC   sT    !
r6   c          (   C   s  ddl m}m}m}m}m} dd l}	|dkr:tjd| | |rB|S || sVt	d|  ||rrt
jj||| }n||rt	d| |f |||st	d| |f d}
yt
j
| | W nP tk
r
 } z2|j\}}
||	jkrd	}
nt	d
| ||
f W Y d d }~X nX |
rt| ||d yt
j|  W nh tk
r } zJ|j\}}
yt
j| W n tk
rp   Y nX t	d| || |
f W Y d d }~X nX |S )
Nr   )r   r!   r"