%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/__pycache__/filecmp.cpython-38.pyc

U

naf&@sdZddlZddlZddlmZdddddgZiZd	Zd
ddd
ddddgZddZ	d"ddZ
ddZddZGdddZ
d#ddZee
fddZddZdd Zed!kredS)$zUtilities for comparing files and directories.

Classes:
    dircmp

Functions:
    cmp(f1, f2, shallow=True) -> int
    cmpfiles(a, b, common) -> ([], [], [])
    clear_cache()

N)filterfalseclear_cachecmpdircmpcmpfilesDEFAULT_IGNORESi ZRCSZCVSZtagsz.gitz.hgz.bzrZ_darcs__pycache__cCstdS)zClear the filecmp cache.N)_cacheclearrr#/usr/local/lib/python3.8/filecmp.pyrsTcCstt|}tt|}|dtjks8|dtjkr<dS|rL||krLdS|d|dkr`dSt||||f}|dkrt||}ttdkrt|t||||f<|S)aCompare two files.

    Arguments:

    f1 -- First file name

    f2 -- Second file name

    shallow -- Just check stat signature (do not read the files).
               defaults to 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().

    rFTNd)	_sigosstatS_IFREGr	get_do_cmplenr)f1f2shallows1s2Zoutcomerrrrs
cCst|j|j|jfSN)rS_IFMTst_modest_sizest_mtime)strrrrDs
rc
Cst}t|dn}t|dX}||}||}||krPW5QRW5QRdS|sW5QRW5QRdSqW5QRXW5QRXdS)NrbFT)BUFSIZEopenread)rrbufsizefp1fp2Zb1Zb2rrrrIs

rc@seZdZdZdddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ee	eeeeeeeeeeedZddZdS)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||_||_|dkr$tjtjg|_n||_|dkr:t|_n||_dSr)leftrightrcurdirpardirhiderignore)selfabr-r,rrr__init__xszdircmp.__init__cCsPtt|j|j|j|_tt|j|j|j|_|j	|j	dSr)
_filterrlistdirr(r,r-	left_listr)
right_listsortr.rrrphase0s


z
dircmp.phase0cCsttttjj|j|j}ttttjj|j|j}tt|j	t
|j||_tt|j	t
|j||_tt|j	t
|j||_dSr)dictzipmaprpathnormcaser4r5list__getitem__filter__contains__commonr	left_only
right_only)r.r/r0rrrphase1s
z
dircmp.phase1c
Cs4g|_g|_g|_|jD]}tj|j|}tj|j|}d}zt	|}Wn&t
k
rv}zd}W5d}~XYnXzt	|}Wn&t
k
r}zd}W5d}~XYnX|r"t	|j}t	|j}	||	kr|j
|n>t	|r|j
|n&t	|r|j
|n|j
|q|j
|qdS)Nr
r)common_dirscommon_filescommon_funnyrBrr<joinr(r)rOSErrorrrappendS_ISDIRS_ISREG)
r.xZa_pathZb_pathokZa_statwhyZb_statZa_typeZb_typerrrphase2s4
z
dircmp.phase2cCs&t|j|j|j}|\|_|_|_dSr)rr(r)rG
same_files
diff_filesfunny_files)r.Zxxrrrphase3sz
dircmp.phase3cCsNi|_|jD]<}tj|j|}tj|j|}t|||j|j	|j|<qdSr)
subdirsrFrr<rIr(r)rr-r,)r.rNZa_xZb_xrrrphase4s

z
dircmp.phase4cCs$||jD]}|qdSr)rWrVvaluesphase4_closurer.sdrrrrYszdircmp.phase4_closurecCstd|j|j|jr2|jtd|jd|j|jrT|jtd|jd|j|jrp|jtd|j|jr|jtd|j|jr|jtd|j|j	r|j	td|j	|j
r|j
td|j
dS)	NZdiffzOnly in:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :)printr(r)rCr6rDrRrSrTrFrHr7rrrreports,






z
dircmp.reportcCs*||jD]}t|qdSr)r^rVrXr]rZrrrreport_partial_closureszdircmp.report_partial_closurecCs*||jD]}t|qdSr)r^rVrXr]report_full_closurerZrrrr`szdircmp.report_full_closure)rVrRrSrTrFrGrHrBrCrDr4r5cCs*||jkrt||j||t||Sr)	methodmapAttributeErrorgetattr)r.attrrrr__getattr__s
zdircmp.__getattr__)NN)__name__
__module____qualname____doc__r1r8rErQrUrWrYr^r_r`r9rarerrrrrVs2!
#
cCsJgggf}|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.

    )rr<rI_cmprK)r/r0rBrresrNZaxZbxrrrrs
cCs0z|||||WStk
r*YdSXdS)N)rJ)r/r0shabsrrrrrjsrjcCstt|j|Sr)r>rrA)flistskiprrrr2sr2cCsrddl}ddl}||jddd\}}t|dkrB|ddt|d|d}d|krf|n|dS)Nrr
rrlzneed exactly two args)z-r)sysgetoptargvrZGetoptErrorrr`r^)rsrtoptionsargsddrrrdemo$s
ry__main__)T)T)rirr	itertoolsr__all__r	r"rrrrrrrrnrjr2ryrfrrrr<module>s6
'
%
	

Zerion Mini Shell 1.0