U e5df&ã@s°ddlZddlZddlmZdddddgZiZdZd d d d d dddgZdd„Zd!dd„Z dd„Z dd„Z Gdd„dƒZ d"dd„Z ee fdd„Zdd„Zdd„Zed kr¬eƒdS)#éN)Ú filterfalseÚ clear_cacheÚcmpÚdircmpÚcmpfilesÚDEFAULT_IGNORESi ZRCSZCVSZtagsz.gitz.hgz.bzrZ_darcsÚ __pycache__cCs t ¡dS©N)Ú_cacheÚclear©r r ú/usr/lib64/python3.8/filecmp.pyrsTcCsªtt |¡ƒ}tt |¡ƒ}|dtjks8|dtjkrt  |¡rú|j  |¡n&t  |¡�r|j  |¡n |j  |¡q|j  |¡qdS)Nrr)Ú common_dirsÚ common_filesÚ common_funnyrBrr<Újoinr(r)rÚOSErrorrrÚappendÚS_ISDIRÚS_ISREG) r.ÚxZa_pathZb_pathÚokZa_statZwhyZb_statZa_typeZb_typer r r Úphase2“s4     z dircmp.phase2cCs&t|j|j|jƒ}|\|_|_|_dSr )rr(r)rGÚ same_filesÚ diff_filesÚ funny_files)r.Zxxr r r Úphase3¶sz dircmp.phase3cCsNi|_|jD]<}tj |j|¡}tj |j|¡}t|||j|j ƒ|j|<q dSr ) ÚsubdirsrFrr<rIr(r)rr-r,)r.rNZa_xZb_xr r r Úphase4ºs  z dircmp.phase4cCs$| ¡|j ¡D] }| ¡qdSr )rVrUÚvaluesÚphase4_closure©r.Zsdr r r rXÄ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) NZdiffzOnly inú:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :) Úprintr(r)rCr6rDrQrRrSrFrHr7r r r ÚreportÉs,           z dircmp.reportcCs*| ¡|j ¡D]}tƒ| ¡qdSr )r\rUrWr[rYr r r Úreport_partial_closureâszdircmp.report_partial_closurecCs*| ¡|j ¡D]}tƒ| ¡qdSr )r\rUrWr[Úreport_full_closurerYr r r r^èszdircmp.report_full_closure) rUrQrRrSrFrGrHrBrCrDr4r5cCs*||jkrt|ƒ‚|j||ƒt||ƒSr )Ú methodmapÚAttributeErrorÚgetattr)r.Úattrr r r Ú __getattr__ôs zdircmp.__getattr__)NN)Ú__name__Ú __module__Ú __qualname__r1r8rErPrTrVrXr\r]r^r9r_rcr r r r rVs0" # ücCsJgggf}|D]6}tj ||¡}tj ||¡}|t|||ƒ |¡q|Sr )rr<rIÚ_cmprK)r/r0rBrÚresrNZaxZbxr r r rús cCs0z|||||ƒƒ WStk r*YdSXdS)Né)rJ)r/r0ZshÚabsrr r r rgsrgcCstt|j|ƒƒSr )r>rrA)ZflistÚskipr r r r2sr2cCsrddl}ddl}| |jdd…d¡\}}t|ƒdkrB| dd¡‚t|d|dƒ}d|krf| ¡n| ¡dS)NrrÚrrizneed exactly two args)z-rÚ)ÚsysÚgetoptÚargvrZ GetoptErrorrr^r\)rnroZoptionsÚargsZddr r r Údemo$s   rrÚ__main__)T)T)rrÚ itertoolsrÚ__all__r r"rrrrrrrrjrgr2rrrdr r r r Ú s4 ÿ ' %