Ë
    ×Bæjt  ã                  óÞ   — d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlm	Z	 ee
gef   Zeee
df   ee	df   gef   Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Z G d„ d«      Z G d„ d«      Zy)z
Tracing utils
é    )Úannotations)ÚCallable)ÚSequenceN)ÚAny.c           
     óÄ   — 	 t        | «      }t        |«      j                  }d|› d|› d|› dt	        |«      d›d�	S # t        $ r dt        | «      j                  › �}Y ŒQw xY w)Nzunpresentable z<[z raised in z()] z object at 0xÚxú>)ÚreprÚ	ExceptionÚtypeÚ__name__Úid)ÚexcÚobjÚfuncÚexc_infoÚnames        úR/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/pluggy/_tracing.pyÚ_describe_failurer      sp   € ð9Ü˜“9ˆô �‹9×Ñ€DØ�ˆz˜ T F¨$¨t¨f°MÄ"ÀSÃ'È!ÀÈAÐNÐNøô ò 9Ø#¤D¨£I×$6Ñ$6Ð#7Ð8Šð9ús   ‚; »!AÁAc                óh   — | j                  «       r| S | j                  dd«      j                  d«      S )zðEscape lone surrogates so the result survives any text writer.

    A lone surrogate reaching the writer raises :exc:`UnicodeEncodeError`
    inside the trace call for any utf-8 target, such as the file behind
    pytest's ``--debug``.
    zutf-8Úbackslashreplace)ÚisasciiÚencodeÚdecode©Útexts    r   Ú_escape_surrogatesr      s/   € ð ‡|�|„~ØˆØ�;‰;�wÐ 2Ó3×:Ñ:¸7ÓCÐCó    c                óŠ   — 	 t        | «      }t        |«      S # t        $ r!}t        || d«      }Y d}~t        |«      S d}~ww xY w)z›``str(obj)`` for tracing, with a failing ``__str__`` rendered, not raised.

    The result has lone surrogates escaped, so any text writer accepts it.
    ÚstrN)r    r   r   r   ©r   r   r   s      r   Ú	_safe_strr"   '   sH   € ð
2Ü�3‹xˆô ˜dÓ#Ð#øô ò 2Ü   c¨5Ó1ŒÜ˜dÓ#Ð#ûð2úó   ‚ ˜	A¡=½Ac                óH   — t        | «      xr | j                  «       xr d| vS )z=Whether ``text`` can be shown bare, without quotes around it.ú )ÚboolÚisprintabler   s    r   Ú_is_plain_tokenr(   3   s#   € ä�‹:Ò@˜$×*Ñ*Ó,Ò@°¸D°Ð@r   c                ó8   — |D �cg c]
  }| › d|› d�‘Œ c}S c c}w )zBIndent a multi line value under its key, so it reads as one value.z      ú
© )ÚindentÚlinesÚlines      r   Ú_format_blockr/   8   s#   € à27Ö8¨$ˆvˆh�f˜T˜F "Ò%Ò8Ð8ùÒ8s   …c                ó2  — t        | t        j                  t        j                  f«      rt        | «      S t        | t        «      rHt        | j                  «       «      dkD  rt        | «      S t        | «      rt        | «      S t        | «      S t        | «      S )zERender a traced value, adding detail only where ``str`` is ambiguous.é   )Ú
isinstanceÚenumÚEnumÚosÚPathLikeÚ
_safe_reprr    ÚlenÚ
splitlinesr"   r(   )r   s    r   Ú_render_valuer:   =   ss   € ô �#œŸ	™	¤2§;¡;Ð/Ô0Ü˜#‹ÐÜ�#”sÔÜˆs�~‰~ÓÓ  1Ò$Ü˜S“>Ð!Ü˜3ÔÜ˜S“>Ð!Ü˜#‹ÐÜ�S‹>Ðr   c                óŠ   — 	 t        | «      }t        |«      S # t        $ r!}t        || d«      }Y d}~t        |«      S d}~ww xY w)z�``repr(obj)`` for tracing, with a failing ``__repr__`` rendered, not raised.

    The result has lone surrogates escaped, so any text writer accepts it.
    r
   N)r
   r   r   r   r!   s      r   r7   r7   K   sH   € ð
3Ü�C‹yˆô ˜dÓ#Ð#øô ò 3Ü   c¨6Ó2ŒÜ˜dÓ#Ð#ûð3úr#   c                  ó<   — e Zd Zdd„Zd	d„Zd
d„Zdd„Zdd„Zdd„Zy)Ú	TagTracerc                ó.   — i | _         d | _        d| _        y )Nr   )Ú
_tags2procÚ_writerr,   )Úselfs    r   Ú__init__zTagTracer.__init__X   s   € Ø=?ˆŒØ'+ˆŒØˆ�r   c                ó   — t        | |f«      S ©N)ÚTagTracerSub©rA   r   s     r   ÚgetzTagTracer.get]   s   € Ü˜D 4 'Ó*Ð*r   c           	     ó  — t        |d   t        «      r|d   }|d d }ni }dj                  t        t        |«      «      }d| j
                  z  }|› |› ddj                  |«      › d�g}|j                  «       D ]t  \  }}t        |«      }	|	j                  «       }
|
g |	gfv r|j                  |› d|› d|	› d	�«       ŒC|j                  |› d|› d
�«       |j                  t        ||
«      «       Œv dj                  |«      S )Néÿÿÿÿr%   z  z [ú:z]
z    z: r*   z:
Ú )r2   ÚdictÚjoinÚmapr"   r,   Úitemsr:   r9   ÚappendÚextendr/   )rA   ÚtagsÚargsÚextraÚcontentr,   r-   r   ÚvalueÚrenderedÚbodys              r   Ú_format_messagezTagTracer._format_message`   s  € Ü�d˜2‘h¤Ô%Ø˜‘HˆEØ˜˜�9‰DàˆEà—(‘(œ3œy¨$Ó/Ó0ˆØ˜Ÿ™Ñ#ˆà�8˜G˜9 B s§x¡x°£~Ð&6°cÐ:Ð;ˆà Ÿ;™;›=ò 		:‰KˆD�%Ü$ UÓ+ˆHð ×&Ñ&Ó(ˆDØ˜˜X˜JÐ'Ñ'Ø—‘ ˜x t¨D¨6°°H°:¸RÐ@ÕAà—‘ ˜x t¨D¨6°Ð5Ô6Ø—‘œ]¨6°4Ó8Õ9ð		:ð �w‰w�u‹~Ðr   c                ó°   — | j                   �#|r!| j                  | j                  ||«      «       | j                  j                  |«      x}r
 |||«       y y rD   )r@   rY   r?   rG   )rA   rR   rS   Ú	processors       r   Ú_processmessagezTagTracer._processmessagey   sP   € Ø�<‰<Ð#©Ø�L‰L˜×-Ñ-¨d°DÓ9Ô:ØŸ™×+Ñ+¨DÓ1Ð1ˆ9Ð1Ù�d˜DÕ!ð 2r   c                ó   — || _         y rD   )r@   )rA   Úwriters     r   Ú	setwriterzTagTracer.setwriter   s	   € Øˆ�r   c                óœ   — t        |t        «      rt        |j                  d«      «      }nt        |t        «      sJ ‚|| j                  |<   y )NrJ   )r2   r    ÚtupleÚsplitr?   )rA   rR   r[   s      r   ÚsetprocessorzTagTracer.setprocessor‚   s<   € Ü�dœCÔ Ü˜Ÿ™ C›Ó)‰Dä˜d¤EÔ*Ð*Ð*Ø )ˆ�‰˜Òr   N)ÚreturnÚNone©r   r    rd   rE   )rR   zSequence[str]rS   zSequence[object]rd   r    )rR   útuple[str, ...]rS   ztuple[object, ...]rd   re   )r^   z_Writer | Nonerd   re   )rR   zstr | tuple[str, ...]r[   Ú
_Processorrd   re   )	r   Ú
__module__Ú__qualname__rB   rG   rY   r\   r_   rc   r+   r   r   r=   r=   W   s    „ óó
+óó2"óô*r   r=   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)rE   c                ó    — || _         || _        y rD   )ÚrootrR   )rA   rm   rR   s      r   rB   zTagTracerSub.__init__‹   s   € ØˆŒ	Øˆ�	r   c                óP   — | j                   j                  | j                  |«       y rD   )rm   r\   rR   )rA   rS   s     r   Ú__call__zTagTracerSub.__call__�   s   € Ø�	‰	×!Ñ! $§)¡)¨TÕ2r   c                óV   — | j                  | j                  | j                  |fz   «      S rD   )Ú	__class__rm   rR   rF   s     r   rG   zTagTracerSub.get’   s"   € Ø�~‰~˜dŸi™i¨¯©°d°WÑ)<Ó=Ð=r   N)rm   r=   rR   rg   rd   re   )rS   Úobjectrd   re   rf   )r   ri   rj   rB   ro   rG   r+   r   r   rE   rE   Š   s   „ óó3ô>r   rE   )r   r   r   rr   r   r    rd   r    )r   r    rd   r    )r   rr   rd   r    )r   r    rd   r&   )r,   r    r-   ú	list[str]rd   rs   )Ú__doc__Ú
__future__r   Úcollections.abcr   r   r3   r5   Útypingr   r    rr   Ú_Writerra   rh   r   r   r"   r(   r/   r:   r7   r=   rE   r+   r   r   ú<module>ry      s�   ðñõ #å $Ý $Û Û 	Ý ð �C�5˜&�=Ñ
!€Ø�u˜S #˜X‘¨¨c°3¨h©Ð8¸&Ð@ÑA€
óOó	Dó	$óAó
9ó
ó	$÷0*ñ 0*÷f	>ò 	>r   