f' ddlZddlZddlmZddlmZgdZiZdZgdZ dZ dd Z d Z d Z Gd d ZddZee fdZdZdZedkr edSdS)N) filterfalse) GenericAlias) clear_cachecmpdircmpcmpfilesDEFAULT_IGNORESi )RCSCVStagsz.gitz.hgz.bzr_darcs __pycache__c: tdSN)_cacheclear./opt/alt/python311/lib64/python3.11/filecmp.pyrrs" LLNNNNNrTc ttj|}ttj|}|dtjks|dtjkrdS|r||krdS|d|dkrdSt||||f}|Dt ||}ttdkrt|t||||f<|S)NrFTd) _sigosstatS_IFREGrget_do_cmplenr)f1f2shallows1s2outcomes rrrs, bgbkk  B bgbkk  B !u 1 5 5u288t !u1~~ujj"b"b)**G"b// v;;   MMM!(r2r2~ NrcNtj|j|j|jfSr)rS_IFMTst_modest_sizest_mtime)sts rrrFs% K # # J K rcjt}t|d5}t|d5} ||}||}||kr dddddddS|s dddddddSe#1swxYwYddddS#1swxYwYdS)NrbTF)BUFSIZEopenread)r r!bufsizefp1fp2b1b2s rrrKsG b$3R# '""B'""BRxx    sFB(3B B(4B7 B(BB B(B B((B,/B,ceZdZ ddZdZdZdZdZdZdZ d Z d Z d Z e eeeeeeeeeeee Zd ZeeZdS)rNc||_||_|tjtjg|_n||_|t |_dS||_dSr)leftrightrcurdirpardirhider ignore)selfabr=r<s r__init__zdircmp.__init__|sI  <BI.DIIDI >)DKKK DKKKrcNttj|j|j|jz|_ttj|j|j|jz|_|j |j dSr) _filterrlistdirr8r<r= left_listr9 right_listsortr>s rphase0z dircmp.phase0s DI!6!6!%4;!688!"*TZ"8"8"&)DK"799  rc rttttjj|j|j}ttttjj|j|j}tt|j t|j ||_ tt|j t|j ||_tt|j t|j ||_dSr)dictzipmaprpathnormcaserErFlist __getitem__filter __contains__commonr left_only right_only)r>r?r@s rphase1z dircmp.phase1s S)4>::DNKK L L S)4?;;T_MM N N3q}fQ^Q.G.GHHII c!-Q^Q1O1OPPQQs1=+ana2P2PQQRRrcVg|_g|_g|_|jD]}tj|j|}tj|j|}d} t j |}n#t$rd}YnwxYw t j |}n#t$rd}YnwxYw|rtj |j }tj |j }||kr|j |tj|r|j |$tj|r|j |T|j |p|j |dS)Nrr) common_dirs common_files common_funnyrTrrNjoinr8r9rOSErrorr'r(appendS_ISDIRS_ISREG) r>xa_pathb_pathoka_statb_stata_typeb_types rphase2z dircmp.phase2s , ,AW\\$)Q//FW\\$*a00FB           ,V^44V^44V##%,,Q////\&))0$++A....\&))0%,,Q////%,,Q////!((++++9 , ,s$-B BBB** B98B9cpt|j|j|j}|\|_|_|_dSr)rr8r9rZ same_files diff_files funny_files)r>xxs rphase3z dircmp.phase3s3 diT-> ? ?=?:$*:*:*:rci|_|jD]v}tj|j|}tj|j|}||||j|j |j|<wdSr) subdirsrYrrNr\r8r9 __class__r=r<)r>raa_xb_xs rphase4z dircmp.phase4s|  ! P PA',,ty!,,C',,tz1--C#~~c3 TYOODLOO P Prc||jD]}|dSr)rurqvaluesphase4_closurer>sds rrxzdircmp.phase4_closuresK ,%%''  B         rcBtd|j|j|jr5|jtd|jd|j|jr5|jtd|jd|j|jr.|jtd|j|jr.|jtd|j|jr.|jtd|j|j r.|j td|j |j r0|j td|j dSdS) NdiffzOnly in:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :) printr8r9rUrGrVrkrlrmrYr[rHs rreportz dircmp.reports fdi,,, > = N   ! ! ! )TYT^ < < < ? ? O " " " )TZdo > > > ? 8 O " " " %t 7 7 7 ? 8 O " " " %t 7 7 7   C   ! ! # # # /1A B B B   ?   ! ! # # # +T-= > > >   =   " " $ $ $ ($*; < < < < < = =rc||jD]$}t|%dSr)rrqrwr~rys rreport_partial_closurezdircmp.report_partial_closuresN ,%%''  B GGG IIKKKK  rc||jD]$}t|%dSr)rrqrwr~report_full_closurerys rrzdircmp.report_full_closuresT ,%%'' % %B GGG  " " $ $ $ $ % %r) rqrkrlrmrYrZr[rTrUrVrErFc~||jvrt||j||t||Sr) methodmapAttributeErrorgetattr)r>attrs r __getattr__zdircmp.__getattr__sD t~ % % && &tT"""tT"""r)NN)__name__ __module__ __qualname__rArIrWrirorurxrrrrKrr classmethodr__class_getitem__rrrrrXs! F ! ! ! !SSS!,!,!,F@@@ P P P   ===2 %%% V &6v#)V"f%& :::I ### $ L11rrc gggf}|D]l}tj||}tj||}|t||||m|Sr)rrNr\_cmpr^)r?r@rTr"resraaxbxs rrrsz  r2,C -- W\\!Q   W\\!Q   DR ! !"))!,,,, JrcT ||||| S#t$rYdSwxYw)N)r])r?r@shabsrs rrrsH3ss1a}}%%%% qqs  ''cFtt|j|Sr)rPrrS)flistskips rrCrC&s  D-u55 6 66rcHddl}ddl}||jddd\}}t|dkr|ddt |d|d}d|vr|dS|dS)Nrrrrzneed exactly two args)z-r)sysgetoptargvr GetoptErrorrrr)rroptionsargsdds rdemor,sJJJMMMMM#(122,44MGT 4yyA~~  !8$??? Qa ! !BW       r__main__)T)rr itertoolsrtypesr__all__rr.r rrrrrrrrrCrrrrrrsO  !!!!!! I I I  JJJ&&&&P   g2g2g2g2g2g2g2g2T6777    zDFFFFFr