
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,af&  ã                   @   s°   d dl Z d dlZd dlmZ dddddgZi ZdZd	d
ddddddgZdd„ Zd!dd„Z	dd„ Z
dd„ ZG dd„ dƒZd"dd„Zee	fdd„Zdd„ Zdd„ Zed kr¬eƒ  dS )#é    N)ÚfilterfalseÚclear_cacheÚcmpÚdircmpÚcmpfilesÚDEFAULT_IGNORESi    ZRCSZCVSZtagsz.gitz.hgz.bzrZ_darcsÚ__pycache__c                   C   s   t  ¡  d S ©N)Ú_cacheÚclear© r   r   ú,/opt/alt/python38/lib64/python3.8/filecmp.pyr      s    Tc                 C   sª   t t | ¡ƒ}t t |¡ƒ}|d tjks8|d tjkr<dS |rL||krLdS |d |d kr`dS t | |||f¡}|d kr¦t| |ƒ}ttƒdkr–tƒ  |t| |||f< |S )Nr   FTé   éd   )	Ú_sigÚosÚstatÚS_IFREGr
   ÚgetÚ_do_cmpÚlenr   )Úf1Úf2ÚshallowÚs1Ús2Zoutcomer   r   r   r      s    
c                 C   s   t  | j¡| j| jfS r	   )r   ÚS_IFMTÚst_modeÚst_sizeÚst_mtime)Ústr   r   r   r   D   s    
þr   c              
   C   s†   t }t| dƒ�n}t|dƒ�X}| |¡}| |¡}||krPW 5 Q R £ W 5 Q R £ dS |sW 5 Q R £ W 5 Q R £ dS qW 5 Q R X W 5 Q R X d S )NÚrbFT)ÚBUFSIZEÚopenÚread)r   r   ÚbufsizeÚfp1Úfp2Zb1Zb2r   r   r   r   I   s    

r   c                   @   s†   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zeeeeeeeeeeeeed�Zdd„ ZdS )r   Nc                 C   sD   || _ || _|d kr$tjtjg| _n|| _|d kr:t| _n|| _d S r	   )ÚleftÚrightr   ÚcurdirÚpardirÚhider   Úignore)ÚselfÚaÚbr-   r,   r   r   r   Ú__init__x   s    zdircmp.__init__c                 C   sP   t t | j¡| j| j ƒ| _t t | j¡| j| j ƒ| _| j 	¡  | j 	¡  d S r	   )
Ú_filterr   Úlistdirr(   r,   r-   Ú	left_listr)   Ú
right_listÚsort©r.   r   r   r   Úphase0„   s    
ÿ
ÿ
zdircmp.phase0c                 C   sŠ   t tttjj| jƒ| jƒƒ}t tttjj| jƒ| jƒƒ}tt|j	t
|j|ƒƒƒ| _tt|j	t|j|ƒƒƒ| _tt|j	t|j|ƒƒƒ| _d S r	   )ÚdictÚzipÚmapr   ÚpathÚnormcaser4   r5   ÚlistÚ__getitem__ÚfilterÚ__contains__Úcommonr   Ú	left_onlyÚ
right_only)r.   r/   r0   r   r   r   Úphase1Œ   s
    zdircmp.phase1c           
      C   s4  g | _ g | _g | _| jD �]}tj | j|¡}tj | j|¡}d}zt 	|¡}W n& t
k
rv } zd}W 5 d }~X Y nX zt 	|¡}W n& t
k
r¬ } zd}W 5 d }~X Y nX |�r"t	 |j¡}t	 |j¡}	||	krâ| j |¡ n>t	 |¡rú| j  |¡ n&t	 |¡�r| j |¡ n| j |¡ q| j |¡ qd S )Nr   r   )Úcommon_dirsÚcommon_filesÚcommon_funnyrB   r   r<   Újoinr(   r)   r   ÚOSErrorr   r   ÚappendÚS_ISDIRÚS_ISREG)
r.   ÚxZa_pathZb_pathÚokZa_statZwhyZb_statZa_typeZb_typer   r   r   Úphase2“   s4    
zdircmp.phase2c                 C   s&   t | j| j| jƒ}|\| _| _| _d S r	   )r   r(   r)   rG   Ú
same_filesÚ
diff_filesÚfunny_files)r.   Zxxr   r   r   Úphase3¶   s    zdircmp.phase3c                 C   sN   i | _ | jD ]<}tj | j|¡}tj | j|¡}t||| j| j	ƒ| j |< qd S r	   )
ÚsubdirsrF   r   r<   rI   r(   r)   r   r-   r,   )r.   rN   Za_xZb_xr   r   r   Úphase4º   s
    
zdircmp.phase4c                 C   s$   |   ¡  | j ¡ D ]}| ¡  qd S r	   )rV   rU   ÚvaluesÚphase4_closure©r.   Zsdr   r   r   rX   Ä   s    zdircmp.phase4_closurec                 C   sä   t d| j| jƒ | jr2| j ¡  t d| jd| jƒ | jrT| j ¡  t d| jd| jƒ | jrp| j ¡  t d| jƒ | jrŒ| j ¡  t d| jƒ | jr¨| j ¡  t d| jƒ | j	rÄ| j	 ¡  t d| j	ƒ | j
rà| j
 ¡  t d| j
ƒ d S )	NZdiffzOnly inú:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :)Úprintr(   r)   rC   r6   rD   rQ   rR   rS   rF   rH   r7   r   r   r   ÚreportÉ   s,    






zdircmp.reportc                 C   s*   |   ¡  | j ¡ D ]}tƒ  |  ¡  qd S r	   )r\   rU   rW   r[   rY   r   r   r   Úreport_partial_closureâ   s    zdircmp.report_partial_closurec                 C   s*   |   ¡  | j ¡ D ]}tƒ  | ¡  qd S r	   )r\   rU   rW   r[   Úreport_full_closurerY   r   r   r   r^   è   s    zdircmp.report_full_closure)rU   rQ   rR   rS   rF   rG   rH   rB   rC   rD   r4   r5   c                 C   s*   || j krt|ƒ‚| j | | ƒ t| |ƒS r	   )Ú	methodmapÚAttributeErrorÚgetattr)r.   Úattrr   r   r   Ú__getattr__ô   s    
zdircmp.__getattr__)NN)Ú__name__Ú
__module__Ú__qualname__r1   r8   rE   rP   rT   rV   rX   r\   r]   r^   r9   r_   rc   r   r   r   r   r   V   s0   "
#
       üc                 C   sJ   g g g f}|D ]6}t j | |¡}t j ||¡}|t|||ƒ  |¡ q|S r	   )r   r<   rI   Ú_cmprK   )r/   r0   rB   r   ÚresrN   ZaxZbxr   r   r   r   ú   s    
c                 C   s0   z||| ||ƒƒ W S  t k
r*   Y dS X d S )Né   )rJ   )r/   r0   ZshÚabsr   r   r   r   rg     s    rg   c                 C   s   t t|j| ƒƒS r	   )r>   r   rA   )ZflistÚskipr   r   r   r2     s    r2   c                  C   sr   dd l } dd l}| | jdd … d¡\}}t|ƒdkrB| dd ¡‚t|d |d ƒ}d|krf| ¡  n| ¡  d S )Nr   r   Úrri   zneed exactly two args)z-rÚ )ÚsysÚgetoptÚargvr   ZGetoptErrorr   r^   r\   )rn   ro   ZoptionsÚargsZddr   r   r   Údemo$  s    
rr   Ú__main__)T)T)r   r   Ú	itertoolsr   Ú__all__r
   r"   r   r   r   r   r   r   r   rj   rg   r2   rr   rd   r   r   r   r   Ú<module>   s4          ÿ
' %
	