<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
a
    XC?h('                     @   s   d dl Z d dlZd dlmZ d dlmZ g dZi ZdZg d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re  dS )    N)filterfalse)GenericAlias)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/python39/lib64/python3.9/filecmp.pyr      s    r   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 u rt| |}ttdkrt  |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    
r   c                 C   s   t | j| j| jfS r
   )r   S_IFMTst_modest_sizest_mtime)str   r   r   r   F   s    
r   c              	   C   s   t }t| d}t|dj}||}||}||krTW d    W d    dS |sW d    W d    dS qW d    n1 s0    Y  W d    n1 s0    Y  d S )NrbFT)BUFSIZEopenread)r   r   bufsizefp1fp2Zb1Zb2r   r   r   r   K   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eeZdS )r   Nc                 C   sD   || _ || _|d u r$tjtjg| _n|| _|d u r:t| _n|| _d S r
   )leftrightr   curdirpardirhider   ignore)selfabr.   r-   r   r   r   __init__z   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normcaser5   r6   list__getitem__filter__contains__commonr   	left_only
right_only)r/   r0   r1   r   r   r   phase1   s
    zdircmp.phase1c           	   	   C   s  g | _ g | _g | _| jD ]}tj| j|}tj| j|}d}zt	|}W n t
yd   d}Y n0 zt	|}W n t
y   d}Y n0 |rt	|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_funnyrC   r   r=   joinr)   r*   r   OSErrorr   r   appendS_ISDIRS_ISREG)	r/   xZa_pathZb_pathokZa_statZ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*   rH   
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
   )
subdirsrG   r   r=   rJ   r)   r*   r   r.   r-   )r/   rO   Za_xZb_xr   r   r   phase4   s
    
zdircmp.phase4c                 C   s$   |    | j D ]}|  qd S r
   )rW   rV   valuesphase4_closurer/   Zsdr   r   r   rY      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*   rD   r7   rE   rR   rS   rT   rG   rI   r8   r   r   r   report   s,    






zdircmp.reportc                 C   s*   |    | j D ]}t  |   qd S r
   )r]   rV   rX   r\   rZ   r   r   r   report_partial_closure   s    zdircmp.report_partial_closurec                 C   s*   |    | j D ]}t  |  qd S r
   )r]   rV   rX   r\   report_full_closurerZ   r   r   r   r_      s    zdircmp.report_full_closure)rV   rR   rS   rT   rG   rH   rI   rC   rD   rE   r5   r6   c                 C   s*   || j vrt|| j | |  t| |S r
   )	methodmapAttributeErrorgetattr)r/   attrr   r   r   __getattr__   s    
zdircmp.__getattr__)NN)__name__
__module____qualname__r2   r9   rF   rQ   rU   rW   rY   r]   r^   r_   r:   r`   rd   classmethodr   __class_getitem__r   r   r   r   r   X   s$   "
#
r   c                 C   sJ   g g g f}|D ]6}t j| |}t j||}|t||| | q|S r
   )r   r=   rJ   _cmprL   )r0   r1   rC   r   resrO   ZaxZbxr   r   r   r      s    
r   c                 C   s.   z||| || W S  t y(   Y dS 0 d S )N   )rK   )r0   r1   Zshabsr   r   r   r   rj     s    rj   c                 C   s   t t|j| S r
   )r?   r   rB   )Zflistskipr   r   r   r3   #  s    r3   c                  C   sr   dd l } dd l}|| jdd  d\}}t|dkrB|dd t|d |d }d|v rf|  n|  d S )Nr   r   rrl   zneed exactly two args)z-r )sysgetoptargvr   ZGetoptErrorr   r_   r]   )rq   rr   ZoptionsargsZddr   r   r   demo)  s    
ru   __main__)T)T)r   r   	itertoolsr   typesr   __all__r   r#   r   r   r   r   r   r   r   rm   rj   r3   ru   re   r   r   r   r   <module>   s&   
( (
	