a XC?h('ã@s®dZddlZddlZddlmZddlmZgd¢ZiZdZ gd¢Z dd „Z dd d „Z d d„Z dd„ZGdd„dƒZddd„Zee fdd„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__cCs t ¡dS)zClear the filecmp cache.N)Ú_cacheÚclear©r r ú,/opt/alt/python39/lib64/python3.9/filecmp.pyrsrTcCsªtt |¡ƒ}tt |¡ƒ}|dtjks8|dtjkr 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Úbr.r-r r r Ú__init__zszdircmp.__init__cCsPtt |j¡|j|jƒ|_tt |j¡|j|jƒ|_|j  ¡|j  ¡dSr) Ú_filterrÚlistdirr)r-r.Ú left_listr*Ú right_listÚsort©r/r r r Ú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Únormcaser5r6ÚlistÚ __getitem__ÚfilterÚ __contains__ÚcommonrÚ left_onlyÚ right_only)r/r0r1r r r Ú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  |¡ns(    ( (