grthtrhthjhtyjytjytkergtrhtrjytjerhrfhU iÛfZHã @s4dddddddddd d d g Zd d lmZd dlmZed dƒZdd„ZGdd„dƒZ d7dd„Z dd„Z Gdd„dƒZ d dl Z e  d¡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@çð?©)ÚmatchesÚlengthrrú,/opt/alt/python38/lib64/python3.8/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|_|_||_| ||¡dS©N)ÚisjunkÚaÚbÚautojunkÚset_seqs)ÚselfrrrrrrrÚ__init__—s; zSequenceMatcher.__init__cCs| |¡| |¡dSr)Úset_seq1Úset_seq2)rrrrrrr×s zSequenceMatcher.set_seqscCs$||jkrdS||_d|_|_dSr)rÚmatching_blocksÚopcodes)rrrrrrãs zSequenceMatcher.set_seq1cCs2||jkrdS||_d|_|_d|_| ¡dSr)rr!r"Ú fullbcountÚ_SequenceMatcher__chain_b)rrrrrr ýs   zSequenceMatcher.set_seq2c Csè|j}i|_}t|ƒD]\}}| |g¡}| |¡qtƒ|_}|j}|r~| ¡D]}||ƒrV|  |¡qV|D] }||=qrtƒ|_ }t |ƒ} |j rä| dkrä| dd} |  ¡D]\}} t | ƒ| kr´|  |¡q´|D] }||=qØdS)NéÈédé)rÚb2jÚ enumerateÚ setdefaultÚappendÚsetÚbjunkrÚkeysÚaddZbpopularÚlenrÚitems) rrr(ÚiÚeltÚindicesZjunkrZpopularÚnZntestZidxsrrrZ __chain_b)s,           zSequenceMatcher.__chain_bcCs4|j|j|j|jjf\}}}}||d} } } i} g} t||ƒD]€}| j}i}| ||| ¡D]\}||krlq^||krxq¼||ddƒd}||<|| kr^||d||d|} } } q^|} q@| |k�r | |k�r ||| dƒ�s || d|| dk�r | d| d| d} } } qÂ| | |k�rt| | |k�rt||| | ƒ�st|| | || | k�rt| d7} �q | |k�rÔ| |k�rÔ||| dƒ�rÔ|| d|| dk�rÔ| d| d| d} } } �qt| | |k�r(| | |k�r(||| | ƒ�r(|| | || | k�r(| d} �qÔt| | | ƒS©Nr r')rrr(r-Ú __contains__ÚrangeÚgetr )rÚaloÚahiÚbloÚbhirrr(ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr2Zj2lengetZnewj2lenÚjÚkrrrÚfind_longest_matchPsR8"ÿþÿþ ÿþ ÿþ z"SequenceMatcher.find_longest_matchcCs||jdk r|jSt|jƒt|jƒ}}d|d|fg}g}|rÊ| ¡\}}}}| ||||¡\} } } } | r8| | ¡|| kr–|| kr–| || || f¡| | |kr8| | |kr8| | | || | |f¡q8| ¡d} }}g}|D]V\}}}| ||k�r|||k�r||7}qæ|�r,| | ||f¡|||} }}qæ|�rT| | ||f¡| ||df¡tt t j |ƒƒ|_|jS©Nr ) r!r0rrÚpopr@r+ÚsortÚlistÚmapr Ú_make)rÚlaÚlbZqueuer!r:r;r<r=r2r>r?ÚxÚi1Új1Zk1Z non_adjacentÚi2Új2Zk2rrrÚget_matching_blocks¾s8    z#SequenceMatcher.get_matching_blockscCs°|jdk r|jSd}}g|_}| ¡D]€\}}}d}||krN||krNd}n||kr\d}n ||krhd}|r€| |||||f¡||||}}|r*| d||||f¡q*|S)Nr rÚreplaceÚdeleteÚinsertÚequal)r"rNr+)rr2r>ZanswerÚaiÚbjÚsizeÚtagrrrÚ get_opcodess$  zSequenceMatcher.get_opcodeséc csn| ¡}|sdg}|dddkrZ|d\}}}}}|t|||ƒ|t|||ƒ|f|d<|dddkr¢|d\}}}}}||t|||ƒ|t|||ƒf|d<||}g} |D]Š\}}}}}|dk�r(|||k�r(|  ||t|||ƒ|t|||ƒf¡| Vg} t|||ƒt|||ƒ}}|  |||||f¡q²| �rjt| ƒdk�rd| dddk�sj| VdS)N)rRr r'r r'r rRéÿÿÿÿr')rWÚmaxÚminr+r0) rr5ZcodesrVrJrLrKrMZnnÚgrouprrrÚget_grouped_opcodes<s(&&(&z#SequenceMatcher.get_grouped_opcodescCs0tdd„| ¡Dƒƒ}t|t|jƒt|jƒƒS)Ncss|]}|dVqdS)rYNr)Ú.0ZtriplerrrÚ „sz(SequenceMatcher.ratio..)ÚsumrNrr0rr)rrrrrÚrationszSequenceMatcher.ratiocCsª|jdkr4i|_}|jD]}| |d¡d||<q|j}i}|jd}}|jD]>}||ƒrf||}n | |d¡}|d||<|dkrP|d}qPt|t|jƒt|jƒƒSr6)r#rr9r7rrr0)rr#r3ZavailZavailhasrZnumbrrrÚ quick_ratio‡s         zSequenceMatcher.quick_ratiocCs*t|jƒt|jƒ}}tt||ƒ||ƒSr)r0rrrr[)rrGrHrrrÚreal_quick_ratio¤sz SequenceMatcher.real_quick_ratio)NrrT)rX)Ú__name__Ú __module__Ú __qualname__rrrr r$r@rNrWr]rarbrcrrrrr+sl @ ,'nG7 2rXç333333ã?cCs°|dkstd|fƒ‚d|kr*dks:ntd|fƒ‚g}tƒ}| |¡|D]D}| |¡| ¡|krR| ¡|krR| ¡|krR| | ¡|f¡qRt||ƒ}dd„|DƒS)Nr zn must be > 0: %rgrz cutoff must be in [0.0, 1.0]: %rcSsg|] \}}|‘qSrr)r^ZscorerIrrrÚ Þsz%get_close_matches..) Ú ValueErrorrr rrcrbrar+Ú _nlargest)ZwordZ possibilitiesr5ÚcutoffÚresultÚsrIrrrr°s"    ÿ þ cCsd dd„t||ƒDƒ¡S)Nrcss*|]"\}}|dkr| ¡r|n|VqdS)ú N)Úisspace)r^ÚcZtag_crrrr_ãsÿz$_keep_original_ws..)ÚjoinÚzip)rmZtag_srrrÚ_keep_original_wsás þrsc@sFeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)rNcCs||_||_dSr©ÚlinejunkÚcharjunk)rrurvrrrrHszDiffer.__init__c cs®t|j||ƒ}| ¡D]’\}}}}}|dkrB| ||||||¡} n\|dkr\| d|||¡} nB|dkrv| d|||¡} n(|dkr�| d|||¡} ntd|fƒ‚| EdHqdS) NrOrPú-rQú+rRrnúunknown tag %r)rrurWÚ_fancy_replaceÚ_dumpri) rrrÚcruncherrVr:r;r<r=ÚgrrrÚcompare_szDiffer.compareccs&t||ƒD]}d|||fVq dS)Nz%s %s)r8)rrVrIÚloÚhir2rrrr{ˆsz Differ._dumpc csn||||kr2| d|||¡}| d|||¡}n | d|||¡}| d|||¡}||fD]} | EdHqZdS)Nrxrw)r{) rrr:r;rr<r=ÚfirstÚsecondr}rrrÚ_plain_replace�s zDiffer._plain_replaceccs:d\}}t|jƒ} d\} } t||ƒD]Œ} || } |  | ¡t||ƒD]j}||}|| krl| dkrD|| } } qD|  |¡|  ¡|krD|  ¡|krD|  ¡|krD|  ¡|| }}}qDq$||krò| dkrà| ||||||¡EdHdS| | d}}}nd} |  ||||||¡EdH||||}}| dk�r d}}|   ||¡|   ¡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ƒ‚�qH|  ||||¡EdHn d|V|  ||d|||d|¡EdHdS)N)g®Gáz®ç?gè?)NNrrrOú^rPrwrQrxrRrnryú r')rrvr8r rrcrbrarƒÚ _fancy_helperrrWriÚ_qformat)rrr:r;rr<r=Z best_ratiorkr|ZeqiZeqjr>rTr2rSZbest_iZbest_jZaeltZbeltÚatagsÚbtagsrVZai1Zai2Zbj1Zbj2rGrHrrrrz›s\      ÿ þ         zDiffer._fancy_replaceccsbg}||kr<||kr*| ||||||¡}qT| d|||¡}n||krT| d|||¡}|EdHdS)Nrwrx)rzr{)rrr:r;rr<r=r}rrrr†ùszDiffer._fancy_helperccsXt||ƒ ¡}t||ƒ ¡}d|V|r8d|›d�Vd|V|rTd|›d�VdS)Nú- z? Ú ú+ )rsÚrstrip)rZalineZblinerˆr‰rrrr‡s  zDiffer._qformat)NN) rdrerfrr~r{rƒrzr†r‡rrrrrês^ )^ Nz \s*(?:#\s*)?$cCs ||ƒdk Srr)ÚlineZpatrrrr3sú cCs||kSrr)ZchZwsrrrrCscCs:|d}||}|dkr"d |¡S|s.|d8}d ||¡S©Nr'z{}z{},{}©Úformat©ÚstartÚstopZ beginningrrrrÚ_format_range_unifiedZs r–rr‹ccsPt|||||||ƒd}td||ƒ |¡D�]} |s|d}|rFd |¡nd} |rXd |¡nd} d || |¡Vd || |¡V| d| d} } t| d | d ƒ}t| d | d ƒ}d  |||¡V| D]‚\}}}}}|dkrú|||…D]}d|VqèqÆ|dk�r"|||…D]}d|V�q|dkrÆ|||…D]}d|V�q6qÆq*dS)NFTú {}rú --- {}{}{}z +++ {}{}{}r rYr'érXéz@@ -{} +{} @@{}rRrn>rOrPrw>rOrQrx)Ú _check_typesrr]r’r–)rrÚfromfileÚtofileÚ fromfiledateÚ tofiledater5ÚlinetermÚstartedr\ÚfromdateÚtodater�ÚlastÚ file1_rangeÚ file2_rangerVrJrLrKrMrŽrrrr es0)  cCsB|d}||}|s|d8}|dkr.d |¡Sd |||d¡Sr�r‘r“rrrÚ_format_range_context®s r§ccs”t|||||||ƒtddddd�}d} td||ƒ |¡D�]R} | sŒd} |rVd |¡nd } |rhd |¡nd } d  || |¡Vd  || |¡V| d | d } }d|Vt| d|dƒ}d ||¡Vtdd„| Dƒƒ�r| D]8\}}}}}|dkrà|||…D]}|||V�qqàt| d|dƒ}d ||¡Vtdd„| Dƒƒr:| D]<\}}}}}|dk�rP|||…D]}|||V�qt�qPq:dS)NrŒrŠz! r…)rQrPrOrRFTr—rz *** {}{}{}r˜r rYz***************r'r™z *** {} ****{}css |]\}}}}}|dkVqdS)>rOrPNr©r^rVÚ_rrrr_÷s zcontext_diff..rQrXršz --- {} ----{}css |]\}}}}}|dkVqdS)>rOrQNrr¨rrrr_s rP)r›Údictrr]r’r§Úany)rrrœr�ržrŸr5r Úprefixr¡r\r¢r£r�r¤r¥rVrJrLr©rŽr¦rKrMrrrrºs4,  cGs†|r0t|dtƒs0tdt|dƒj|dfƒ‚|r`t|dtƒs`tdt|dƒj|dfƒ‚|D]}t|tƒsdtd|fƒ‚qddS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)Ú isinstanceÚstrÚ TypeErrorÚtyperd)rrÚargsÚargrrrr›sÿÿ r›óó c cs~dd„} tt| |ƒƒ}tt| |ƒƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}|||||||||ƒ} | D]} |  dd¡VqfdS)Nc SsRz| dd¡WStk rL}z dt|ƒj|f}t|ƒ|‚W5d}~XYnXdS)NÚasciiÚsurrogateescapez(all arguments must be bytes, not %s (%r))ÚdecodeÚAttributeErrorr°rdr¯)rmÚerrÚmsgrrrr·"s ÿzdiff_bytes..decoderµr¶)rDrEÚencode) Zdfuncrrrœr�ržrŸr5r r·ÚlinesrŽrrrr s cCst||ƒ ||¡Sr)rr~)rrrurvrrrr5s#c#sŠddl}| d¡‰t||||ƒ‰ddgf‡fdd„ ‰‡‡fdd„‰‡fdd„}|ƒ}|dkrj|EdH�n|d 7}d}ddg|} } d } | d krÜzt|ƒ\} } } Wntk rºYdSX| |}| | | f| |<| d 7} qŠ| |krðd V|}n| }d} |�r"| |}| d 7} | |V|d 8}qø|d }z@|�rht|ƒ\} } } | �rP|d }n|d 8}| | | fV�q,Wqvtk �r‚YdSXqvdS) Nr z (\++|\-+|\^+)c sö||d7<|dkr2||| d¡dd…fS|dkrÀ| d¡| d¡}}g}|fdd„}ˆ ||¡t|ƒD]<\}\} } |d| …d||| | …d|| d…}qt|dd…}n*| d¡dd…}|sÚd }d||d}|||fS) Nr'r r™ú?cSs&| | d¡d| ¡g¡| d¡S)Nr'r )r+r\Úspan)Z match_objectÚsub_inforrrÚrecord_sub_info¥sz3_mdiff.._make_line..record_sub_infoúúrn)rBÚsubÚreversed) r¼Z format_keyÚsideZ num_linesÚtextZmarkersr¿rÀÚkeyZbeginÚend)Ú change_rerrÚ _make_line„s   2z_mdiff.._make_linec3sng}d\}}t|ƒdkr*| tˆdƒ¡q d dd„|Dƒ¡}| d¡rP|}�nÄ| d¡r|ˆ|dd ƒˆ|dd ƒd fVq �n˜| d ¡r¨|d 8}ˆ|d d ƒdd fVq �nl| d¡rÖˆ|d d ƒd}}|d d }}�n>| d¡�rˆ|dd ƒˆ|dd ƒd fVq �n| d¡�r0ˆ|dd ƒˆ|dd ƒd fVq nä| d ¡�r\|d 8}ˆ|d d ƒdd fVq n¸| d¡�rˆ|d 7}dˆ|dd ƒd fVq nŒ| d¡�r¶dˆ|dd ƒ}}|d d }}n^| d¡�râ|d 7}dˆ|dd ƒd fVq n2| d¡�rˆ|dd…dd ƒˆ|dd ƒdfVq |d k�r0|d 7}dV�q|d k�rL|d 8}dV�q0| d¡�r\dS||d fVq dS)N)r r ršÚXrcSsg|] }|d‘qS)r r©r^rŽrrrrhÒsz2_mdiff.._line_iterator..z-?+?r½r r'Tz--++rw)z--?+z--+rŠz-+?z-?+z+--rx)rŒz+-rnF)N©rr‹T)rÍNT)r0r+ÚnextrqÚ startswith)r¼Znum_blanks_pendingZnum_blanks_to_yieldrmÚ from_lineÚto_line)rÊÚdiff_lines_iteratorrrÚ_line_iterator¼sd            $     z_mdiff.._line_iteratorc3s²ˆƒ}gg}}t|ƒdks(t|ƒdkr€zt|ƒ\}}}Wntk rPYdSX|dk rh| ||f¡|dk r| ||f¡q| d¡\}}| d¡\}}|||p¦|fVqdSrA)r0rÎÚ StopIterationr+rB)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ÖÚcontextrurvrÙrØZline_pair_iteratorZlines_to_writeÚindexZ contextLinesr×rÐrÑr2r)rÓrÊrÉrÒrÚ_mdiffZsR" 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||_||_||_||_dSr)Ú_tabsizeÚ _wrapcolumnÚ _linejunkÚ _charjunk)rÚtabsizeZ wrapcolumnrurvrrrr¶s zHtmlDiff.__init__rFézutf-8)Úcharsetc Cs:|jt|j|j|j||||||d�|d� |d¡ |¡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| dd¡}| ˆj¡}| dd¡}| dd¡ d¡S)NrnrÁú r‹)rOÚ expandtabsrßr�)rŽ)rrrÚ expand_tabsìs   z2HtmlDiff._tab_newline_replace..expand_tabscsg|] }ˆ|ƒ‘qSrrrÌ©ròrrrhõsz1HtmlDiff._tab_newline_replace..csg|] }ˆ|ƒ‘qSrrrÌrórrrhösr)rrÕrÖr)ròrrÚ_tab_newline_replaceâs zHtmlDiff._tab_newline_replacec Cs|s| ||f¡dSt|ƒ}|j}||ksB|| d¡d|krT| ||f¡dSd}d}d}||krÂ||krÂ||dkr–|d7}||}|d7}q`||dkr°|d7}d}q`|d7}|d7}q`|d|…} ||d…} |rò| d} d|| } | || f¡| |d| ¡dS)NrÁrXr rr'rÂú>)r+r0ràÚcountÚ _split_line) rZ data_listZline_numrÆrUrZr2r5ZmarkZline1Zline2rrrr÷ùs8        zHtmlDiff._split_linec cs |D]–\}}}|dkr$|||fVq||\}}\}}gg} } | | ||¡| | ||¡| sd| r| rt|  d¡}nd}| rˆ|  d¡}nd}|||fVq\qdS)Nr )rrn)r÷rB) rÚdiffsÚfromdataÚtodataÚflagZfromlineZfromtextZtolineZtotextÚfromlistÚtolistrrrÚ _line_wrapper0s     zHtmlDiff._line_wrapperc Cs’ggg}}}|D]r\}}}z4| |jd|f|žŽ¡| |jd|f|žŽ¡Wn(tk rz| d¡| d¡YnX| |¡q|||fSr6)r+Ú _format_liner¯)rrørürýÚflaglistrùrúrûrrrÚ_collect_linesLs  zHtmlDiff._collect_linescCsrzd|}d|j||f}Wntk r6d}YnX| dd¡ dd¡ dd ¡}| d d ¡ ¡}d |||fS) Nz%dz id="%s%s"rú&z&rõz>ú%s%s)Ú_prefixr¯rOr�)rrÅrûZlinenumrÆÚidrrrrÿas ÿzHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r')r Ú_default_prefixr)rZ fromprefixÚtoprefixrrrÚ _make_prefixxs  zHtmlDiff._make_prefixcCsô|jd}dgt|ƒ}dgt|ƒ}d\} } d} t|ƒD]V\} } | rŒ| s�d} | } td| |gƒ} d|| f|| <| d7} d|| f|| <q:d} q:|sÆdg}dg}dg}d} |r¼d g}|}n d g}}|dsÚd ||d<d ||| <|||||fS) Nr'r)r Fr Tz id="difflib_chg_%s_%d"z"nFz2 No Differences Found z( Empty File z!fz#t)rr0r)rZ)rrürýrrÛrærÚnext_idÚ next_hrefZnum_chgZ in_changer¤r2rûrrrÚ_convert_flagsƒs> ÿ    zHtmlDiff._convert_flagsc CsR| ¡| ||¡\}}|r"|}nd}t||||j|jd�}|jrL| |¡}| |¡\} } } | | | | ||¡\} } } } } g}d}t t | ƒƒD]P}| |dkr°|dkrÜ|  d¡qŒ|  || || || || || |f¡qŒ|sè|�rddd|dd|f}nd}|j t d |¡||jd d �}| d d ¡ d d¡ dd¡ dd¡ dd¡S)NrtzV %s%s%s%s r z) z %s%s%s%sz!
z+%srr')Z data_rowsÚ header_rowr¬z+zz-zz^zrÂzrðr)r rôrÝrárâràrþrr r8r0r+Ú_table_templaterªrqrrO)rrÕrÖrírîrÛræZ context_linesrørürýrr r rmZfmtr2r rçrrrrì²sl ÿ ÿ  ÿ  üý ÿþýüzHtmlDiff.make_table)rrFrä)rrFrä)rdrerfrérêrrërrrrïrôr÷rþrrÿr r rìrrrrr  s0ÿ ÿÿ 7 /ÿccsnzdddœt|ƒ}Wn"tk r8td|ƒd‚YnXd|f}|D]"}|dd…|krF|dd…VqFdS)NrŠrŒ)r'r™z)unknown delta choice (must be 1 or 2): %rr…r™)ÚintÚKeyErrorri)ZdeltaZwhichrVÚprefixesrŽrrrrsÿÿcCsddl}ddl}| |¡SrA)ÚdoctestÚdifflibZtestmod)rrrrrÚ_test!srÚ__main__)rXrg)r�)rrrrrXr‹)rrrrrXr‹)r³r³r³r³rXr´)#Ú__all__ÚheapqrrjÚ collectionsrZ _namedtupler rrrrsrrÙrÚÚmatchrrr–r r§rr›r rrÝrérêrrëÚobjectr rrrdrrrrÚs‚þ    1 I  ÿ I ÿ Lÿ %ÿ   a