OwlCyberSecurity - MANAGER
Edit File: filecmp.cpython-39.pyc
a ����?�g('����������������������@���s����d�Z�ddlZddlZddlmZ�ddlmZ�g�d�Zi�ZdZ g�d�Z dd ��Zddd�Zd d��Z dd��ZG�dd��d�Zddd�Zeefdd�Zdd��Zdd��Zedkr�e���dS�)z�Utilities for comparing files and directories. Classes: dircmp Functions: cmp(f1, f2, shallow=True) -> int cmpfiles(a, b, common) -> ([], [], []) clear_cache() �����N)�filterfalse)�GenericAlias)�clear_cache�cmp�dircmp�cmpfiles�DEFAULT_IGNORESi� ��)ZRCSZCVSZtagsz.gitz.hgz.bzrZ_darcs�__pycache__c�������������������C���s���t�����dS�)zClear the filecmp cache.N)�_cache�clear��r���r����,/opt/alt/python39/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�}|du�r�t|�|�}tt�dkr�t���|t|�|||f<�|S�)aM��Compare two files. Arguments: f1 -- First file name f2 -- Second file name shallow -- treat files as identical if their stat signatures (type, size, mtime) are identical. Otherwise, files are considered different if their sizes or contents differ. [default: True] Return value: True if the files are the same, False otherwise. This function uses a cache for past comparisons and the results, with cache entries invalidated if their stat information changes. The cache may be cleared by calling clear_cache(). r���FT����N�d���) �_sig�os�stat�S_IFREGr ����get�_do_cmp�lenr���)�f1�f2�shallow�s1�s2Zoutcomer���r���r ���r������s���� r���c�����������������C���s���t��|�j�|�j|�jfS��N)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�fp2Zb1Zb2r���r���r ���r���K���s���� r���c�������������������@���s����e�Zd�ZdZddd�Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z ee eeeeeeeeeeed�Zdd��Zee�ZdS�)r���aM��A class that manages the comparison of 2 directories. dircmp(a, b, ignore=None, hide=None) A and B are directories. IGNORE is a list of names to ignore, defaults to DEFAULT_IGNORES. HIDE is a list of names to hide, defaults to [os.curdir, os.pardir]. High level usage: x = dircmp(dir1, dir2) x.report() -> prints a report on the differences between dir1 and dir2 or x.report_partial_closure() -> prints report on differences between dir1 and dir2, and reports on common immediate subdirectories. x.report_full_closure() -> like report_partial_closure, but fully recursive. Attributes: left_list, right_list: The files in dir1 and dir2, filtered by hide and ignore. common: a list of names in both dir1 and dir2. left_only, right_only: names only in dir1, dir2. common_dirs: subdirectories in both dir1 and dir2. common_files: files in both dir1 and dir2. common_funny: names in both dir1 and dir2 where the type differs between dir1 and dir2, or the name is not stat-able. same_files: list of identical files. diff_files: list of filenames which differ. funny_files: list of files which could not be compared. subdirs: a dictionary of dircmp objects, keyed by names in common_dirs. Nc�����������������C���sD���||�_�||�_|d�u�r$tjtjg|�_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����zdircmp.__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�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�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�|�_|�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_funnyrC���r���r=����joinr)���r*���r����OSErrorr���r����append�S_ISDIR�S_ISREG) r/����xZa_pathZb_path�okZa_statZb_statZa_typeZb_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/���Zxxr���r���r ����phase3����s����z dircmp.phase3c�����������������C���sN���i�|�_�|�jD�]<}tj�|�j|�}tj�|�j|�}t|||�j|�j �|�j�|<�qd�S�r���) �subdirsrG���r���r=���rJ���r)���r*���r���r.���r-���)r/���rO���Za_xZb_xr���r���r ����phase4����s ���� z dircmp.phase4c�����������������C���s$���|������|�j���D�]}|����qd�S�r���)rW���rV����values�phase4_closure�r/���Zsdr���r���r ���rY�������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�) NZdiffzOnly in�:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon 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���|�����qd�S�r���)r]���rV���rX���r\���rZ���r���r���r ����report_partial_closure����s����zdircmp.report_partial_closurec�����������������C���s*���|������|�j���D�]}t���|����qd�S�r���)r]���rV���rX���r\����report_full_closurerZ���r���r���r ���r_�������s����zdircmp.report_full_closure)rV���rR���rS���rT���rG���rH���rI���rC���rD���rE���r5���r6���c�����������������C���s*���||�j�vrt|��|�j�|�|���t|�|�S�r���)� methodmap�AttributeError�getattr)r/����attrr���r���r ����__getattr__����s���� zdircmp.__getattr__)NN)�__name__� __module__�__qualname__�__doc__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�)a]��Compare common files in two directories. a, b -- directory names common -- list of file names found in both directories shallow -- if true, do comparison based solely on stat() information Returns a tuple of three lists: files that compare equal files that are different filenames that aren't regular files. )r���r=���rJ����_cmprL���)r0���r1���rC���r����resrO���ZaxZbxr���r���r ���r�������s���� r���c�����������������C���s.���z|||�||���W�S��t�y(���Y�dS�0�d�S�)N����)rK���)r0���r1���Zsh�absr���r���r���r ���rk�����s����rk���c�����������������C���s���t�t|j|���S�r���)r?���r���rB���)Zflist�skipr���r���r ���r3���#��s����r3���c������������������C���sr���dd�l�}�dd�l}|�|�jdd���d�\}}t|�dkrB|�dd���t|d�|d��}d|v�rf|����n|����d�S�)Nr���r����rrm���zneed exactly two args)z-r��)�sys�getopt�argvr���ZGetoptErrorr���r_���r]���)rr���rs���Zoptions�argsZddr���r���r ����demo)��s���� rv����__main__)T)T)rh���r���r���� itertoolsr����typesr����__all__r ���r#���r���r���r���r���r���r���r���rn���rk���r3���rv���re���r���r���r���r ����<module>���s(��� ( �(