관리-도구
편집 파일: filecmp.cpython-39.opt-2.pyc
a �����DOg('����������������������@���s����d�dl�Z�d�dlZd�dlmZ�d�dlmZ�g�d�Zi�ZdZg�d�Z dd��Z dd d�Zdd ��Zdd��Z G�dd��d�Zddd�Zeefdd�Zdd��Zdd��Zedkr�e���dS�)�����N)�filterfalse)�GenericAlias)�clear_cache�cmp�dircmp�cmpfiles�DEFAULT_IGNORESi� ��)�RCS�CVS�tagsz.gitz.hgz.bzr�_darcs�__pycache__c�������������������C���s���t�����d�S��N)�_cache�clear��r���r����/usr/lib64/python3.9/filecmp.pyr������s����r���Tc�����������������C���s����t�t�|���}t�t�|��}|d�tjks8|d�tjkr<dS�|rL||krLdS�|d�|d�kr`dS�t�|�|||f�}|d�u�r�t|�|�}tt�dkr�t���|t|�|||f<�|S�)Nr���FT�����d���) �_sig�os�stat�S_IFREGr����get�_do_cmp�lenr���)�f1�f2�shallow�s1�s2�outcomer���r���r���r������s���� r���c�����������������C���s���t��|�j�|�j|�jfS�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}|�|�}|�|�}||krTW�d�����W�d�����dS�|sW�d�����W�d�����dS�qW�d�����n1�s�0����Y��W�d�����n1�s�0����Y��d�S�)N�rbFT)�BUFSIZE�open�read)r���r����bufsize�fp1�fp2�b1�b2r���r���r���r���K���s���� r���c�������������������@���s����e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Ze eeeeeeeeeeeed�Zdd��Zee�ZdS�)r���Nc�����������������C���sD���||�_�||�_|d�u�r$tjtjg|�_n||�_|d�u�r:t|�_n||�_d�S�r���)�left�rightr����curdir�pardir�hider����ignore)�self�a�br5���r4���r���r���r����__init__z���s����zdircmp.__init__c�����������������C���sP���t�t�|�j�|�j|�j��|�_t�t�|�j�|�j|�j��|�_|�j� ���|�j� ���d�S�r���) �_filterr����listdirr0���r4���r5���� left_listr1���� right_list�sort�r6���r���r���r����phase0����s���� � � z dircmp.phase0c�����������������C���s����t�tttjj|�j�|�j��}t�tttjj|�j�|�j��}tt|j t |j|���|�_tt|j t |j|���|�_tt|j t |j|���|�_d�S�r���)�dict�zip�mapr����path�normcaser<���r=����list�__getitem__�filter�__contains__�commonr���� left_only� right_only)r6���r7���r8���r���r���r����phase1����s ����z dircmp.phase1c����������� ��� ���C���s��g�|�_�g�|�_g�|�_|�jD�]�}tj�|�j|�}tj�|�j|�}d}zt� |�}W�n�t yd���d}Y�n0�zt� |�}W�n�t y����d}Y�n0�|r�t �|j�}t �|j�}||kr�|�j� |��n<t �|�r�|�j�� |��n$t �|�r�|�j� |��n|�j� |��q|�j� |��qd�S�)Nr���r���)�common_dirs�common_files�common_funnyrJ���r���rD����joinr0���r1���r����OSErrorr"���r#����append�S_ISDIR�S_ISREG) r6����x�a_path�b_path�ok�a_stat�b_stat�a_type�b_typer���r���r����phase2����s4���� z dircmp.phase2c�����������������C���s&���t�|�j|�j|�j�}|\|�_|�_|�_d�S�r���)r���r0���r1���rO���� same_files� diff_files�funny_files)r6����xxr���r���r����phase3����s����z dircmp.phase3c�����������������C���sN���i�|�_�|�jD�]<}tj�|�j|�}tj�|�j|�}t|||�j|�j �|�j�|<�qd�S�r���) �subdirsrN���r���rD���rQ���r0���r1���r���r5���r4���)r6���rV����a_x�b_xr���r���r����phase4����s ���� z dircmp.phase4c�����������������C���s$���|������|�j���D�]}|����qd�S�r���)rg���rd����values�phase4_closure�r6����sdr���r���r���ri�������s����zdircmp.phase4_closurec�����������������C���s����t�d|�j|�j��|�jr2|�j����t�d|�jd|�j��|�jrT|�j����t�d|�jd|�j��|�jrp|�j����t�d|�j��|�jr�|�j����t�d|�j��|�jr�|�j����t�d|�j��|�j r�|�j ����t�d|�j ��|�j r�|�j ����t�d|�j ��d�S�) N�diffzOnly in�:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :)�printr0���r1���rK���r>���rL���r_���r`���ra���rN���rP���r?���r���r���r����report����s,���� z dircmp.reportc�����������������C���s*���|������|�j���D�]}t���|�����qd�S�r���)ro���rd���rh���rn���rj���r���r���r����report_partial_closure����s����zdircmp.report_partial_closurec�����������������C���s*���|������|�j���D�]}t���|����qd�S�r���)ro���rd���rh���rn����report_full_closurerj���r���r���r���rq�������s����zdircmp.report_full_closure)rd���r_���r`���ra���rN���rO���rP���rJ���rK���rL���r<���r=���c�����������������C���s*���||�j�vrt|��|�j�|�|���t|�|�S�r���)� methodmap�AttributeError�getattr)r6����attrr���r���r����__getattr__����s���� zdircmp.__getattr__)NN)�__name__� __module__�__qualname__r9���r@���rM���r^���rc���rg���ri���ro���rp���rq���rA���rr���rv����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���rD���rQ����_cmprS���)r7���r8���rJ���r����resrV����ax�bxr���r���r���r�������s���� r���c�����������������C���s.���z|||�||���W�S��t�y(���Y�dS�0�d�S�)N����)rR���)r7���r8����sh�absr���r���r���r���r|�����s����r|���c�����������������C���s���t�t|j|���S�r���)rF���r���rI���)�flist�skipr���r���r���r:���#��s����r:���c������������������C���sr���dd�l�}�dd�l}|�|�jdd���d�\}}t|�dkrB|�dd���t|d�|d��}d|v�rf|����n|����d�S�)Nr���r����rr����zneed exactly two args)z-r��)�sys�getopt�argvr����GetoptErrorr���rq���ro���)r����r�����options�args�ddr���r���r����demo)��s���� r�����__main__)T)T)r���r���� itertoolsr����typesr����__all__r���r(���r���r���r���r���r���r���r���r����r|���r:���r����rw���r���r���r���r����<module> ���s&��� ( �(