Ë
    •Kêj¾  ã                  óò   — d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ e	f	 	 	 	 	 	 	 	 	 	 	 	 	 dd
„Zdd„Zdd„Zd e	f	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zd e	f	 	 	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚIterator)Úsaferepr)Ú_AssertionTextDiffStyle)Ú_HighlightFunc)ÚNO_TRUNCATION_BUDGET)ÚTruncationBudget)Údummy_highlighter)Úassert_neverc              #  ó    K  — |xdk(  r t        | |«      E d {  –—†  y xdk(  r t        | ||||«      E d {  –—†  y }t        |«       y 7 Œ07 Œ­w)NÚblockÚndiff)Ú_diff_text_blockÚ
_diff_textr   )ÚleftÚrightÚhighlighterÚverboseÚassertion_text_diff_styleÚtruncation_budgetÚunreachables          úc/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/_pytest/assertion/compare_text.pyÚ_compare_eq_textr      sL   è ø€ ð $ÝÜ'¨¨eÓ4×4Ñ4ÝÜ! $¨¨{¸GÐEVÓW×WÑWØÜ˜Õ%ð	 5øàWús   ‚A™A
šA·A¸AÁAc              #  óx   K  — d–— t        | «      E d {  –—†  d–— d–— t        |«      E d {  –—†  y 7 Œ 7 Œ­w)NzLeft:Ú zRight:)Ú_format_text_block_lines)r   r   s     r   r   r      s<   è ø€ Ø
‚MÜ'¨Ó-×-Ð-Ø
‚HØ
‚NÜ'¨Ó.×.Ñ.ð .øð /ús   ‚:•6–:°8±:¸:c              #  óF   K  — | j                  d«      D ]	  }d|› �–— Œ y ­w)Nú
ú  )Úsplit)ÚtextÚlines     r   r   r   '   s*   è ø€ Ø—
‘
˜4Ó ò ˆØ�4�&ˆkÓñùs   ‚!c           	   #  óà  K  — ddl m} |dk  r¸d}t        t        t	        | «      t	        |«      «      «      D ]  }| |   ||   k7  sŒ n |dkD  r|dz  }d|› d�–— | |d } ||d }t	        | «      t	        |«      k(  rJt        dt	        | «      dz   «      D ]  }| |    ||    k7  sŒ n |dkD  r|dz  }d|› d	�–— | d|  } |d|  }d
}| j                  «       s|j                  «       r,t        t        | «      «      } t        t        |«      «      }d–— t        | ||«      }t        |||«      }	 |dj                  d„  ||	|«      D «       «      d¬«      j                  «       E d{  –—†  y7 Œ­w)aR  Yield the explanation for the diff between text.

    Unless --verbose is used this will skip leading and trailing
    characters which are identical to keep the diff minimal.

    When a truncation budget is set, the inputs to ``ndiff`` are capped
    first, so the truncated head may differ from the head of the
    unbounded diff.
    r   )r   é   é*   é
   z	Skipping z5 identical leading characters in diff, use -v to showNz6 identical trailing characters in diff, use -v to showTz;Strings contain only whitespace, escaping them using repr()r   c              3  ó>   K  — | ]  }|j                  d «      –— Œ y­w)r   N)Ústrip)Ú.0r"   s     r   ú	<genexpr>z_diff_text.<locals>.<genexpr>^   s   è ø€ ÒN t�$—*‘*˜T×"ÑNùs   ‚Údiff)Úlexer)Údifflibr   ÚrangeÚminÚlenÚisspaceÚreprÚstrÚ_cap_ndiff_inputÚjoinÚ
splitlines)
r   r   r   r   r   r   ÚiÚkeependsÚ
left_linesÚright_liness
             r   r   r   ,   sœ  è ø€ õ  à�‚{ØˆÜ”sœ3˜t›9¤c¨%£jÓ1Ó2ò 	ˆAØ�A‰w˜% ™(Ó"Ùð	ð ˆrŠ6Ø�‰GˆAØ˜a˜SÐ UÐVÒVØ˜˜�8ˆDØ˜!˜"�IˆEÜˆt‹9œ˜E›
Ò"Ü˜1œc $›i¨!™mÓ,ò �Ø˜˜‘8˜u a R™yÓ(Ùðð �2ŠvØ�R‘�à ˜sð #9ð 9òð ˜C˜a˜R�y�Ø˜c ˜r˜
�Ø€HØ‡|�|„~˜Ÿ™œÜ”C˜“I‹ˆÜ”S˜“ZÓ ˆØKÒKÜ! $¨Ð2CÓD€JÜ" 5¨(Ð4EÓF€Kñ Ø�	‰	ÑN©u°[À*Ó/MÔNÓNØô÷ �jƒl÷ò ús    ‚AE.ÁAE.Â%CE.Å&E,Å'E.c                ó    — |j                   dkD  r| d|j                    } | j                  |«      }|j                  dkD  r|d|j                   }|S )zøCap an ``ndiff`` input to the truncation budget, as split lines.

    A char slice first (bounds a few huge lines, whose intraline diff is
    O(len^2)), then a line slice (bounds many lines). A ``0`` limit leaves
    that dimension unbounded.
    r   N)Ú	max_charsr6   Ú	max_lines)r!   r8   ÚbudgetÚliness       r   r4   r4   c   sY   € ð ×Ñ˜!ÒØÐ&�f×&Ñ&Ð'ˆØ�O‰O˜HÓ%€EØ×Ñ˜!ÒØÐ(˜×(Ñ(Ð)ˆØ€Ló    c              #  óD  K  — |j                  | «      }|d | }||t        | «      z   d  }||z   }t        ||t        ||«      }t	        | d¬«      › d�–— |D ]F  }	|	j                  d«      rŒ|	j                  d«      rŒ'|	j                  d«      rd|	dd  z   –— ŒC|	–— ŒH y ­w)	Nr%   )Úmaxsizez is contained here:ÚSkippingz- z+ r   é   )Úfindr0   r   r
   r   Ú
startswith)
Útermr!   r   r   ÚindexÚheadÚtailÚcorrect_textr+   r"   s
             r   Ú_notin_textrL   r   s·   è ø€ ð �I‰I�d‹O€EØ��ˆ<€DØ�œ˜D›	Ñ!Ð#Ð$€DØ˜$‘;€LÜ�d˜LÔ*;¸WÐFWÓX€DÜ�d BÔ'Ð(Ð(;Ð
<Ò<Øò ˆØ�?‰?˜:Ô&ØØ�?‰?˜4Ô ØØ�?‰?˜4Ô Ø˜˜a˜b˜‘/Ó!à‹Jñùs   ‚BB N)r   r3   r   r3   r   r   r   Úintr   r   r   r	   ÚreturnúIterator[str])r   r3   r   r3   rN   rO   )r!   r3   rN   rO   )r   r3   r   r3   r   r   r   rM   r   r	   rN   rO   )r!   r3   r8   Úboolr>   r	   rN   z	list[str])
rG   r3   r!   r3   r   rM   r   r	   rN   rO   )Ú
__future__r   Úcollections.abcr   Ú_pytest._io.safereprr   Ú_pytest.assertion._typingr   r   r   r	   Ú_pytest.assertion.highlightr
   Ú_pytest.compatr   r   r   r   r   r4   rL   © r@   r   ú<module>rX      sü   ðÝ "å $å )Ý =Ý 4Ý :Ý 6Ý 9Ý 'ð +?ð&Ø
ð&àð&ð  ð&ð ð	&ð
  7ð&ð (ð&ð ó&ó"/óð Ø*>ð4Ø
ð4àð4ð  ð4ð ð	4ð
 (ð4ð ó4ónð$ Ø*>ð	Ø
ðà
ðð ðð (ð	ð
 ôr@   