B
    0*™\Â   ã               @   sV   d dl Z d dlmZ d dlmZ ddddœZdd	d
„Zddd„Zddd„Zdd„ Z	dS )é    N)ÚDistutilsFileError)ÚlogZcopyingzhard linkingzsymbolically linking)NÚhardÚsymé @  c          
   C   s¤  d }d }zvyt | dƒ}W n4 tk
rN } ztd| |jf ƒ‚W d d }~X Y nX tj |¡r yt |¡ W n4 tk
rž } ztd||jf ƒ‚W d d }~X Y nX yt |dƒ}W n4 tk
râ } ztd||jf ƒ‚W d d }~X Y nX x˜y| |¡}W n6 tk
r* } ztd| |jf ƒ‚W d d }~X Y nX |s4P y| 	|¡ W qæ tk
rx } ztd||jf ƒ‚W d d }~X Y qæX qæW W d |r| 
¡  |rž| 
¡  X d S )NÚrbzcould not open '%s': %szcould not delete '%s': %sÚwbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s)ÚopenÚOSErrorr   ÚstrerrorÚosÚpathÚexistsÚunlinkÚreadÚwriteÚclose)ÚsrcÚdstÚbuffer_sizeZfsrcZfdstÚeÚbuf© r   ú>C:\ALexclude\prg\programme\Python37\Lib\distutils\file_util.pyÚ_copy_file_contents   sF    	$"""*r   é   c             C   s  ddl m} ddlm}	m}
m}m} tj 	| ¡s<t
d|  ƒ‚tj |¡rd|}tj |tj | ¡¡}ntj |¡}|rš|| |ƒsš|dkr’t d| ¡ |dfS yt| }W n  tk
rÆ   td| ƒ‚Y nX |dkrtj |¡tj | ¡krüt d|| |¡ nt d|| |¡ |r|dfS |d	krptj |¡rBtj | |¡s¬yt | |¡ |dfS  tk
rl   Y nX n<|d
kr¬tj |¡r˜tj | |¡s¬t | |¡ |dfS t| |ƒ |sÂ|rt | ¡}|rêt |||	 ||
 f¡ |rt |||| ƒ¡ |dfS )Nr   )Únewer)ÚST_ATIMEÚST_MTIMEÚST_MODEÚS_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   )Zdistutils.dep_utilr   Ústatr   r   r   r    r   r   Úisfiler   ÚisdirÚjoinÚbasenameÚdirnamer   ÚdebugÚ_copy_actionÚKeyErrorÚ
ValueErrorÚinfor   ÚsamefileÚlinkr
   Úsymlinkr   ÚutimeÚchmod)r   r   Zpreserve_modeZpreserve_timesÚupdater-   ÚverboseÚdry_runr   r   r   r   r    ÚdirÚactionÚstr   r   r   Ú	copy_fileC   sT    !





r7   c             C   sœ  ddl m}m}m}m}m} dd l}	|dkr:t d| |¡ |rB|S || ƒsVt	d|  ƒ‚||ƒrrt
j ||| ƒ¡}n||ƒrŠt	d| |f ƒ‚|||ƒƒs¦t	d| |f ƒ‚d}
yt
 | |¡ W nP tk
r
 } z0|j\}}||	jkrèd	}
nt	d
| ||f ƒ‚W d d }~X Y nX |
r˜t| ||d yt
 | ¡ W nh tk
r– } zH|j\}}yt
 |¡ W n tk
rp   Y nX t	d| || |f ƒ‚W d d }~X Y nX |S )Nr   )r   r"   r#   r%   r&   r   zmoving %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 pathFTzcouldn't move '%s' to '%s': %s)r2   zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathr   r"   r#   r%   r&   Úerrnor   r+   r   r   r   r$   Úrenamer
   ÚargsZEXDEVr7   r   )r   r   r2   r3   r   r"   r#   r%   r&   r8   Zcopy_itr   ZnumÚmsgr   r   r   Ú	move_file¦   sR    

"
"r<   c             C   s:   t | dƒ}z x|D ]}| |d ¡ qW W d | ¡  X d S )NÚwÚ
)r	   r   r   )ÚfilenameÚcontentsÚfÚliner   r   r   Ú
write_fileå   s
    

rC   )r   )r   r   r   Nr   r   )r   r   )
r   Zdistutils.errorsr   Z	distutilsr   r(   r   r7   r<   rC   r   r   r   r   Ú<module>   s   
3 
c 
=