Ë
    æØjj_  ã                  ó,  — d dl mZ d dlmZ d dlZd dl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 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„Z	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚIteratorN)Ú_compare_eq_mapping)Ú_compare_eq_iterable)Ú_compare_eq_sequence)Ú_compare_eq_set)Úhas_default_eq)Úisattrs)Ú	isdatacls)Ú
isiterable)Ú	ismapping)Úisnamedtuple)Ú
issequence)Úisset)Úistext)Ú_AssertionTextDiffStyle)Ú_HighlightFunc)Ú_compare_eq_textc              #  ó8  K  — t        | «      r#t        |«      rt        | ||||«      E d{  –—†  yddlm} t	        ||«      r|j                  | «      E d{  –—†  nût	        | |«      r| j                  |«      E d{  –—†  nÕt        | «      t        |«      u r9t        | «      st        | «      st        | «      rt        | ||||«      E d{  –—†  n†t        | «      r"t        |«      rt        | |||«      E d{  –—†  nYt        | «      r"t        |«      rt        | |||«      E d{  –—†  n,t        | «      r!t        |«      rt!        | |||«      E d{  –—†  t#        | «      r#t#        |«      rt%        | |||«      E d{  –—†  yyy7 �Œ\7 �Œ37 �Œ7 ŒÃ7 Œ˜7 Œm7 ŒB7 Œ­w)a
  Yield the per-line explanation for ``left == right`` (without summary).

    Yields nothing when no specialised explanation applies, so consumers
    can stream the output and bail out early (e.g. for truncation) without
    materialising the entire diff first.
    Nr   )Ú
ApproxBase)r   r   Ú_pytest.python_apir   Ú
isinstanceÚ_repr_compareÚtyper   r
   r   Ú_compare_eq_clsr   r   r   r   r   r   r   r   )ÚleftÚrightÚhighlighterÚverboseÚassertion_text_diff_styler   s         ú`/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/_pytest/assertion/_compare_any.pyÚ_compare_eq_anyr"      s  è ø€ ô ˆd„|œ˜uœÜ#ØØØØØ%ó
÷ 	
ñ 	
õ 	2ô �e˜ZÔ(Ø×*Ñ*¨4Ó0×0Ñ0Ü˜˜jÔ)Ø×)Ñ)¨%Ó0×0Ñ0Ü�$‹Zœ4 ›;Ñ&Ü�dŒOœw tœ}´¸TÔ0Bô 'ØØØØØ)ó÷ ñ ô ˜Ô¤*¨UÔ"3Ü+¨D°%¸ÀgÓN×NÑNÜ�4Œ[œU 5œ\Ü& t¨U°KÀÓI×IÑIÜ�tŒ_¤¨5Ô!1Ü*¨4°¸ÀWÓM×MÐMä�dÔ¤
¨5Ô 1Ü+¨D°%¸ÀgÓN×NÑNð !2ÐðI	
ùð 1ùà0ùðøð OøàIøàMøð OúsŽ   ‚)F«F¬+FÁF
Á%FÁ=FÁ>AFÃFÃ,FÃ9FÃ:,FÄ&FÄ',FÅFÅ+FÅ?FÆ FÆ
FÆFÆFÆFÆFÆFÆFc              #  ó  K  — t        | «      sy t        | «      r<t        j                  | «      }|D �cg c]  }|j                  sŒ|j
                  ‘Œ }}nXt        | «      r3| j                  }|D �cg c]  }t        |d«      sŒ|j
                  ‘Œ }}nt        | «      r| j                  }nJ ‚d}	g }
g }|D ]>  }t        | |«      t        ||«      k(  r|
j                  |«       Œ.|j                  |«       Œ@ |
s|rd–— |
r|dk  rdt        |
«      › d�–— n7|
r5d–—  |t        j                  |
«      «      j                  «       E d {  –—†  |r¨d–—  |t        j                  |«      «      j                  «       E d {  –—†  |D ]m  }t        | |«      }t        ||«      }d–— d	|› d
�–— |	› |› d |t!        |«      «      › d |t!        |«      «      › �–— t#        |||||«      D ]	  }|	|z   –— Œ Œo y y c c}w c c}w 7 Œ¹7 Œ„­w)NÚeqz  Ú é   z	Omitting z! identical items, use -vv to showzMatching attributes:zDiffering attributes:z$Drill down into differing attribute ú:z: z != )r	   r   ÚdataclassesÚfieldsÚcompareÚnamer
   Ú__attrs_attrs__Úgetattrr   Ú_fieldsÚappendÚlenÚpprintÚpformatÚ
splitlinesÚreprr"   )r   r   r   r   r    Ú
all_fieldsÚinfoÚfields_to_checkÚfieldÚindentÚsameÚdiffÚ
field_leftÚfield_rightÚlines                  r!   r   r   O   s  è ø€ ô ˜$ÔØÜ�„Ü ×'Ñ'¨Ó-ˆ
Ø1;ÖL¨¸t¿|»|˜4Ÿ9›9ÐLˆÑLÜ	�ŒØ×)Ñ)ˆ
Ø3=ÖV¨%ÄÈÐPTÕAU˜5Ÿ:›:ÐVˆÑVÜ	�dÔ	ØŸ,™,‰àˆuà€FØ€DØ€DØ ò ˆÜ�4˜Ó¤7¨5°%Ó#8Ò8Ø�K‰K˜Õà�K‰K˜Õð	ñ ‰tØŠÙ�˜!’Øœ#˜d›)˜Ð$EÐFÓFÙ	Ø$Ò$ÙœvŸ~™~¨dÓ3Ó4×?Ñ?ÓA×AÐAÙØ%Ò%ÙœvŸ~™~¨dÓ3Ó4×?Ñ?ÓA×AÐAØò 	$ˆEÜ   uÓ-ˆJÜ! %¨Ó/ˆKØŠHØ8¸¸¸qÐAÒAØ�H˜U˜G 2¡k´$°zÓ2BÓ&CÐ%DÀDÉÔUYÐZeÓUfÓIgÐHhÐiÒiÜ'ØØØØØ)óò $�ð ˜t‘mÓ#ñ$ñ	$ð ùò3 Mùò Wð* 	Bøð 	BúsH   ‚1H³G:ÁG:ÁHÁ1G?ÂG?ÂB9HÅ
HÅ6HÆHÆBHÈH)r   Úobjectr   r?   r   r   r   Úintr    r   ÚreturnzIterator[str])Ú
__future__r   Úcollections.abcr   r(   r1   Ú"_pytest.assertion._compare_mappingr   Ú#_pytest.assertion._compare_sequencer   r   Ú_pytest.assertion._compare_setr   Ú_pytest.assertion._guardsr	   r
   r   r   r   r   r   r   r   Ú_pytest.assertion._typingr   r   Ú_pytest.assertion.compare_textr   r"   r   © ó    r!   ú<module>rL      sÃ   ðÝ "å $Û Û å BÝ DÝ DÝ :Ý 4Ý -Ý /Ý 0Ý /Ý 2Ý 0Ý +Ý ,Ý =Ý 4Ý ;ð3OØ
ð3Oàð3Oð  ð3Oð ð	3Oð
  7ð3Oð ó3Oðl4$Ø
ð4$àð4$ð  ð4$ð ð	4$ð
  7ð4$ð ô4$rK   