+
    yjg$                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^RIHt ^R	IHt ]'       d   ^ R
IHt ^ RIHt R R ltR R lt] ! R R4      4       tR# )z4Helper functions for writing to terminals and files.)annotationsN)final)Literal)Sequence)TextIO)TYPE_CHECKING)assert_never)wcswidth)	Formatter)Lexerc                   V ^8  d   QhRR/#    returnint )formats   "N/var/www/html/2rare/lib/python3.14/site-packages/_pytest/_io/terminalwriter.py__annotate__r      s      C     c                 J    \         P                  ! RR7      w  rV ^(8  d   ^Pp V # )P   )fallback)r      )shutilget_terminal_size)width_s     r   get_terminal_widthr      s'    '':HE rzLr   c                    V ^8  d   QhRRRR/# )r   filer   r   boolr   )r   s   "r   r   r   $   s      6 d r   c                   \         P                  P                  R 4      R8X  d   R# \         P                  P                  R 4      R8X  d   R# \         P                  P                  R4      '       d   R# \         P                  P                  R4      '       d   R# \        V R4      ;'       d;    V P	                  4       ;'       d#    \         P                  P                  R4      R	8g  # )
	PY_COLORS1T0FNO_COLORFORCE_COLORisattyTERMdumb)osenvirongethasattrr(   )r    s   &r   should_do_markupr/   $   s    	zz~~k"c)	zz~~k"c)	zz~~j!!	zz~~m$$hVVDKKMVVbjjnnV6LPV6Vr   c                     ] tR t^2t]! R3/ R^bR^bR^ bR^!bR^"bR^#bR^$bR^%bR	^(bR
^)bR^*bR^+bR^,bR^-bR^.bR^/bR^bR^bR^bR^b tR4R R llt]R R l4       t]P                  R R l4       t]R R l4       t
R R ltR5R  R! lltR"R#/R$ R% lltR6R& R' lltR( R) ltR7R* R+ lltR, R- ltR. R/ ltR8R0 R1 lltR2tR# )9TerminalWriterblackredgreenyellowbluepurplecyanwhiteBlackRedGreenYellowBluePurpleCyanWhiteboldlightblinkinvertNc                    V ^8  d   QhRRRR/# )r   r    zTextIO | Noner   Noner   )r   s   "r   r   TerminalWriter.__annotate__K   s     # #] #d #r   c                	n   Vf   \         P                  p\        VR4      '       dS   VP                  4       '       d=   \         P                  R8X  d(    ^ R IpVP                  V4      P                  pVf   Q h Wn	        \        V4      V n        RV n        R V n        RV n        R #   \         d     L:i ; i)Nr(   win32 T)sysstdoutr.   r(   platformcoloramaAnsiToWin32streamImportError_filer/   	hasmarkup_current_line_terminal_widthcode_highlight)selfr    rO   s   && r   __init__TerminalWriter.__init__K   s    <::D4""t{{}}9P(  ++D188'''
)$/+/"  s   B& &B43B4c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rH   ]   s     $ $3 $r   c                	J    V P                   e   V P                   # \        4       # N)rV   r   rX   s   &r   	fullwidthTerminalWriter.fullwidth\   s#    +'''!##r   c                    V ^8  d   QhRRRR/# )r   valuer   r   rG   r   )r   s   "r   r   rH   c   s     % %s %t %r   c                	    Wn         R # r]   )rV   )rX   rb   s   &&r   r_   r`   b   s    $r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rH   g   s     , ,s ,r   c                ,    \        V P                  4      # )z;Return an estimate of the width so far in the current line.)r	   rU   r^   s   &r   width_of_current_line$TerminalWriter.width_of_current_linef   s     **++r   c               $    V ^8  d   QhRRRRRR/# )r   textstrmarkupr!   r   r   )r   s   "r   r   rH   k   s!      3 $ 3 r   c                	^   V F"  pW0P                   9  g   K  \        R V: 24      h	  V P                  '       dm   VP                  4        UUu. uF"  w  r4V'       g   K  V P                   V,          NK$  	  pppV'       d'   RP	                  R V 4       4      V,           R,           pV# u uppi )zunknown markup: rK   c              3  .   "   T F  pR V R2x  K  	  R# 5i)z[mNr   ).0cods   & r   	<genexpr>(TerminalWriter.markup.<locals>.<genexpr>r   s     =#se1~s   [0m)	_esctable
ValueErrorrT   itemsjoin)rX   ri   rk   nameonescs   &&,   r   rk   TerminalWriter.markupk   s    D>>) #3D8!<==  >>>8>MHD"'4>>$''CMww===DyP Ns   B)B)c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   sepcharrj   titlez
str | Noner_   z
int | Nonerk   r!   r   rG   r   )r   s   "r   r   rH   u   s<     #" #"#" #" 	#"
 #" 
#"r   c                	   Vf   V P                   p\        P                  R8X  d
   V^,          pVeN   \        V\	        V4      ,
          ^,
          ^\	        V4      ,          ,          ^4      pW,          pV RV RV 2pMW\	        V4      ,          ,          p\	        V4      \	        VP                  4       4      ,           V8:  d   WqP                  4       ,          pV P                  ! V3/ VB  R # )NrJ    )r_   rL   rN   maxlenrstripline)rX   r}   r~   r_   rk   Nfillr   s   &&&&,   r   sepTerminalWriter.sepu   s     I <<7"
 NI
 YU+a/QW5EFJA;DV1UG1TF+D 3w<78D t9s7>>+,,	9NN$$D		$!&!r   flushFc               (    V ^8  d   QhRRRRRRRR/# )r   msgrj   r   r!   rk   r   rG   r   )r   s   "r   r   rH      s(          r   c               	   V'       d   VP                  R ^4      R,          pR V9   d   W@n        MV ;P                  V,          un        V P                  ! V3/ VB p V P                  P	                  V4       V'       d   V P                  4        R# R# R#   \
         d?    TP                  R4      P                  R4      pT P                  P	                  T4        Lfi ; i)
zunicode-escapeasciiN)	rsplitrU   rk   rS   writeUnicodeEncodeErrorencodedecoder   )rX   r   r   rk   current_lines   &&$, r   r   TerminalWriter.write   s    ::dA.r2Ls{%1"""l2"++c,V,C
&

  % 

 +  & & jj!1299'B

  %&s   B ACCc               $    V ^8  d   QhRRRRRR/# )r   srj   rk   r!   r   rG   r   )r   s   "r   r   rH      s!      c $ 4 r   c                	N    V P                   ! V3/ VB  V P                  R 4       R# )r   N)r   )rX   r   rk   s   &&,r   r   TerminalWriter.line   s    

1

4r   c                   V ^8  d   QhRR/# )r   r   rG   r   )r   s   "r   r   rH      s      t r   c                	:    V P                   P                  4        R # r]   )rS   r   r^   s   &r   r   TerminalWriter.flush   s    

r   c               $    V ^8  d   QhRRRRRR/# )r   lineszSequence[str]indentsr   rG   r   )r   s   "r   r   rH      s"     ) )= )= )RV )r   c                |   V'       d>   \        V4      \        V4      8w  d%   \        R\        V4       R\        V4       R24      hV'       g   R.\        V4      ,          pRP                  V4      pV P                  V4      P	                  4       p\        W$4       F  w  rVV P                  WV,           4       K  	  R# )a)  Write lines of source code possibly highlighted.

Keeping this private for now because the API is clunky. We should discuss how
to evolve the terminal writer so we can have more precise color support, for example
being able to write part of a line in one color and the rest in another, and so on.
zindents size (z") should have same size as lines ()rK   r   N)r   ru   rw   
_highlight
splitlineszipr   )rX   r   r   source	new_linesindentnew_lines   &&&    r   _write_sourceTerminalWriter._write_source   s     s7|s5z1 W.PQTUZQ[P\\]^  dSZ'G5!OOF+668	 #G 7FIIf'( !8r   c                    V ^8  d   QhRRRR/# )r   lexerzLiteral['python', 'diff']r   zLexer | Noner   )r   s   "r   r   rH      s      )B | r   c                	     VR 8X  d   ^ RI Hp V! 4       # VR8X  d   ^ RIHp V! 4       # \	        V4       R#   \
         d     R# i ; i)python)PythonLexerdiff)	DiffLexerN)pygments.lexers.pythonr   pygments.lexers.diffr   r   ModuleNotFoundError)rX   r   r   r   s   &&  r   _get_pygments_lexer"TerminalWriter._get_pygments_lexer   sF    	 >"}$&: {"U#" 		s   7 7 7 AAc                   V ^8  d   QhRR/# )r   r   zFormatter | Noner   )r   s   "r   r   rH      s      )9 r   c                	l    ^ RI p^ RIHp \        P
                  ! R4      p\        P
                  ! RR4      p ^ RIHp T! YCR7      #   \         d     R# i ; i  TP                  P                   d   pT! RT R	24      ThRp?iTP                  P                   d   pT! R
T R24      ThRp?ii ; i)    N)
UsageErrorPYTEST_THEMEPYTEST_THEME_MODEdark)TerminalFormatter)bgstylez9PYTEST_THEME environment variable has an invalid value: 'zC'. Hint: See available pygments styles with `pygmentize -L styles`.z>PYTEST_THEME_MODE environment variable has an invalid value: 'z7'. The allowed values are 'dark' (default) and 'light'.)pygments.utilr   _pytest.config.exceptionsr   r+   getenvpygments.formatters.terminalr   utilClassNotFoundOptionError)rX   pygmentsr   theme
theme_moder   es   &      r   _get_pygments_formatter&TerminalWriter._get_pygments_formatter   s    	  	9		.)YY2F;
	F$
@@ # 		 }}** 	KE7 SS S  }}(( 	PQ[P\ ]G G 	s:   A	 A 	AAB36BB3 B3!B..B3c               $    V ^8  d   QhRRRRRR/# )r   r   rj   r   zLiteral['diff', 'python']r   r   )r   s   "r   r   rH      s$      ";	r   c                .   V'       d%   V P                   '       d   V P                  '       g   V# V P                  V4      pVf   V# V P                  4       pVf   V# ^ RIHp V! WV4      pVR,          R8X  d   VR,          R8w  d   VRR pRV,           pV# )z5Highlight the given source if we have markup support.N)	highlightr   rs   r   )rT   rW   r   r   r   r   )rX   r   r   pygments_lexerpygments_formatterr   highlighteds   &&&    r   r   TerminalWriter._highlight   s     T^^^43F3F3FM11%8!M!99;%M&$V=OP r?d"vbzT'9%cr*K
  +-r   )rU   rS   rV   rW   rT   r   r]   )NN)rK   )r   )r   )__name__
__module____qualname____firstlineno__dictrt   rY   propertyr_   setterrf   rk   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r1   r1   2   sQ      	
             !" #$ %& '( )I.#" $ $
 % % , ,#"Ju 2)$6 r   r1   )__doc__
__future__r   r+   r   rL   typingr   r   r   r   r   compatr   wcwidthr	   pygments.formatterr
   pygments.lexerr   r   r/   r1   r   r   r   <module>r      sZ    : " 	  
       !  ,$ _ _ _r   