
    ;e                     Z    	 d dl Z d dlmZ d dlmZ ddddZdd	Z	 	 ddZ	 	 ddZd Z	dS )    N)DistutilsFileError)logcopyingzhard linkingzsymbolically linking)Nhardsym @  c                    	 d }d }	 	 t          | d          }n,# t          $ r}t          d| d|j                  d }~ww xY wt          j                            |          rB	 t	          j        |           n,# t          $ r}t          d|d|j                  d }~ww xY w	 t          |d          }n,# t          $ r}t          d|d|j                  d }~ww xY w	 	 |                    |          }n,# t          $ r}t          d| d|j                  d }~ww xY w|snD	 |	                    |           n,# t          $ r}t          d	|d|j                  d }~ww xY w	 |r|
                                 |r|
                                 d S d S # |r|
                                 |r|
                                 w w xY w)
Nrbzcould not open '': zcould not delete 'wbzcould not create 'Tzcould not read from 'zcould not write to ')openOSErrorr   strerrorospathexistsunlinkreadwriteclose)srcdstbuffer_sizefsrcfdstebufs          */usr/lib/python3.11/distutils/file_util.py_copy_file_contentsr      s    DD&	TT??DD 	T 	T 	T$$###qzz%RSSS	T 7>># 	GG	# G G G((58SS!**EG G GG	CT??DD 	C 	C 	C$$14ajjAC C C	C	IJii,, J J J((8;QZZHJ J JJ  I

3 I I I((7:ssAJJGI I II	I   	JJLLL 	JJLLLLL	 	  	JJLLL 	JJLLLL	s    F  
A=A"F  %A: 9F  :
B#BB##F  'B8 7F  8
C!CC!!F  &C< ;F  <
D%D  D%%F  ,E F  
E+E&&E++F   /G   c                    	 ddl m} ddlm}	m}
m}m} t          j        	                    |           st          d| z            t          j                            |          r@|}t          j                            |t          j                            |                     }nt          j                            |          }|r+ || |          s|dk    rt          j        d|            |dfS 	 t"          |         }n # t$          $ r t'          d|z            w xY w|dk    rot          j                            |          t          j                            |           k    rt          j        d|| |           nt          j        d|| |           |r|dfS |d	k    rjt          j                            |          r t          j                            | |          s*	 t          j        | |           |dfS # t0          $ r Y ncw xY wn^|d
k    rXt          j                            |          r t          j                            | |          st          j        | |           |dfS t5          | |           |s|r_t          j        |           }|r#t          j        |||	         ||
         f           |r$t          j        | |||                              |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   )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   preserve_modepreserve_timesupdater4   verbosedry_runr"   r#   r$   r%   r&   diractionsts                   r   	copy_filer@   C   s!   > )(((((9999999999997>># L DsJL L 	L 
w}}S #gll3 0 0 5 566gooc"" eeCoo a<<I:C@@@QxJd# J J JADHIIIJ !||7C  BG$4$4S$9$999H]FC5555H]FC555 Qx 
s## 	(8(8c(B(B 	S!!!Qx    			 
s## 	(8(8c(B(B 	JsC   8O S!!! 0 0WS\\  	8HS2h<H6777 	0HS''"W+..///8Os   1C? ?D G9 9
HHc                 t   	 ddl m}m}m}m}m} dd l}	|dk    rt          j        d| |           |r|S  ||           st          d| z             ||          r*t          j                            | ||                     }n! ||          rt          d| d|d           | ||                    st          d| d|d	          d
}
	 t          j        | |           nG# t          $ r:}|j        \  }}||	j        k    rd}
nt          d| d|d|          Y d }~nd }~ww xY w|
rt#          | ||           	 t          j        |            n]# t          $ rP}|j        \  }}	 t          j        |           n# t          $ r Y nw xY wt          d| d|d| d|          d }~ww xY w|S )Nr   )r   r)   r*   r,   r-   r    zmoving %s -> %sz#can't move '%s': not a regular filezcan't move 'z': destination 'z' already existsz' not a valid pathFTzcouldn't move 'z' to 'r   )r;   z' by copy/delete: delete 'z
' failed: )os.pathr   r)   r*   r,   r-   errnor   r2   r   r   r   r+   renamer   argsEXDEVr@   r   )r   r   r;   r<   r   r)   r*   r,   r-   rC   copy_itr   nummsgs                 r   	move_filerJ      s    A@@@@@@@@@@@@@LLL!||"C--- 
6#;; N !F!LMMMuSzz gll3..	   ssCCC  	 5   ssCCC  	 GF
	#s F F FV
c%+GG$$69cc333DF F F GGGGF  *#sG,,,,	*IcNNNN 		* 		* 		*JS#	#   $$ SS###sssCC)* * *		* JsT   C* *
D.40D))D.E 
F5%
F00FF0
FF0FF00F5c                     	 t          | d          }	 |D ]}|                    |dz              	 |                                 d S # |                                 w xY w)Nw
)r   r   r   )filenamecontentsflines       r   
write_filerR      so     	XsA 	! 	!DGGD4K    	! 	
									s   A A)r   )r    r    r   Nr    r   )r    r   )
r   distutils.errorsr   	distutilsr   r/   r   r@   rJ   rR        r   <module>rW      s   
 
			 / / / / / /       #'/2 2
1 1 1 1f CD,-_ _ _ _H < < < <~	 	 	 	 	rV   