Server IP : 66.235.200.170 / Your IP : 18.220.136.182 Web Server : Apache System : Linux gator4410.hostgator.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64 User : bmgxafte ( 1214) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib64/python3.9/__pycache__/ |
Upload File : |
a �DOg('�@s�dZddlZddlZddlmZddlmZgd�ZiZdZ gd�Z dd �Zddd�Zd d�Z dd�ZGdd�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 )�RCS�CVS�tagsz.gitz.hgz.bzr�_darcs�__pycache__cCst��dS)zClear the filecmp cache.N)�_cache�clear�rr�/usr/lib64/python3.9/filecmp.pyrsrTcCs�tt�|��}tt�|��}|dtjks8|dtjkr<dS|rL||krLdS|d|dkr`dSt�||||f�}|dur�t||�}tt�dkr�t�|t||||f<|S)aMCompare 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(). rFT�N�d) �_sig�os�stat�S_IFREGr�get�_do_cmp�lenr)�f1�f2�shallow�s1�s2�outcomerrrrs rcCst�|j�|j|jfS�N)r�S_IFMT�st_mode�st_size�st_mtime)�strrrrFs �rc Cs�t}t|d���}t|d��j}|�|�}|�|�}||krTWd�Wd�dS|sWd�Wd�dSqWd�n1s�0YWd�n1s�0YdS)N�rbFT)�BUFSIZE�open�read)rr�bufsize�fp1�fp2�b1�b2rrrrKs rc@s�eZdZdZddd�Zdd�Zdd�Zd d �Zdd�Zd d�Z dd�Z dd�Zdd�Zdd�Z ee eeeeeeeeeeed�Zdd�Zee�ZdS)raMA 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. NcCsD||_||_|dur$tjtjg|_n||_|dur:t|_n||_dSr!)�left�rightr�curdir�pardir�hider�ignore)�self�a�br5r4rrr�__init__zszdircmp.__init__cCsPtt�|j�|j|j�|_tt�|j�|j|j�|_|j� �|j� �dSr!) �_filterr�listdirr0r4r5� left_listr1� right_list�sort�r6rrr�phase0�s � � z dircmp.phase0cCs�ttttjj|j�|j��}ttttjj|j�|j��}tt|j t |j|���|_tt|j t |j|���|_tt|j t |j|���|_dSr!)�dict�zip�mapr�path�normcaser<r=�list�__getitem__�filter�__contains__�commonr� left_only� right_only)r6r7r8rrr�phase1�s z dircmp.phase1c Csg|_g|_g|_|jD]�}tj�|j|�}tj�|j|�}d}zt� |�}Wnt ydd}Yn0zt� |�}Wnt y�d}Yn0|r�t �|j�}t �|j�}||kr�|j� |�n<t �|�r�|j� |�n$t �|�r�|j� |�n|j� |�q|j� |�qdS)Nrr)�common_dirs�common_files�common_funnyrJrrD�joinr0r1r�OSErrorr"r#�append�S_ISDIR�S_ISREG) r6�x�a_path�b_path�ok�a_stat�b_stat�a_type�b_typerrr�phase2�s4 z dircmp.phase2cCs&t|j|j|j�}|\|_|_|_dSr!)rr0r1rO� same_files� diff_files�funny_files)r6�xxrrr�phase3�sz dircmp.phase3cCsNi|_|jD]<}tj�|j|�}tj�|j|�}t|||j|j �|j|<qdSr!) �subdirsrNrrDrQr0r1rr5r4)r6rV�a_x�b_xrrr�phase4�s z dircmp.phase4cCs$|��|j��D]}|��qdSr!)rgrd�values�phase4_closure�r6�sdrrrri�szdircmp.phase4_closurecCs�td|j|j�|jr2|j��td|jd|j�|jrT|j��td|jd|j�|jrp|j��td|j�|jr�|j��td|j�|jr�|j��td|j�|j r�|j ��td|j �|j r�|j ��td|j �dS) N�diffzOnly in�:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :)�printr0r1rKr>rLr_r`rarNrPr?rrr�report�s, z dircmp.reportcCs*|��|j��D]}t�|��qdSr!)rordrhrnrjrrr�report_partial_closure�szdircmp.report_partial_closurecCs*|��|j��D]}t�|��qdSr!)rordrhrn�report_full_closurerjrrrrq�szdircmp.report_full_closure)rdr_r`rarNrOrPrJrKrLr<r=cCs*||jvrt|��|j||�t||�Sr!)� methodmap�AttributeError�getattr)r6�attrrrr�__getattr__�s zdircmp.__getattr__)NN)�__name__� __module__�__qualname__�__doc__r9r@rMr^rcrgrirorprqrArrrv�classmethodr�__class_getitem__rrrrrXs&! # �rcCsJgggf}|D]6}tj�||�}tj�||�}|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. )rrDrQ�_cmprS)r7r8rJr�resrV�ax�bxrrrr�s rcCs.z|||||��WSty(YdS0dS)N�)rR)r7r8�sh�absrrrrr}sr}cCstt|j|��Sr!)rFrrI)�flist�skiprrrr:#sr:cCsrddl}ddl}|�|jdd�d�\}}t|�dkrB|�dd��t|d|d�}d|vrf|��n|��dS)Nrr�rr�zneed exactly two args)z-r�)�sys�getopt�argvr�GetoptErrorrrqro)r�r��options�args�ddrrr�demo)s r��__main__)T)T)rzrr� itertoolsr�typesr�__all__rr(rrrrrrrr�r}r:r�rwrrrr�<module>s( ( (