grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/20263 Õì2a™Iã @s4dddddddddd d d g Zd d lmZd dlmZed dƒZdd„ZGdd„dƒZ d7dd„Z dd„Z Gdd„dƒZ d dl Z e jdƒjfdd„Zd8dd„Zdd„Zd9d"d„Zd#d$„Zd:d%d„Zd&d'„Zd;d*d „Zdefd+d„Zddefd,d-„Zd.Zd/Zd0Zd1ZGd2d „d eƒZ[ d3d„Z d4d5„Z!e"d6k�r0e!ƒdS)<Úget_close_matchesÚndiffÚrestoreÚSequenceMatcherÚDifferÚIS_CHARACTER_JUNKÚ IS_LINE_JUNKÚ context_diffÚ unified_diffÚ diff_bytesÚHtmlDiffÚMatché)Únlargest)Ú namedtupleza b sizecCs|rd||SdS)Ng@gð?©)ÚmatchesÚlengthrrú,/opt/alt/python36/lib64/python3.6/difflib.pyÚ_calculate_ratio&s rc@speZdZddd„Zdd„Zdd „Zd d „Zd d „Zdd„Zdd„Z dd„Z ddd„Z dd„Z dd„Z dd„ZdS)rNÚTcCs(||_d|_|_||_|j||ƒdS)N)ÚisjunkÚaÚbÚautojunkÚset_seqs)ÚselfrrrrrrrÚ__init__—s; zSequenceMatcher.__init__cCs|j|ƒ|j|ƒdS)N)Úset_seq1Úset_seq2)rrrrrrr×s zSequenceMatcher.set_seqscCs$||jkrdS||_d|_|_dS)N)rÚmatching_blocksÚopcodes)rrrrrrãs zSequenceMatcher.set_seq1cCs2||jkrdS||_d|_|_d|_|jƒdS)N)rrr Ú fullbcountÚ_SequenceMatcher__chain_b)rrrrrrýs   zSequenceMatcher.set_seq2c Csü|j}i|_}x*t|ƒD]\}}|j|gƒ}|j|ƒqWtƒ|_}|j}|rŠx"|jƒD]}||ƒr\|j |ƒq\Wx|D] }||=q|Wtƒ|_ }t |ƒ} |j rø| dkrø| dd} x*|j ƒD]\}} t | ƒ| krÂ|j |ƒqÂWx|D] }||=qêWdS)NéÈédé)rÚb2jÚ enumerateÚ setdefaultÚappendÚsetÚbjunkrÚkeysÚaddZbpopularÚlenrÚitems) rrr&ÚiÚeltÚindicesZjunkrZpopularÚnZntestZidxsrrrZ __chain_b)s,          zSequenceMatcher.__chain_bcCsN|j|j|j|jjf\}}}}||d} } } i} g} x�t||ƒD]‚}| j}i}xn|j||| ƒD]Z}||krpqb||krzP||ddƒd}||<|| krb||d||d|} } } qbW|} qBWxb| |k�r*| |k�r*||| dƒ �r*|| d|| dk�r*| d| d| d} } } qÊWxX| | |k�r„| | |k�r„||| | ƒ �r„|| | || | k�r„| d7} �q.Wxb| |k�rè| |k�rè||| dƒ�rè|| d|| dk�rè| d| d| d} } } �qˆWxV| | |k�r@| | |k�r@||| | ƒ�r@|| | || | k�r@| d} �qìWt| | | ƒS)Nr r%)rrr&r+Ú __contains__ÚrangeÚgetr )rÚaloÚahiÚbloÚbhirrr&ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr0Zj2lengetZnewj2lenÚjÚkrrrÚfind_longest_matchPsB8$  "z"SequenceMatcher.find_longest_matchcCs„|jdk r|jSt|jƒt|jƒ}}d|d|fg}g}x”|rÌ|jƒ\}}}}|j||||ƒ\} } } } | r:|j| ƒ|| kr˜|| kr˜|j|| || fƒ| | |kr:| | |kr:|j| | || | |fƒq:W|jƒd} }}g}x^|D]V\}}}| ||k�r|||k�r||7}qì|�r2|j| ||fƒ|||} }}qìW|�r\|j| ||fƒ|j||dfƒtt t j |ƒƒ|_|jS)Nr ) rr.rrÚpopr=r)ÚsortÚlistÚmapr Ú_make)rÚlaÚlbZqueuerr7r8r9r:r0r;r<ÚxÚi1Új1Zk1Z non_adjacentÚi2Új2Zk2rrrÚget_matching_blocks¾s8    z#SequenceMatcher.get_matching_blockscCs´|jdk r|jSd}}g|_}xŒ|jƒD]€\}}}d}||krP||krPd}n||kr^d}n ||krjd}|r‚|j|||||fƒ||||}}|r,|jd||||fƒq,W|S)Nr rÚreplaceÚdeleteÚinsertÚequal)r rJr))rr0r;ZanswerÚaiÚbjÚsizeÚtagrrrÚ get_opcodess$  zSequenceMatcher.get_opcodeséc csr|jƒ}|sdg}|dddkrZ|d\}}}}}|t|||ƒ|t|||ƒ|f|d<|dddkr¢|d\}}}}}||t|||ƒ|t|||ƒf|d<||}g} x�|D]ˆ\}}}}}|dkoÔ|||k�r(| j||t|||ƒ|t|||ƒfƒ| Vg} t|||ƒt|||ƒ}}| j|||||fƒq´W| �rnt| ƒdk�ob| dddk �rn| VdS)NrNr r%)rNr r%r r%éÿÿÿÿrUrU)rSÚmaxÚminr)r.) rr3ZcodesrRrFrHrGrIÚnnÚgrouprrrÚget_grouped_opcodes<s(&&((z#SequenceMatcher.get_grouped_opcodescCs0tdd„|jƒDƒƒ}t|t|jƒt|jƒƒS)Ncss|]}|dVqdS)r%NrUr)Ú.0Ztriplerrrú „sz(SequenceMatcher.ratio..)ÚsumrJrr.rr)rrrrrÚrationszSequenceMatcher.ratiocCs²|jdkr8i|_}x"|jD]}|j|dƒd||<qW|j}i}|jd}}xH|jD]>}||ƒrl||}n |j|dƒ}|d||<|dkrV|d}qVWt|t|jƒt|jƒƒS)Nr r%)r!rr6r4rrr.)rr!r1ZavailZavailhasrZnumbrrrÚ quick_ratio‡s         zSequenceMatcher.quick_ratiocCs*t|jƒt|jƒ}}tt||ƒ||ƒS)N)r.rrrrW)rrCrDrrrÚreal_quick_ratio¤sz SequenceMatcher.real_quick_ratio)NrrT)rT)Ú__name__Ú __module__Ú __qualname__rrrrr"r=rJrSrZr^r_r`rrrrr+sl @ ,'nG7 2rTç333333ã?cCs¶|dkstd|fƒ‚d|ko(dkns 0: %rggð?z cutoff must be in [0.0, 1.0]: %rcSsg|] \}}|‘qSrr)r[ZscorerErrrú Þsz%get_close_matches..) Ú ValueErrorrrrr`r_r^r)Ú _nlargest)ZwordZ possibilitiesr3ÚcutoffÚresultÚsrErrrr°s       cCs4dt|ƒ}}x ||kr.|||kr.|d7}qW|S)Nr r%)r.)ÚlineÚchr0r3rrrÚ_count_leadingàs  rmc@sFeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)rNcCs||_||_dS)N)ÚlinejunkÚcharjunk)rrnrorrrrMszDiffer.__init__c cs²t|j||ƒ}xž|jƒD]’\}}}}}|dkrD|j||||||ƒ} n\|dkr^|jd|||ƒ} nB|dkrx|jd|||ƒ} n(|dkr’|jd|||ƒ} ntd|fƒ‚| EdHqWdS) NrKrLú-rMú+rNú zunknown tag %r)rrnrSÚ_fancy_replaceÚ_dumprf) rrrÚcruncherrRr7r8r9r:ÚgrrrÚcomparedszDiffer.compareccs*x$t||ƒD]}d|||fVq WdS)Nz%s %s)r5)rrRrEÚloÚhir0rrrrt�sz Differ._dumpc csr||||kr2|jd|||ƒ}|jd|||ƒ}n |jd|||ƒ}|jd|||ƒ}x||fD]} | EdHq\WdS)Nrqrp)rt) rrr7r8rr9r:ÚfirstÚsecondrvrrrÚ_plain_replace’szDiffer._plain_replaceccsHd\}}t|jƒ} d\} } xžt||ƒD]�} || } | j| ƒxxt||ƒD]j}||}|| krp| dkrH|| } } qH| j|ƒ| jƒ|krH| jƒ|krH| jƒ|krH| jƒ|| }}}qHWq&W||k�rü| dkrê|j||||||ƒEdHdS| | d}}}nd} |j ||||||ƒEdH||||}}| dk�rd}}| j ||ƒx´| j ƒD]¨\}}}}}||||}}|dk�r˜|d|7}|d|7}nb|dk�r°|d|7}nJ|d k�rÈ|d |7}n2|d k�rì|d |7}|d |7}nt d |fƒ‚�qTW|j ||||ƒEdHn d|V|j ||d|||d|ƒEdHdS)Nç®Gáz®ç?çè?gð?rrKú^rLrprMrqrNrrzunknown tag %rz r%)r}r~)NN)rror5rrr`r_r^r|Ú _fancy_helperrrSrfÚ_qformat)rrr7r8rr9r:Z best_ratiorhruZeqiZeqjr;rPr0rOZbest_iZbest_jZaeltZbeltÚatagsÚbtagsrRZai1Zai2Zbj1Zbj2rCrDrrrrs sX                 zDiffer._fancy_replaceccsbg}||kr<||kr*|j||||||ƒ}qT|jd|||ƒ}n||krT|jd|||ƒ}|EdHdS)Nrprq)rsrt)rrr7r8rr9r:rvrrrr€þszDiffer._fancy_helperccsªtt|dƒt|dƒƒ}t|t|d|…dƒƒ}t|t|d|…dƒƒ}||d…jƒ}||d…jƒ}d|V|r†dd||fVd|V|r¦dd||fVdS)Nú rrz- z? %s%s z+ )rWrmÚrstrip)rZalineZbliner‚rƒÚcommonrrrr� s    zDiffer._qformat)NN) rarbrcrrwrtr|rsr€r�rrrrrïs^ )^ Nz \s*(?:#\s*)?$cCs ||ƒdk S)Nr)rkZpatrrrr>sú cCs||kS)Nr)rlZwsrrrrNscCs:|d}||}|dkr"dj|ƒS|s.|d8}dj||ƒS)Nr%z{}z{},{})Úformat)ÚstartÚstopÚ beginningrrrrÚ_format_range_unifiedes rŒrÚ ccsht|||||||ƒd}�xHtd||ƒj|ƒD�]0} |s€d}|rJdj|ƒnd} |r\dj|ƒnd} dj|| |ƒVdj|| |ƒV| d| d} } t| d| d ƒ}t| d | d ƒ}d j|||ƒVx˜| D]�\}}}}}|d k�rx|||…D]}d|VqòWqÌ|dk�r2x |||…D]}d|V�qW|dkrÌx |||…D]}d|V�qHWqÌWq.WdS)NFTz {}rz --- {}{}{}z +++ {}{}{}r r%érTéz@@ -{} +{} @@{}rNrrrKrLrprMrqrU>rKrL>rKrM)Ú _check_typesrrZrˆrŒ)rrÚfromfileÚtofileÚ fromfiledateÚ tofiledater3ÚlinetermÚstartedrYÚfromdateÚtodaterzÚlastÚ file1_rangeÚ file2_rangerRrFrHrGrIrkrrrr ps0)  cCsB|d}||}|s|d8}|dkr.dj|ƒSdj|||dƒS)Nr%z{}z{},{})rˆ)r‰rŠr‹rrrrÚ_format_range_context¹s rœccsªt|||||||ƒtddddd�}d} �xztd||ƒj|ƒD�]b} | s�d} |rZdj|ƒnd } |rldj|ƒnd } d j|| |ƒVd j|| |ƒV| d | d} }d|Vt| d |dƒ}dj||ƒVtdd„| Dƒƒ�r&xD| D]<\}}}}}|dkræx$|||…D]}|||V�q WqæWt| d|dƒ}dj||ƒVtdd„| Dƒƒr>xH| D]@\}}}}}|dk�r^x$|||…D]}|||V�q„W�q^Wq>WdS)Nz+ z- z! z )rMrLrKrNFTz {}rz *** {}{}{}z --- {}{}{}r r%z***************rŽz *** {} ****{}css |]\}}}}}|dkVqdS)rKrLN>rKrLr)r[rRÚ_rrrr\szcontext_diff..rMrTr�z --- {} ----{}css |]\}}}}}|dkVqdS)rKrMN>rKrMr)r[rRr�rrrr\ srLrU)r�ÚdictrrZrˆrœÚany)rrr‘r’r“r”r3r•Úprefixr–rYr—r˜rzr™ršrRrFrHr�rkr›rGrIrrrrÅs4,  cGsŽ|r2t|dtƒ r2tdt|dƒj|dfƒ‚|rdt|dtƒ rdtdt|dƒj|dfƒ‚x$|D]}t|tƒsjtd|fƒ‚qjWdS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)Ú isinstanceÚstrÚ TypeErrorÚtypera)rrÚargsÚargrrrr�s  r�óó c cs‚dd„} tt| |ƒƒ}tt| |ƒƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}|||||||||ƒ} x| D]} | jddƒVqhWdS)NcSsPy |jddƒStk rJ}z"dt|ƒj|f}t|ƒ|‚WYdd}~XnXdS)NÚasciiÚsurrogateescapez(all arguments must be bytes, not %s (%r))ÚdecodeÚAttributeErrorr¤rar£)rjÚerrÚmsgrrrr«-s  zdiff_bytes..decoder©rª)r@rAÚencode) Zdfuncrrr‘r’r“r”r3r•r«Úlinesrkrrrr "s  cCst||ƒj||ƒS)N)rrw)rrrnrorrrr@s#c #sœddl}|jdƒ‰t||||ƒ‰ddgf‡fdd„ ‰‡‡fdd„‰‡fdd„}|ƒ}|dkrj|EdH�n.|d 7}d}�xddg|} } d } xR| d kràyt|ƒ\} } } Wntk r¾dSX| |}| | | f| |<| d 7} q�W| |k�rød V|}n| }d} x.|�r.| |}| d 7} | |V|d 8}�qW|d }yDx>|�rxt|ƒ\} } } | �r`|d }n|d 8}| | | fV�q._make_line..record_sub_infoúúrr)r>ÚsubÚreversed) r°Z format_keyÚsideZ num_linesÚtextZmarkersr³r´ÚkeyZbeginÚend)Ú change_rerrÚ _make_line�s   4z_mdiff.._make_linec3s€g}d\}}�xlx t|ƒdkr0|jtˆdƒƒqWdjdd„|Dƒƒ}|jdƒrX|}�nÄ|jdƒr„ˆ|ddƒˆ|dd ƒd fVq�n˜|jd ƒr°|d 8}ˆ|d dƒdd fVq�nl|jdƒrÞˆ|d dƒd}}|d d}}�n>|jdƒ�r ˆ|ddƒˆ|dd ƒd fVq�n|jdƒ�r8ˆ|ddƒˆ|dd ƒd fVqnä|jd ƒ�rd|d 8}ˆ|d dƒdd fVqn¸|jdƒ�r�|d 7}dˆ|dd ƒd fVqnŒ|jdƒ�r¾dˆ|dd ƒ}}|d d}}n^|jdƒ�rê|d 7}dˆ|dd ƒd fVqn2|jdƒ�rˆ|dd…ddƒˆ|dd ƒdfVqx|dk�r:|d 7}dV�qWx|dk�rZ|d 8}dV�q>W|jdƒ�rldS||d fVqWdS) Nr r�ÚXrcSsg|] }|d‘qS)r r)r[rkrrrreÝsz2_mdiff.._line_iterator..z-?+?r±r%Tz--++rpú--?+ú--+ú- z-+?z-?+z+--rqú+ ú+-rrFr�)r r )rÀrÁrÂ)rÃrÄ©rr�)NrÅT©rr�)rÆNT)r.r)ÚnextÚjoinÚ startswith)r°Znum_blanks_pendingZnum_blanks_to_yieldrjÚ from_lineÚto_line)r¾Údiff_lines_iteratorrrÚ_line_iteratorÇsf           $     z_mdiff.._line_iteratorc 3s¸ˆƒ}gg}}x¢xpt|ƒdks,t|ƒdkr‚yt|ƒ\}}}Wntk rRdSX|dk rj|j||fƒ|dk r|j||fƒqW|jdƒ\}}|jdƒ\}}|||pª|fVqWdS)Nr )r.rÇÚ StopIterationr)r>)Z line_iteratorÚ fromlinesÚtolinesrÊrËÚ found_diffZfromDiffZto_diff)rÍrrÚ_line_pair_iterators  z#_mdiff.._line_pair_iteratorr%F)NNN)ÚreÚcompilerrÇrÎ)rÏrÐÚcontextrnrorÓrÒZline_pair_iteratorZlines_to_writeÚindexZ contextLinesrÑrÊrËr0r)rÍr¾r½rÌrÚ_mdiffesT" 8X !     r×an %(table)s%(legend)s aH table.diff {font-family:Courier; border:medium;} .diff_header {background-color:#e0e0e0} td.diff_header {text-align:right} .diff_next {background-color:#c0c0c0} .diff_add {background-color:#aaffaa} .diff_chg {background-color:#ffff77} .diff_sub {background-color:#ffaaaa}aZ %(header_row)s %(data_rows)s
aõ
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op
c@s„eZdZeZeZeZeZdZdddefdd„Z dd d œd d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zddd„ZdS)r r éNcCs||_||_||_||_dS)N)Ú_tabsizeÚ _wrapcolumnÚ _linejunkÚ _charjunk)rÚtabsizeZ wrapcolumnrnrorrrrÁs zHtmlDiff.__init__rFézutf-8)Úcharsetc Cs:|jt|j|j|j||||||d�|d�j|dƒj|ƒS)N)rÕÚnumlines)ZstylesZlegendÚtablerßÚxmlcharrefreplace)Ú_file_templateržÚ_stylesÚ_legendÚ make_tabler¯r«)rrÏrÐÚfromdescÚtodescrÕràrßrrrÚ make_fileÒs  zHtmlDiff.make_filecs8‡fdd„‰‡fdd„|Dƒ}‡fdd„|Dƒ}||fS)Ncs6|jddƒ}|jˆjƒ}|jddƒ}|jddƒjdƒS)Nrrrµr„r�)rKÚ expandtabsrÙr…)rk)rrrÚ expand_tabs÷s   z2HtmlDiff._tab_newline_replace..expand_tabscsg|] }ˆ|ƒ‘qSrr)r[rk)rërrresz1HtmlDiff._tab_newline_replace..csg|] }ˆ|ƒ‘qSrr)r[rk)rërrresr)rrÏrÐr)rërrÚ_tab_newline_replaceís zHtmlDiff._tab_newline_replacec Cs|s|j||fƒdSt|ƒ}|j}||ksB||jdƒd|krT|j||fƒdSd}d}d}xd||krÄ||krÄ||dkr˜|d7}||}|d7}qb||dkr²|d7}d}qb|d7}|d7}qbW|d|…} ||d…} |rö| d} d|| } |j|| fƒ|j|d| ƒdS)NrµrTr rr%r¶ú>)r)r.rÚÚcountÚ _split_line) rZ data_listZline_numrºrQrVr0r3ZmarkZline1Zline2rrrrïs8        zHtmlDiff._split_linec cs¨x¢|D]š\}}}|dkr&|||fVq||\}}\}}gg} } |j| ||ƒ|j| ||ƒx@| sh| rž| rx| jdƒ}nd}| rŒ| jdƒ}nd}|||fVq`WqWdS)Nr rrr)rrr)rrr)rïr>) rÚdiffsÚfromdataÚtodataÚflagZfromlineZfromtextZtolineZtotextÚfromlistÚtolistrrrÚ _line_wrapper;s      zHtmlDiff._line_wrapperc Cs–ggg}}}xz|D]r\}}}y4|j|jd|f|žŽƒ|j|jd|f|žŽƒWn(tk r||jdƒ|jdƒYnX|j|ƒqW|||fS)Nr r%)r)Ú _format_liner£)rrðrôrõÚflaglistrñròrórrrÚ_collect_linesWs zHtmlDiff._collect_linesc Csryd|}d|j||f}Wntk r6d}YnX|jddƒjddƒjdd ƒ}|jd d ƒjƒ}d |||fS) Nz%dz id="%s%s"rú&z&ríz>ú%s%s)Ú_prefixr£rKr…)rr¹róZlinenumrºÚidrrrr÷ls zHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r%)r Ú_default_prefixrü)rZ fromprefixÚtoprefixrrrÚ _make_prefixƒs  zHtmlDiff._make_prefixcCsø|jd}dgt|ƒ}dgt|ƒ}d \} } d} xbt|ƒD]V\} } | rŽ| s’d} | } td| |gƒ} d|| f|| <| d7} d|| f|| <qnz2 No Differences Found z( Empty File z!fz#t)r F)rür.r'rV)rrôrõrørÕràrÿÚnext_idÚ next_hrefZnum_chgZ in_changer™r0rórrrÚ_convert_flagsŽs:    zHtmlDiff._convert_flagsc CsV|jƒ|j||ƒ\}}|r"|}nd}t||||j|jd�}|jrL|j|ƒ}|j|ƒ\} } } |j| | | ||ƒ\} } } } } g}d}x`t t | ƒƒD]P}| |dkr²|dkrÞ|j dƒqŽ|j || || || || || |fƒqŽW|sì|�rddd|dd|f}nd }|j t d j|ƒ||jd d �}|jd d ƒjddƒjddƒjddƒjddƒS)N)rnroz1 %s%sz%%s%s r z) z %s%s%s%sz!
z+%srr%)Z data_rowsÚ header_rowr z+zz-zz^zr¶zr„z zV %s%s%s%s )rrìr×rÛrÜrÚrörùrr5r.r)Ú_table_templateržrÈrürK)rrÏrÐrçrèrÕràZ context_linesrðrôrõrørrrjZfmtr0rrárrrræ½sJ       zHtmlDiff.make_table)rrFrÞ)rrFrÞ)rarbrcrãrärrårþrrrérìrïrörùr÷rrrærrrrr «s$ 7 /c cspydddœt|ƒ}Wn tk r6td|ƒ‚YnXd|f}x*|D]"}|dd…|krF|dd…VqFWdS)Nz- z+ )r%rŽz)unknown delta choice (must be 1 or 2): %rz rŽ)ÚintÚKeyErrorrf)ZdeltaZwhichrRÚprefixesrkrrrr s cCsddl}ddl}|j|ƒS)Nr )ÚdoctestÚdifflibZtestmod)r r rrrÚ_test,sr Ú__main__)rTrd)r‡)rrrrrTr�)rrrrrTr�)r§r§r§r§rTr¨)#Ú__all__ÚheapqrrgÚ collectionsrZ _namedtupler rrrrmrrÓrÔÚmatchrrrŒr rœrr�r rr×rãrärråÚobjectr rr rarrrrÚs\     0O   H  K % !  a