Qf( ddlZddlZddlmZddlmZgdZiZdZgdZ dZ ddZ d Z d Z Gd d Zdd Zee fdZdZdZedk(reyy)N) filterfalse) GenericAlias) clear_cachecmpdircmpcmpfilesDEFAULT_IGNORESi )RCSCVStagsz.gitz.hgz.bzr_darcs __pycache__c. tjyN)_cacheclear./opt/alt/python312/lib64/python3.12/filecmp.pyrrs" LLNrc ttj|}ttj|}|dtjk7s|dtjk7ry|r||k(ry|d|dk7rytj ||||f}|5t ||}ttdkDr t|t||||f<|S)NrFTd) _sigosstatS_IFREGrget_do_cmplenr)f1f2shallows1s2outcomes rrrs, bggbk B bggbk B !u 1 528 !u1~jj"b"b)*G"b/ v;  M!(r2r2~ Nrcntj|j|j|jfSr)rS_IFMTst_modest_sizest_mtime)sts rrrFs* KK # JJ KK rc"t}t|d5}t|d5} |j|}|j|}||k7r ddddddy|s ddddddyN#1swYnxYwdddy#1swYyxYw)NrbTF)BUFSIZEopenread)r r!bufsizefp1fp2b1b2s rrrKs}G b$3R#'"B'"BRx  !/s4 B*A0 BA0B/A00A9 5BBceZdZ ddZdZdZdZdZdZdZ d Z d Z d Z e eeeeeeeeeeee Zd ZeeZy)rNc||_||_|&tjtjg|_n||_| t |_y||_yr)leftrightrcurdirpardirhider ignore)selfabr=r<s r__init__zdircmp.__init__|sC  <BII.DIDI >)DK DKrcttj|j|j|j z|_ttj|j|j|j z|_|j j|jjyr) _filterrlistdirr8r<r= left_listr9 right_listsortr>s rphase0z dircmp.phase0sx DII!6!%4;;!68!"**TZZ"8"&))DKK"79  rc ttttjj |j |j }ttttjj |j|j}tt|jt|j||_ tt|jt|j||_tt|jt|j||_yr)dictzipmaprpathnormcaserErFlist __getitem__filter __contains__commonr left_only right_only)r>r?r@s rphase1z dircmp.phase1s S))4>>:DNNK L S))4??;T__M N3q}}fQ^^Q.GHI c!--Q^^Q1OPQs1==+anna2PQRrcg|_g|_g|_|jD]}tj j |j|}tj j |j|}d} t j|} t j|}|rtjj}tjj}||k7r|jj|tj|r|jj|tj |r|jj|K|jj|h|jj|y#ttf$rd}Y+wxYw#ttf$rd}Y-wxYw)NTF) common_dirs common_files common_funnyrTrrNjoinr8r9rOSError ValueErrorr'r(appendS_ISDIRS_ISREG) r>xa_pathb_pathoka_statb_stata_typeb_types rphase2z dircmp.phase2seAWW\\$))Q/FWW\\$**a0FB    V^^4V^^4V#%%,,Q/\\&)$$++A.\\&)%%,,Q/%%,,Q/!!((+=Z(   Z(  s$=F)G)F>=F>GGct|j|j|j}|\|_|_|_yr)rr8r9rZ same_files diff_files funny_files)r>xxs rphase3z dircmp.phase3s1 diiT->-> ?=?:$*:rcFi|_|jD]}tjj |j |}tjj |j |}|j|||j|j|j|<yr) subdirsrYrrNr\r8r9 __class__r=r<)r>rba_xb_xs rphase4z dircmp.phase4so  !!A'',,tyy!,C'',,tzz1-C#~~c3 TYYODLLO"rc|j|jjD]}|jyr)rvrrvaluesphase4_closurer>sds rryzdircmp.phase4_closures. ,,%%'B    (rctd|j|j|jr<|jj td|jd|j|j r<|j j td|jd|j |j r0|j j td|j |jr0|jj td|j|jr0|jj td|j|jr0|jj td|j|jr1|jj td|jyy) NdiffzOnly in:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :) printr8r9rUrGrVrlrmrnrYr[rHs rreportz dircmp.reportsE fdii, >> NN   ! )TYYT^^ < ?? OO " )TZZdoo > ?? OO " %t 7 ?? OO " %t 7       ! ! # /1A1A B       ! ! # +T-=-= >       " " $ ($*;*; < rc|j|jjD]}t|jyr)rrrrxrrzs rreport_partial_closurezdircmp.report_partial_closures0 ,,%%'B G IIK(rc|j|jjD]}t|j yr)rrrrxrreport_full_closurerzs rrzdircmp.report_full_closures3 ,,%%'B G  " " $(r) rrrlrmrnrYrZr[rTrUrVrErFcv||jvr t||j||t||Sr) methodmapAttributeErrorgetattr)r>attrs r __getattr__zdircmp.__getattr__s9 t~~ % & &tT"tT""r)NN)__name__ __module__ __qualname__rArIrWrjrprvryrrrrKrr classmethodr__class_getitem__rrrrrXsx! F !S#,J@ P =2 % V &6v!'f6"f%& :I # $L1rrc gggf}|D]a}tjj||}tjj||}|t|||j |c|Sr)rrNr\_cmpr_)r?r@rTr"resrbaxbxs rrrsi  r2,C  WW\\!Q  WW\\!Q  DR !"))!, JrcP ||||| S#ttf$rYywxYw)N)r]r^)r?r@shabsrs rrrs4s1a}%%% Z s %%c@tt|j|Sr)rPrrS)flistskips rrCrC(s  D--u5 66rcddl}ddl}|j|jddd\}}t|dk7r|j ddt |d|d}d|vr|j y|jy)Nrrrrzneed exactly two args)z-r)sysgetoptargvr GetoptErrorrrr)rroptionsargsdds rdemor.svMM#((12,4MGT 4yA~  !8$?? Qa !BW   r__main__)T)rr itertoolsrtypesr__all__rr.r rrrrrrrrrCrrrrrrs  ! I  J&P i2i2X67  zFr