grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]ìHã @sädddddddddd d d g Zd d lmZd dlmZed dƒZdd„ZGdd„dƒZ dddd„Z dd„Z Gdd„dƒZ d dl Z e jdƒjdd„Zddd„Zdd„Zd d d d dd!d"d„Zd#d$„Zd d d d dd!d%d„Zd&d'„Zd(d(d(d(dd)d*d „Zded+d„Zdded,d-„Zd.Zd/Zd0Zd1ZGd2d „d eƒZ[ d3d„Z d4d5„Z!e"d6kràe!ƒdS)7Ú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/python35/lib64/python3.5/difflib.pyÚ_calculate_ratio&s rc@s¯eZdZdddddd„Zdd„Zdd „Zd d „Zd d „Zdd„Zdd„Z dd„Z ddd„Z dd„Z dd„Z dd„ZdS)rNÚTcCs6||_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_seqscCs0||jkrdS||_d|_|_dS)N)rÚmatching_blocksÚopcodes)rrrrrrãs zSequenceMatcher.set_seq1cCsC||jkrdS||_d|_|_d|_|jƒdS)N)rrr Ú fullbcountÚ_SequenceMatcher__chain_b)rrrrrrýs   zSequenceMatcher.set_seq2c CsP|j}i|_}x9t|ƒD]+\}}|j|gƒ}|j|ƒq#Wtƒ|_}|j}|r¹x-|jƒD]}||ƒr~|j |ƒq~Wx|D] }||=q¨Wtƒ|_ }t |ƒ} |j rL| dkrL| dd} x9|j ƒD]+\}} t | ƒ| kr|j |ƒqWx|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_bcCsº|j|j|j|jjf\}}}}||d} } } i} g} x¸t||ƒD]§}| j}i}x‰|j||| ƒD]q}||kržq‰||kr«P||ddƒd}||<|| kr‰||d||d|} } } q‰W|} q]Wxm| |krw| |krw||| dƒ rw|| d|| dkrw| d| d| d} } } q Wx_| | |krÙ| | |krÙ||| | ƒ rÙ|| | || | krÙ| d7} q{Wxl| |krH| |krH||| dƒrH|| d|| dkrH| d| d| d} } } qÝWx^| | |kr©| | |kr©||| | ƒr©|| | || | kr©| d} qLWt| | | ƒ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||||ƒ\} } } } | rS|j| ƒ|| krÚ|| krÚ|j|| || fƒ| | |krS| | |krS|j| | || | |fƒqSW|jƒd} }}g}xt|D]l\}}}| ||kr€|||kr€||7}qD|rœ|j| ||fƒ|||} }}qDW|rÐ|j| ||fƒ|j||dfƒtt t j |ƒƒ|_|jS)Nr ) rr.rrÚpopr=r)ÚsortÚlistÚmapr Ú_make)rÚlaÚlbÚqueuerr7r8r9r: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||kr—d}|r¹|j|||||fƒ||||}}|r:|jd||||fƒq:W|S)Nr rÚreplaceÚdeleteÚinsertÚequal)r rKr))rr0r;ZanswerÚaiÚbjÚsizeÚtagrrrÚ get_opcodess$       zSequenceMatcher.get_opcodeséc csá|jƒ}|sdg}|dddkr{|d\}}}}}|t|||ƒ|t|||ƒ|f|d<|dddkrÛ|d\}}}}}||t|||ƒ|t|||ƒf|d<||}g} x½|D]µ\}}}}}|dkr‹|||kr‹| j||t|||ƒ|t|||ƒfƒ| Vg} t|||ƒt|||ƒ}}| j|||||fƒqòW| rÝt| ƒdkoÔ| dddk rÝ| VdS)NrOr r%)rOr r%r r%éÿÿÿÿrVrV)rTÚmaxÚminr)r.) rr3ZcodesrSrGrIrHrJÚnnÚgrouprrrÚget_grouped_opcodes<s(  33 6' -z#SequenceMatcher.get_grouped_opcodescCsBtdd„|jƒDƒƒ}t|t|jƒt|jƒƒS)Ncss|]}|dVqdS)r%NrVr)Ú.0Ztriplerrrú „sz(SequenceMatcher.ratio..)ÚsumrKrr.rr)rrrrrÚrationszSequenceMatcher.ratiocCsï|jdkrJi|_}x+|jD] }|j|dƒd|| 0: %rggð?z cutoff must be in [0.0, 1.0]: %rcSsg|]\}}|‘qSrr)r\ZscorerFrrrú Þs z%get_close_matches..) Ú ValueErrorrrrrar`r_r)Ú _nlargest)ZwordZ possibilitiesr3ÚcutoffÚresultÚsrFrrrr°s     cCsDdt|ƒ}}x*||kr?|||kr?|d7}qW|S)Nr r%)r.)ÚlineÚchr0r3rrrÚ_count_leadingàs rmc@sjeZdZdddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)rNcCs||_||_dS)N)ÚlinejunkÚcharjunk)rrnrorrrrMs zDiffer.__init__c csýt|j||ƒ}xá|jƒD]Ó\}}}}}|dkrd|j||||||ƒ} nˆ|dkr‹|jd|||ƒ} na|dkr²|jd|||ƒ} n:|dkrÙ|jd|||ƒ} ntd|fƒ‚| EdHq"WdS) NrLrMú-rNú+rOú zunknown tag %r)rrnrTÚ_fancy_replaceÚ_dumprf) rrrÚcruncherrSr7r8r9r:ÚgrrrÚcompareds" !   zDiffer.compareccs1x*t||ƒD]}d|||fVqWdS)Nz%s %s)r5)rrSrFÚloÚhir0rrrrt�sz Differ._dumpc cs›||||krG|jd|||ƒ}|jd|||ƒ}n0|jd|||ƒ}|jd|||ƒ}x||fD]} | EdHq„WdS)Nrqrp)rt) rrr7r8rr9r:ÚfirstÚsecondrvrrrÚ_plain_replace’szDiffer._plain_replaceccséd\}}t|jƒ} d\} } x×t||ƒD]Æ} || } | j| ƒx¦t||ƒD]•}||}|| krœ| dkrd|| } } qd| j|ƒ| jƒ|krd| jƒ|krd| jƒ|krd| jƒ|| }}}qdWq7W||krU| dkr>|j||||||ƒEdHdS| | d}}}nd} |j ||||||ƒEdH||||}}| dkr³d}}| j ||ƒxÛ| j ƒD]Í\}}}}}||||}}|dkr|d|7}|d|7}qÄ|dkr6|d|7}qÄ|d krS|d |7}qÄ|d kr~|d |7}|d |7}qÄt d |fƒ‚qÄW|j ||||ƒEdHn d|V|j ||d|||d|ƒEdHdS)Nç®Gáz®ç?çè?gð?rrLú^rMrprNrqrOrrzunknown tag %rz r%)r}r~)NN)rror5rrrar`r_r|Ú _fancy_helperrrTrfÚ_qformat)rrr7r8rr9r:Z best_ratiorhruZeqiZeqjr;rQr0rPZbest_iZbest_jZaeltZbeltÚatagsÚbtagsrSZai1Zai2Zbj1Zbj2rCrDrrrrs sX         "  !!  "     zDiffer._fancy_replaceccs‹g}||krZ||kr?|j||||||ƒ}q~|jd|||ƒ}n$||kr~|jd|||ƒ}|EdHdS)Nrprq)rsrt)rrr7r8rr9r:rvrrrr€þs  ! zDiffer._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+ )rXrmÚrstrip)rZalineZbliner‚rƒÚcommonrrrr� s""  zDiffer._qformat) rbrcrdrrwrtr|rsr€r�rrrrrïs ^ )   ^ Nz \s*(?:#\s*)?$cCs||ƒdk S)Nr)rkÚpatrrrr>sz cCs ||kS)Nr)rlZwsrrrrNscCsM|d}||}|dkr-dj|ƒS|s=|d8}dj||ƒS)Nr%z{}z{},{})Úformat)ÚstartÚstopÚ beginningrrrrÚ_format_range_unifiedes     rŒrÚ ccsÀt|||||||ƒd}x—td||ƒj|ƒD]z} |s®d}|redj|ƒnd} |r€dj|ƒnd} dj|| |ƒVdj|| |ƒV| d| d} } t| d| d ƒ}t| d | d ƒ}d j|||ƒVx°| D]¨\}}}}}|d krTx!|||…D]}d|Vq>Wq |dkr„x!|||…D]}d|VqqW|dkr x!|||…D]}d|Vq¡Wq Wq>WdS)NFTz {}rz --- {}{}{}z +++ {}{}{}r r%érUéz@@ -{} +{} @@{}rOrrrLrMrprNrqrV>rMrL>rLrN)Ú _check_typesrr[rˆrŒ)rrÚfromfileÚtofileÚ fromfiledateÚ tofiledater3ÚlinetermÚstartedrZÚfromdateÚtodaterzÚlastÚ file1_rangeÚ file2_rangerSrGrIrHrJrkrrrr ps0)"     cCsU|d}||}|s$|d8}|dkr=dj|ƒSdj|||dƒS)Nr%z{}z{},{})rˆ)r‰rŠr‹rrrrÚ_format_range_context¹s     rœc cst|||||||ƒtddddddddƒ}d } xÕtd||ƒj|ƒD]¸} | sÏd } |r†d j|ƒnd } |r¡d j|ƒnd } d j|| |ƒVdj|| |ƒV| d| d} }d|Vt| d|dƒ}dj||ƒVtdd„| Dƒƒr‚xQ| D]I\}}}}}|dkr5x%|||…D]}|||VqgWq5Wt| d|dƒ}dj||ƒVtdd„| Dƒƒr_xQ| D]I\}}}}}|dkrÊx%|||…D]}|||VqüWqÊWq_WdS)NrNz+ rMz- rLz! rOz FTz {}rz *** {}{}{}z --- {}{}{}r r%z***************rŽz *** {} ****{}css*|] \}}}}}|dkVqdS)rLrMN>rMrLr)r\rSÚ_rrrr]szcontext_diff..rUr�z --- {} ----{}css*|] \}}}}}|dkVqdS)rLrNN>rLrNr)r\rSr�rrrr] srV)r�Údictrr[rˆrœÚany)rrr‘r’r“r”r3r•Úprefixr–rZr—r˜rzr™ršrSrGrIr�rkr›rHrJrrrrÅs4,!"   cGs¹|rAt|dtƒ rAtdt|dƒj|dfƒ‚|r‚t|dtƒ r‚tdt|dƒj|dfƒ‚x0|D](}t|tƒs‰td|fƒ‚q‰WdS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)Ú isinstanceÚstrÚ TypeErrorÚtyperb)rrÚargsÚargrrrr�s!! r�ós c cs¹dd„} tt| |ƒƒ}tt| |ƒƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}|||||||||ƒ} x| D]} | jddƒVqšWdS)NcSshy|jddƒSWnMtk rc}z-dt|ƒj|f}t|ƒ|‚WYdd}~XnXdS)NÚasciiÚsurrogateescapez(all arguments must be bytes, not %s (%r))ÚdecodeÚAttributeErrorr¤rbr£)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||||ƒ‰ddg‡fdd†‰‡‡fdd†‰‡fdd†}|ƒ}|dkr“|EdHnN|d 7}d}x;ddg|} } d } xi| d kr+yt|ƒ\} } } Wntk rdSYnX| |}| | | f| |<| d 7} qÃW| |krFd V|}n | }d} x1|r…| |}| d 7} | |V|d 8}qUW|d }xJ|rÜt|ƒ\} } } | rÁ|d }n |d 8}| | | fVq“Wq¦WdS) Nr z (\++|\-+|\^+)c s>||d7<|dkr;|||jdƒdd…fS|dkrù|jdƒ|jdƒ}}g}|dd„}ˆj||ƒxXt|ƒD]J\}\} } |d| …d||| | …d|| d…}q˜W|dd…}n7|jdƒdd…}|sd }d||d}|||fS) Nr%r rŽú?cSs3|j|jdƒd|jƒgƒ|jdƒS)Nr%r )r)rZÚspan)Z match_objectÚsub_inforrrÚrecord_sub_info°s&z3_mdiff.._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  ! <z_mdiff.._make_linec3s4g}d\}}xx,t|ƒdkrC|jtˆdƒƒqWdjdd„|Dƒƒ}|jdƒrx|}nO|jdƒr³ˆ|ddƒˆ|dd ƒd fVqn|jd ƒrì|d 8}ˆ|d dƒdd fVqnÛ|jdƒr(ˆ|d dƒd}}|d d}}nŸ|jdƒrcˆ|ddƒˆ|dd ƒd fVqnd|jdƒržˆ|ddƒˆ|dd ƒd fVqn)|jd ƒr×|d 8}ˆ|d dƒdd fVqnð|jdƒr|d 7}dˆ|dd ƒd fVqn·|jdƒrLdˆ|dd ƒ}}|d d}}n{|jdƒr…|d 7}dˆ|dd ƒd fVqnB|jdƒrLj|dd…ddƒˆ|dd ƒdfVqx|dkrè|d 7}dVqÊWx|dkr |d 8}dVqìW|jdƒrdS||d fVqWdS) Nr r�ÚXrcSsg|]}|d‘qS)r r)r\rkrrrreÝs z2_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  & &&   0    z_mdiff.._line_iteratorc 3súˆƒ}gg}}xÝx˜t|ƒdks@t|ƒdkr³yt|ƒ\}}}Wntk rqdSYnX|dk r‘|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Ú_mdiffesN" 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ÐeZdZeZeZeZeZdZdddedd„Z ddddd d d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdddddd„ZdS)r r éNcCs(||_||_||_||_dS)N)Ú_tabsizeÚ _wrapcolumnÚ _linejunkÚ _charjunk)rÚtabsizeZ wrapcolumnrnrorrrr½s   zHtmlDiff.__init__rFéÚcharsetzutf-8cCs_|jtd|jd|jd|j||||d|d|ƒd|ƒj|dƒj|ƒS)NZstylesZlegendÚtablerÔÚnumlinesrÞÚxmlcharrefreplace)Ú_file_templateržÚ_stylesÚ_legendÚ make_tabler®rª)rrÎrÏÚfromdescÚtodescrÔràrÞrrrÚ make_fileÎs    zHtmlDiff.make_filecsN‡fdd†‰‡fdd†|Dƒ}‡fdd†|Dƒ}||fS)NcsO|jddƒ}|jˆjƒ}|jddƒ}|jddƒjdƒS)Nrrr´r„r�)rLÚ expandtabsrØr…)rk)rrrÚ expand_tabsósz2HtmlDiff._tab_newline_replace..expand_tabscsg|]}ˆ|ƒ‘qSrr)r\rk)rêrrreüs z1HtmlDiff._tab_newline_replace..csg|]}ˆ|ƒ‘qSrr)r\rk)rêrrreýs r)rrÎrÏr)rêrrÚ_tab_newline_replaceés  zHtmlDiff._tab_newline_replacec Css|s|j||fƒdSt|ƒ}|j}||ks[||jdƒd|krr|j||fƒdSd}d}d}x„||kr ||kr ||dkrÐ|d7}||}|d7}q‡||dkró|d7}d}q‡|d7}|d7}q‡W|d|…} ||d…} |rI| d} d|| } |j|| fƒ|j|d| ƒdS)Nr´rUr rr%rµú>)r)r.rÙÚcountÚ _split_line) rZ data_listZline_numr¹rRrWr0r3ÚmarkZline1Zline2rrrrîs8   )       zHtmlDiff._split_linec csäxÝ|D]Õ\}}}|dkr3|||fVq||\}}\}}gg} } |j| ||ƒ|j| ||ƒxZ| sŽ| rÛ| r¦| jdƒ}nd}| rÄ| jdƒ}nd}|||fVq‚WqWdS)Nr rrr)rrr)rrr)rîr>) rÚdiffsÚfromdataÚtodataÚflagZfromlineZfromtextZtolineZtotextÚfromlistÚtolistrrrÚ _line_wrapper7s   zHtmlDiff._line_wrapperc Cs³ggg}}}x�|D]‡\}}}y<|j|jd||Œƒ|j|jd||ŒƒWn,tk r”|jdƒ|jdƒYnX|j|ƒqW|||fS)Nr r%)r)Ú _format_liner£)rrðrôrõÚflaglistrñròrórrrÚ_collect_linesSs   zHtmlDiff._collect_linesc Cs“y%d|}d|j||f}Wntk r?d}YnX|jddƒjddƒjdd ƒ}|jd d ƒjƒ}d |||fS) Nz%dz id="%s%s"rú&z&rìz>ú%s%s)Ú_prefixr£rLr…)rr¸róZlinenumr¹Úidrrrr÷hs   *zHtmlDiff._format_linecCs<dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r%)r Ú_default_prefixrü)rZ fromprefixÚtoprefixrrrÚ _make_prefixs  zHtmlDiff._make_prefixcCsP|jd}dgt|ƒ}dgt|ƒ}d \} } d} xƒt|ƒD]u\} } | rÁ| sÇd} | } td| |gƒ} d|| f|| <| d7} d|| f|| nz2 No Differences Found z( Empty File z!fz#t)r F)rür.r'rW)rrôrõrørÔràrÿÚnext_idÚ next_hrefZnum_chgZ in_changer™r0rórrrÚ_convert_flagsŠs:           zHtmlDiff._convert_flagsc Csç|jƒ|j||ƒ\}}|r1|}nd}t|||d|jd|jƒ}|jrs|j|ƒ}|j|ƒ\} } } |j| | | ||ƒ\} } } } } g}dd}xzt t | ƒƒD]f}| |dkr |dkr>|j dƒqØ|j || || || || || |fƒqØW|sN|roddd |dd |f}nd }|j t d d j|ƒd |d |jdƒ}|jddƒjddƒjddƒjddƒjddƒS)Nrnroz1 %s%sz%%s%s r z) z %s%s%s%sz!
z+%srZ data_rowsÚ header_rowr r%z+zz-zz^zrµzr„z )rrërÖrÚrÛrÙrörùrr5r.r)Ú_table_templateržrÇrürL)rrÎrÏrærçrÔràZ context_linesrðrôrõrørrrjÚfmtr0rrßrrrrå¹sJ    $      zHtmlDiff.make_table)rbrcrdrârãrrärþrrrèrërîrörùr÷rrrårrrrr §s$    7    / c cs‹y ddddit|ƒ}Wn"tk rDtd|ƒ‚YnXd|f}x3|D]+}|dd…|krX|dd…VqXWdS)Nr%z- rŽz+ z)unknown delta choice (must be 1 or 2): %rz )ÚintÚKeyErrorrf)ZdeltaÚwhichrSÚprefixesrkrrrrs    cCs%ddl}ddl}|j|ƒS)Nr )ÚdoctestÚdifflibÚtestmod)r r rrrÚ_test(srÚ__main__)#Ú__all__ÚheapqrrgÚ collectionsrZ _namedtupler rrrrmrrÒrÓÚmatchrrrŒr rœrr�r rrÖrârãrräÚobjectr rrrbrrrrÚsP   ÿÿ‡0 ÿN  H K %ÿ  ÿ`