+
    -j>  ã                  ó„   € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^t	]	^P,          t
RtR R ltR R	 ltR
 R ltR R ltR# )zÑUtilities for truncating assertion output.

Current default behaviour is to truncate assertion explanations at
terminal lines, unless running with an assertions verbosity level of at least 2 or running on CI.
)Úannotations)Úrunning_on_ci)ÚConfig)ÚItemzuse '-vv' to showc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úexplanationú	list[str]Úitemr   Úreturn© )Úformats   "Úo/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/_pytest/assertion/truncate.pyÚ__annotate__r      s!   € ÷ 	ñ 	 ið 	°tð 	À	ñ 	ó    c                óN   € \        V4      w  r#pV'       d   \        V VVR7      # V # )zGTruncate this assertion explanation if the given test item is eligible.)Ú	max_linesÚ	max_chars)Ú_get_truncation_parametersÚ_truncate_explanation)r   r
   Úshould_truncater   r   s   &&   r   Útruncate_if_requiredr      s2   € ä,FÀtÓ,LÑ)€O 	ßÜ$ØØØô
ð 	
ð
 Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r
   r   r   ztuple[bool, int, int]r   )r   s   "r   r   r      s   € ÷ 1ñ 1 Tð 1Ð.Cñ 1r   c                óŒ  € V P                   P                  R4      p\        Ve   TM\        4      pV P                   P                  R4      p\        Ve   TM\        4      pV P                   P                  \        P                  4      pV^8  ;'       d    \        4       '       * pT;'       d    V^ 8„  ;'       g    V^ 8„  pWAV3# )zgReturn the truncation parameters related to the given item, as (should truncate, max lines, max chars).Útruncation_limit_linesÚtruncation_limit_chars)	ÚconfigÚgetiniÚintÚDEFAULT_MAX_LINESÚDEFAULT_MAX_CHARSÚget_verbosityr   ÚVERBOSITY_ASSERTIONSr   )r
   r   r   Úverboser   s   &    r   r   r      sª   € ð —‘×"Ñ"Ð#;Ó<€IÜ Ò!6‘IÔ<MÓN€Ià—‘×"Ñ"Ð#;Ó<€IÜ Ò!6‘IÔ<MÓN€Iàk‰k×'Ñ'¬×(CÑ(CÓD€Gà ‘k×9Ð9¬-«/Ô&9€OØ%×JÐJ¨9°q©=×+IÐ+I¸IÈ¹M€Oà yÐ0Ð0r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úinput_linesr	   r   r   r   r   r   )r   s   "r   r   r   4   s6   € ÷ Cñ CØðCàðCð ðCð ñ	Cr   c                ó  € \        RP                  V 4      4      pV^F,           pV^,           p\        V 4      V8:  d	   W48:  d   V # V^ 8”  d   V RV pMT pRp\        RP                  V4      4      V8”  d   V^ 8”  d   \        Wb4      pMRpW`8X  d   V# \        V 4      \        V4      ,
          pVR
,          '       d&   VR
,          R,           VR
&   V'       d
   V^,          pMRVR
&   . VORNRT RV^8X  d   RMR R	\         2N# )a  Truncate given list of strings that makes up the assertion explanation.

Truncates to either max_lines, or max_chars - whichever the input reaches
first, taking the truncation explanation into account. The remaining lines
will be replaced by a usage message.
Ú NTFz...z...Full output truncated (z lineÚsz
 hidden), éÿÿÿÿ)ÚlenÚjoinÚ_truncate_by_char_countÚ	USAGE_MSG)	r%   r   r   Úinput_char_countÚtolerable_max_charsÚtolerable_max_linesÚtruncated_explanationÚtruncated_charÚtruncated_line_counts	   &&&      r   r   r   4   sD  € ô ˜2Ÿ7™7 ;Ó/Ó0Ðð 	Bð ð $ a-ÐäˆKÓÐ/Ô/ØÔ3àÐà1„}Ø +¨J¨YÐ 7Ñà +ÐØ€Nä
ˆ27‰7Ð(Ó)Ó*Ð-@Ô@ÀYÐQRÄ]Ü 7Ø!ó!
Ñð ˆàÔ+à$Ð$ä˜{Ó+¬cÐ2GÓ.HÕHÐØ˜R× Ô à$9¸"Õ$=ÀÕ$EÐ˜bÑ!ßà  AÕ%Ð øð %*Ð˜bÑ!ðØ	ðà
ðð %Ð%9Ð$:¸%Ø%¨Ô*‰2°Ð
4°J¼y¸kð	Kðð r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r%   r	   r   r   r   r   )r   s   "r   r   r   z   s!   € ÷ ñ ¨ð ¸sð Àyñ r   c                óî   € ^ p\        V 4       F0  w  r4V\        V4      ,           V8”  d    MV\        V4      ,          pK2  	  V RX pW,          pV'       d   W,
          pVRV pVP                  V4       V# )é    N)Ú	enumerater*   Úappend)r%   r   Úiterated_char_countÚiterated_indexÚ
input_lineÚtruncated_resultÚ
final_lineÚfinal_line_truncate_points   &&      r   r,   r,   z   s‚   € àÐÜ&/°Ö&<Ñ"ˆØ¤ Z£Õ0°9Ô<ÙØœs :›Õ.Òñ '=ð # ? NÐ3ÐØÕ,€JßØ$-Õ$CÐ!ØÐ :Ð!:Ð;ˆ
Ø×Ñ˜JÔ'ØÐr   N)Ú__doc__Ú
__future__r   Ú_pytest.compatr   Ú_pytest.configr   Ú_pytest.nodesr   r   r    r-   r   r   r   r,   r   r   r   Ú<module>rD      sF   ðñõ #å (Ý !Ý ð Ð Ø%¨Õ*Ð Ø€	õ	õ1õ*C÷Lr   