+
    UBilS                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIHt ]P*                  '       d>   ^ RIHt ^RIHtHt ^RIHt ]P:                  ]R	]3,          t]P@                  ],          t!R
 R lt"R R lt#R]PH                  9   t%R]PH                  9   t& ! R R]PN                  4      t(] ! R R4      4       t)])! 4       t*]*PV                  t+]*PX                  t,]*PZ                  t-]*P\                  t.]*P^                  t/]*P`                  t0]*Pb                  t1]*Pd                  t2]*Pf                  t3]*Ph                  t4]*Pj                  t5]*Pl                  t6]*Pn                  t7]*Pp                  t8]*Pr                  t9]*Pt                  t:]*Pv                  t;]*Px                  t<]*Pz                  t=]*P|                  t>]*P~                  t?]*P                  t@]*P                  tA]*P                  tB]*P                  tC]*P                  tD]*P                  tE ! R R	4      tF ! R R4      tGR?R R lltHR?R R lltIR R ltJR R ltKR R  ltLR! R" ltMR# R$ ltNR% R& ltOR' R( ltPR) R* ltQR+ R, ltRR- R. ltSR/ R0 ltTR1 R2 ltUR3 R4 ltVR5 R6 ltWR7 R8 ltX]P                  R@R9 R: ll4       tZ]P                  R?R; R< ll4       tZR?R= R> lltZR# )AzThis is (mostly) a standalone module used to write logging
information about Meson runs. Some output goes to screen,
some to logging dir and some goes to both.)annotationsN)contextmanager)	dataclassfield)Path)Literal)StringProtocolSizedStringProtocol)BaseNodeAnsiDecoratorc                   V ^8  d   QhRR/#    returnbool )formats   "4/usr/lib/python3.14/site-packages/mesonbuild/mlog.py__annotate__r   !   s     ! !D !    c                 R    \         P                  ! 4       P                  4       p V R 8H  # )windows)platformsystemlower)platnames    r   
is_windowsr   !   s"     &&(Hy  r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   %   s     ^ ^t ^r   c                 H   ^ RI Hp Hp ^ RIHp V P
                  pVP                  R4      pV! 4       pVP                  WA! V4      4      '       g   R# \        VP                  WEP                  ^,          4      ;'       g     \        P                  P                  R4      4      # )    )windllbyref)DWORDFANSICONi)ctypesr    r!   ctypes.wintypesr"   kernel32GetStdHandleGetConsoleModer   SetConsoleModevalueosenvironget)r    r!   r"   kernelstdoutmodes         r   _windows_ansir1   %   sy    $%__F  %F7D  t55 %%fjj3.>?\\2::>>R[C\]]r   CIGITHUB_ACTIONSc                      ] tR t^8t]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       t	Rt
R# )	_Severityr   N)__name__
__module____qualname____firstlineno__enumautoNOTICEWARNINGERRORDEPRECATION__static_attributes__r   r   r   r5   r5   8   s.    YY[FiikGIIKE))+Kr   r5   c                  h   ] tR t^?t$ RtR]R&   ]! ]R7      tR]R&   Rt	R]R	&   Rt
R
]R&   RtR
]R&   RtR]R&   RtRtRt]! ]R7      tR]R&   ^ tRtR]R&   RtR]R&   RtR]R&   ]R R l4       t]R R l4       tR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltRbR( R) lltRcR+ R, llt R-RR.R/R/ R0 llt!R-RR.RR1R*/R2 R3 llt"R4RR5R*R-RR.RR1R*/R6 R7 llt#R8 R9 lt$R: R; lt%R4RR<RR5R*R-RR.RR1R*/R= R> llt&R? R@ lt'RA RB lt(R<RRCR*RDRR5R*R-RR.RR4R*/RE RF llt)R<RRCR*RDRR5R*R-RR.R/RG RH llt*R<RRCR*RDRR5R*R-RR.R/RI RJ llt+R<RRCR*RDRR5R*R-RR.R/RK RL llt,R<RRCR*RDRR5R*R-RR.R/RM RN llt-RdRO RP llt.]ReRQ RR ll4       t/RS RT lt0RU RV lt1]RW RX l4       t2RY RZ lt3R[ R\ lt4R] R^ lt5R_ R` lt6Rat7R# )f_LoggerNT.Optional[str]log_dir)default_factoryT.List[str]	log_depthFr   log_to_stderrzT.Optional[T.TextIO]log_file	slog_filezT.Optional[float]log_timestamp_startzT.Set[T.Tuple[str, ...]]logged_oncezT.Optional['subprocess.Popen']	log_pagerzmeson-log.txtzT.ClassVar[str]
_LOG_FNAMEzmeson-setup.txt_SLOG_FNAMEc                   V ^8  d   QhRR/# r   r   zT.Iterator[None]r   )r   s   "r   r   _Logger.__annotate__S   s     , ,, ,r   c              #  	L   "   R V n          Rx  RV n         R#   RT n         i ; i5i)TNFlog_disable_stdoutselfs   &r   
no_logging_Logger.no_loggingR   s%     "&	,&+D#eD#s   $ 	$	!$c                   V ^8  d   QhRR/# rQ   r   )r   s   "r   r   rR   [   s     . ./ .r   c              #  	`   "   V P                   pR V n          Rx  Wn         R#   Yn         i ; i5iFNrT   )rW   restores   & r   force_logging_Logger.force_loggingZ   s,     ))"'	.&-#g#   .# .+.c                   V ^8  d   QhRR/# r   r   Noner   )r   s   "r   r   rR   c   s     $ $4 $r   c                	    R V n         R# )TNlog_errors_onlyrV   s   &r   	set_quiet_Logger.set_quietc   s
    #r   c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   rR   f   s     % %T %r   c                	    R V n         R# r\   re   rV   s   &r   set_verbose_Logger.set_verbosef   s
    $r   c                    V ^8  d   QhRRRR/# )r   startfloatr   rc   r   )r   s   "r   r   rR   i   s     ) ) )4 )r   c                	    Wn         R # N)rK   )rW   rn   s   &&r   set_timestamp_start_Logger.set_timestamp_starti   s    #( r   c                   V ^8  d   QhRR/# )r   r   rC   r   )r   s   "r   r   rR   l   s      / r   c                	J   V P                   e<   V P                   P                  pV P                   pR V n         VP                  4        V# V P                  e<   V P                  P                  pV P                  pR V n        VP                  4        V# V P	                  4        R # rq   )rI   namecloserJ   
stop_pager)rW   pathexception_around_goers   &  r   shutdown_Logger.shutdownl   s    ==$==%%D$(MM! DM!'')K>>%>>&&D$(NN!!DN!'')Kr   c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   rR   |   s     $I $IT $Ir   c                	n   V P                  4       '       g   R # . pR\        P                  9   d-   \        P                  ! \        P                  R,          4      pM\
        P                  ! R4      pV'       gz   \        4       '       dj   \
        P                  ! R4      pV'       dL   \        V4      P                  ^,          R,          R,          p\
        P                  ! R\        V4      R7      pV'       d   V.pV'       g   R #  \        P                  P                  4       pRV9  d   RVR&   R	V9  d   R
VR	&   \        P                  ! V\        P                  RRVR7      V n        R #   \          d;   pR\        P                  9   d   ^RIHp T! R\        T4       24      h R p?R # R p?ii ; i)NPAGERlessgitusrbin)ry   LESSRXFLVz-cTutf-8)stdintextencodingenv)MesonExceptionzFailed to start pager: )colorize_consoler+   r,   shlexsplitshutilwhichr   r   parentsstrcopy
subprocessPopenPIPErM   	Exceptionmesonlibr   )rW   	pager_cmdr   r   ry   r   er   s   &       r   start_pager_Logger.start_pager|   s>   $$&&	bjj BJJw$78I<<'DJLLll5)9,,Q/%7%?D!<<SY?D!F		I **//#CS #F3 D	'--iz37'sTDN 	I"**$4$'>s1vh%GHH %	Is   	A$E/ /F4:/F//F4c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   rR      s     " "D "r   c                	$   V P                   '       dm    V P                   P                  P                  4        V P                   P                  P                  4        V P                   P                  4        R V n         R # R #   \         d     L2i ; irq   )rM   r   flushrw   OSErrorwaitrV   s   &r   rx   _Logger.stop_pager   sn    >>>$$**,$$**, NN!!DN   s   AB BBc               $    V ^8  d   QhRRRRRR/# )r   logdirr   fatal_warningsr   r   rc   r   )r   s   "r   r   rR      s!     1 1 1d 1t 1r   c                	   Wn         \        \        P                  P	                  WP
                  4      R RR7      V n        \        \        P                  P	                  WP                  4      R RR7      V n        W n	        R# )wr   r   N)
rD   openr+   ry   joinrN   rI   rO   rJ   log_fatal_warnings)rW   r   r   s   &&&r   
initialize_Logger.initialize   sS    RWW\\&//BCRYZbggll63C3CDcT[\"0r   Tc               (    V ^8  d   QhRRRRRRRR/# )r   argszT.Sequence[TV_Loggable]keepr   display_timestampr   rF   r   )r   s   "r   r   rR      s+      #: $ [_ kv r   c                	   . pV P                   e?   V'       d7   RP                  \        P                  ! 4       V P                   ,
          4      .pV F  pVf   K	  \	        V\
        4      '       d   VP                  V4       K2  \	        V\        4      '       d#   VP                  VP                  V4      4       Kj  VP                  \        V4      4       K  	  V# )Nz[{:.3f}])	rK   r   time	monotonic
isinstancer   appendr   get_text)rW   r   r   r   arrargs   &&&&  r   process_markup_Logger.process_markup   s    ##/4E$$T^^%58P8P%PQRCC{#s##

3C//

3<<-.

3s8$  
r   sependc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   r   nestedr   r   rC   r   r   rc   r   )r   s   "r   r   rR      s1     0 0 0d 0 0(0480r   c          	     	   V P                   '       d   R # \        P                  ! 4       p\        VRVRVRV/  VP	                  4       pV P
                  '       d   V'       d   V P
                  R
,          R,           MRp. pVP                  R4       F4  p	V	P                  4       p	TP                  V	'       d	   Wy,           MR4       K6  	  RP                  V4      pV P                  '       d   V P                  P                  p
M3V P                  '       d   \        P                  p
M\        P                  p
 \        VRV
R7       R #   \          d4    TP#                  RR	4      P%                  R4      p\        TRT
R7        R # i ; i)Nr   r   filez|  
)r   r   asciireplace)rU   ioStringIOprintgetvaluerG   r   stripr   r   rM   r   rH   sysstderrr/   UnicodeEncodeErrorencodedecode)rW   r   r   r   r   iostrrawprependlinesloutputcleaneds   &$$$*       r   force_print_Logger.force_print   s%   """t22#2E2nn>>>39dnnR(4/rGEYYt_GGIAW[26 % ))E"C >>>^^))FZZFZZF	0#2F+! 	0jj)4;;GDG'r//	0s   8E :FFr   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   TV_Loggabler   rC   r   r   r   r   rc   r   )r   s   "r   r   rR      s2     " "; "_ """>B"NR"r   c          	     	    \        VR V4      pV P                  e6   \        VRV P                  RVRV/  V P                  P                  4        R# R# )FNr   r   r   )r   rI   r   r   )rW   r   r   r   r   r   s   &$$$* r   debug_Logger.debug   sK    T5*;<==$3=T]]===MM! %r   is_errorr   c               4    V ^8  d   QhRRRRRRRRRRR	RR
R/# )r   r   r   r   r   r   r   rC   r   r   r   rc   r   )r   s   "r   r   rR      sB     ? ?+ ? ??'6?!?=A?MQ?r   c          	     	   \        VR V4      pV P                  e4   \        VRV P                  RVRV/  V P                  P                  4        V P                  e4   \        VRV P                  RVRV/  V P                  P                  4        V P                  4       '       d   \        VRV4      pV P                  '       d	   V'       d   \        VRVRVRV/  R# R# )FNr   r   r   Tr   )r   rI   r   r   rJ   r   rf   r   )rW   r   r   r   r   r   r   r   s   &$$$$$* r   _log_Logger._log   s     T5*;<==$3=T]]===MM!>>%3>T^^>>#>NN  "  "" t->?C###x>V>>#> (0r   c               $    V ^8  d   QhRRRRRR/# )r   cmdr   r   rF   r   rc   r   )r   s   "r   r   rR      s&     C C# C[ CT Cr   c                	    \         '       g   R # V Uu. uF	  pRV R2NK  	  ppV P                  RP                  VRP                  V4      4      4       R # u upi )N"z!meson_ci!/{} {} )_in_cir   r   r   )rW   r   r   xs   &&& r   _debug_log_cmd_Logger._debug_log_cmd   sM    v"&'$Q!A3a$'

%,,S#((4.AB (s   Ac                    V ^8  d   QhRRRR/# )r   r   r   r   rc   r   )r   s   "r   r   rR      s     2 23 24 2r   c                	,    V P                  R V.4       R# )
ci_includeN)r   )rW   r   s   &&r   cmd_ci_include_Logger.cmd_ci_include   s    L4&1r   oncec               8    V ^8  d   QhRRRRRRRRRRR	RR
RRR/# )r   r   r   r   r   r   r   r   rC   r   r   r   rc   r   )r   s   "r   r   rR      sZ     v v v vv(,v v !v  $	v 04	vr   c               	n    V P                   ! VR V/ '       d   V P                  ! VRVRVRVRVRV/  R# R# )r   r   r   r   r   r   N)_should_logr   )rW   r   r   r   r   r   r   r   s   &$$$$$$*r   log_Logger.log   sE    
 T---IItuhuvu3uCuctu .r   c                    V ^8  d   QhRRRR/# )r   r   r   r   rc   r   )r   s   "r   r   rR     s      ; 4 r   c                	N    V P                   '       d   V P                  ! V!   R # R # rq   )rK   r   rW   r   s   &*r   log_timestamp_Logger.log_timestamp  s    ###HHdO $r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r   )r   s   "r   r   rR   	  s!       D T r   c               	   a R  R loV'       g   R# \         ;QJ d    . V3R lV 4       F  NK  	  5M! V3R lV 4       4      pW0P                  9   d   R# V P                  P                  V4       R# )c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   )_Logger._should_log.<locals>.__annotate__
  s     	 	k 	c 	r   c                    \        V \        4      '       d   V # \        V \        4      '       d   V P                  # \        V 4      # rq   )r   r   r   r   )r   s   &r   to_str#_Logger._should_log.<locals>.to_str
  s3    !S!!!]++vvq6Mr   Tc              3  4   <"   T F  pS! V4      x  K  	  R # 5irq   r   ).0ar  s   & r   	<genexpr>&_Logger._should_log.<locals>.<genexpr>  s     *T&))Ts   F)tuplerL   add)rW   r   r   tr  s   &$* @r   r   _Logger._should_log	  sT    	 E*T*EE*T**   Qr   fatallocationc               @    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRR/
# )r   severityr5   rargsr   r   r   r  r  T.Optional[BaseNode]r   r   rC   r   r   r   rc   r   )r   s   "r   r   rR     sp     %E %E9 %Ek %E%E.2%E1%E  %E .=%E (	%E
 "%E
 .2%Er   c               	   ^RI Hp
Hp V\        P                  J d   \        R4      .pMbV\        P                  J d   \        R4      .pMAV\        P                  J d   \        R4      .pM V\        P                  J d   \        R4      .pX\        V	4      ,           pV P                  ! VRV/ '       g   R# Ve]   V! VP                  \        P                  ! 4       4      p\!        WP"                  4      p\$        P&                  ! RV.4      pVV,           pV P(                  ! VR	VR
VRVRV/  V ;P*                  ^,          un        V P,                  '       d   V'       d	   V
! R4      hR# R# )   )r   relpathzNOTICE:zWARNING:ERROR:zDEPRECATION:r   NTV_LoggableListr   r   r   r   z Fatal warnings enabled, aborting)r   r   r  r5   r<   boldr=   yellowr>   redr?   listr   filenamer+   getcwdget_error_location_stringlinenoTcastr   log_warnings_counterr   )rW   r  r   r  r  r   r   r   r   r  r   r  labelr   location_filelocation_strlocation_lists   &&$$$$$$$*       r   
_log_error_Logger._log_error  s5    	6 y'''&*9o%6E***J'(E(]OE...()EtE{"1D11#H$5$5ryy{CM4]OOTL FF#4|nEM 4'D		4LLCLSL8L!!Q&!"""u !CDD (-"r   c               8    V ^8  d   QhRRRRRRRRRRR	R
RR
RR/# r   r   r   r   r   r  r  r  r   r   rC   r   r   rc   r   )r   s   "r   r   rR   ?  s]     O O; OO)-O,O O )8O #	O /3	Or   c               	b    V P                   ! \        P                  .VO5R VRVRVRVRVRVRR/ # r   r  r  r   r   r   r   T)r(  r5   r>   rW   r   r  r  r   r   r   r   s   &$$$$$$*r   error_Logger.error?  sb    
 y O OD O OX` O&,O25O;>OIMO 	Or   c               8    V ^8  d   QhRRRRRRRRRRR	R
RR
RR/# r+  r   )r   s   "r   r   rR   G  s]     O O[ OO+/O.O O +:O %	O 15	Or   c               	b    V P                   ! \        P                  .VO5R VRVRVRVRVRVRR/ # r-  )r(  r5   r=   r.  s   &$$$$$$*r   warning_Logger.warningG  sd    
 y00 O4 Od O% OZb O&,O25O;>OIMO 	Or   c               8    V ^8  d   QhRRRRRRRRRRR	R
RR
RR/# r+  r   )r   s   "r   r   rR   O  s]     O O OO/3O2O !O />O )	O 59	Or   c               	b    V P                   ! \        P                  .VO5R VRVRVRVRVRVRR/ # r-  )r(  r5   r?   r.  s   &$$$$$$*r   deprecation_Logger.deprecationO  sd    
 y44 Ot O$ Oe O^f O&,O25O;>OIMO 	Or   c               8    V ^8  d   QhRRRRRRRRRRR	R
RR
RR/# r+  r   )r   s   "r   r   rR   W  s]     P PK PP*.P-P P *9P $	P 04	Pr   c               	b    V P                   ! \        P                  .VO5R VRVRVRVRVRVRR/ # )r   r  r  r   r   r   r   F)r(  r5   r<   r.  s   &$$$$$$*r   notice_Logger.noticeW  sd    
 y// P$ PT P PYa P&,P25P;>PINP 	Pr   c               $    V ^8  d   QhRRRRRR/# )r   r   r   prefixzT.Optional[AnsiDecorator]r   rc   r   )r   s   "r   r   rR   _  s#     + +9 +.G +SW +r   c                	  a Vf   \        R4      pV P                  4        . p\        ;QJ d    V3R lR 4       F  '       d   K   RM	  RM! V3R lR 4       4      '       dj   \        \	        SP
                  4      \	        \        P                  ! 4       4      4      pVP                  V RSP                   RSP                   R24       V'       d   VP                  V4       VP                  \        S4      4       V P                  4       ;_uu_ 4        V P                  ! VRR/  R R R 4       R #   + '       g   i     R # ; i)Nr  c              3  B   <"   T F  p\        SVR 4      R Jx  K  	  R # 5irq   )getattr)r  r  r   s   & r   r  $_Logger.exception.<locals>.<genexpr>d  s!     T8S1wq!T"$.8Ss   FT:r   )r   r   colno)r  r   allget_relative_pathr   r   r+   r  r   r   rD  r   r^   )rW   r   r>  r   ry   s   &f&  r   	exception_Logger.exception_  s    >]F
463T8ST333T8STTT %T!&&\4		3DEDKK4&!((1QWWIQ78KKCF!!HHd*T* "!!!s   D44E	c                    V ^8  d   QhRRRR/# )r   rv   r   r   zT.Generator[None, None, None]r   )r   s   "r   r   rR   q  s     ! !3 !(E !r   c              #  	   "   V P                   P                  V4        R x  V P                   P                  4        R #   T P                   P                  4        i ; i5irq   )rG   r   pop)rW   rv   s   &&r   r   _Logger.nestedp  s?     d#	!NN DNN s   A? AAAc                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   rR   x  s      S r   c                	    V P                   # rq   )rD   rV   s   &r   get_log_dir_Logger.get_log_dirx  s    ||r   c                   V ^8  d   QhRR/# r   r   intr   )r   s   "r   r   rR   {  s     # #s #r   c                	,    \        V P                  4      # rq   )lenrG   rV   s   &r   get_log_depth_Logger.get_log_depth{  s    4>>""r   c                   V ^8  d   QhRR/# rQ   r   )r   s   "r   r   rR     s     , ,!1 ,r   c              #  	`   "   V P                   p^ V n          Rx  Wn         R#   Yn         i ; i5i)r   Nr#  )rW   olds   & r   nested_warnings_Logger.nested_warnings~  s,     ''$%!	,(+%%r`   c                   V ^8  d   QhRR/# rS  r   )r   s   "r   r   rR     s     ) )3 )r   c                	    V P                   # rq   r[  rV   s   &r   get_warning_count_Logger.get_warning_count  s    (((r   c                    V ^8  d   QhRRRR/# )r   	to_stderrr   r   rc   r   )r   s   "r   r   rR     s     ' '$ '4 'r   c                	    Wn         R # rq   )rH   )rW   rd  s   &&r   redirect_Logger.redirect  s    &r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rR     s     ! !$ !r   c                	   V P                   '       d   \        P                  M\        P                  p\	        VR R4      pVe   V#  \        4       '       d8   \        P                  ! VP                  4       4      ;'       d    \        4       pMP\        P                  ! VP                  4       4      ;'       d$    \        P                  P                  RR4      R8g  p W!n        V#   \         d    Rp Li ; i)r   NTERMdumbF)rH   r   r   r/   rA  r   r+   isattyfilenor1   r,   r-   r   r   )rW   r   _colorize_consoles   &  r   r   _Logger.colorize_console  s    #111szz")&2Dd"K($$	&||$&IIfmmo$>$R$R=?!$&IIfmmo$>$k$k2::>>RXZ`CaekCk! #4    	& %	&s$   :C& C& *C& 9$C& &C65C6c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   rR     s     	 	t 	r   c                	    V P                   '       d   \        P                  M\        P                  p\	        4       '       d    \        VR 4       R# R#   \         d     R# i ; i)r   N)rH   r   r   r/   r   delattrAttributeError)rW   r   s   & r   setup_console_Logger.setup_console  sN      $111szz<< 23  " s   A A#"A#)
rD   rU   rf   r   rI   rM   rK   rH   r#  rJ   FTrq   r   )8r6   r7   r8   r9   rD   __annotations__r   r  rG   rH   rI   rJ   rK   r   rU   rf   setrL   r#  rM   rN   rO   r   rX   r^   rg   rk   rr   r{   r   rx   r   r   r   r   r   r   r   r   r   r   r(  r/  r3  r7  r;  rG  r   rP  rW  r]  ra  rf  r   rt  r@   r   r   r   rB   rB   ?   s;     $G_#"48I{8M4%)H")&*I#*-1*1O,1#,FK)F04I-4"1J1#4K4, , . .$%) $IL"104 0+/0:"t "%)"EI"? ? ?9=?$(?DH?C2vu vv/3v#'v $(v '+	v%E %%E59%E48%E #'%E @D%E +/	%E
 %)%ENO O04O/3O "O ;?O &*	OO"O26O15O  $O =AO (,	OO!&O6:O59O $(O AEO ,0	OP!P15P04P #P <@P '+	P+" ! !# , ,)'!	 	r   rB   c                  N    ] tR tRtRtRR R lltR R ltR R ltR	 R
 ltRt	R# )r   i  z[0mc               $    V ^8  d   QhRRRRRR/# )r   r   r   codequotedr   r   )r   s   "r   r   AnsiDecorator.__annotate__  s!      S  T r   c                	*    Wn         W n        W0n        R # rq   )r   r}  r~  )rW   r   r}  r~  s   &&&&r   __init__AnsiDecorator.__init__  s    		r   c                    V ^8  d   QhRRRR/# )r   
with_codesr   r   r   r   )r   s   "r   r   r    s      4 C r   c                	    V P                   pV'       dE   V P                  '       d3   V P                  V P                   ,           \        P                  ,           pV P                  '       d   R V R 2pV# )r   )r   r}  r   
plain_coder~  )rW   r  r   s   && r   r   AnsiDecorator.get_text  sN    yy$)))99tyy(=+C+CCD;;;tfA;Dr   c                   V ^8  d   QhRR/# rS  r   )r   s   "r   r   r    s       r   c                	,    \        V P                  4      # rq   )rV  r   rV   s   &r   __len__AnsiDecorator.__len__  s    499~r   c                   V ^8  d   QhRR/# rN  r   )r   s   "r   r   r    s     1 1 1r   c                	4    V P                  \        4       4      # rq   )r   r   rV   s   &r   __str__AnsiDecorator.__str__  s    }}-/00r   )r}  r~  r   Nrv  )
r6   r7   r8   r9   r  r  r   r  r  r@   r   r   r   r   r     s     J
1 1r   c                  :    ] tR tRtR R ltR R ltR R ltRtR	# )
AnsiTexti  c                   V ^8  d   QhRR/# )r   r   z'SizedStringProtocol'r   )r   s   "r   r   AnsiText.__annotate__  s      3 r   c                	    Wn         R # rq   r   r   s   &*r   r  AnsiText.__init__  s    	r   c                   V ^8  d   QhRR/# rS  r   )r   s   "r   r   r    s     . . .r   c                	:    \        R  V P                   4       4      # )c              3  8   "   T F  p\        V4      x  K  	  R # 5irq   )rV  r  r   s   & r   r  #AnsiText.__len__.<locals>.<genexpr>  s     -9a3q669   )sumr   rV   s   &r   r  AnsiText.__len__  s    -499---r   c                   V ^8  d   QhRR/# rN  r   )r   s   "r   r   r    s     2 2 2r   c                	F    R P                  R V P                   4       4      # )r   c              3  8   "   T F  p\        V4      x  K  	  R # 5irq   )r   r  s   & r   r  #AnsiText.__str__.<locals>.<genexpr>  s     1y!s1vvyr  )r   r   rV   s   &r   r  AnsiText.__str__  s    ww1tyy111r   r  N)r6   r7   r8   r9   r  r  r  r@   r   r   r   r  r    s    .2 2r   r  c               $    V ^8  d   QhRRRRRR/# r   r   r   r~  r   r   r   r   )r   s   "r   r   r     s!     9 9s 9D 9] 9r   c                    \        V R VR7      # )z[1mr~  r   r   r~  s   &&r   r  r        y88r   c               $    V ^8  d   QhRRRRRR/# r  r   )r   s   "r   r   r     s!     9 9 9d 9} 9r   c                    \        V R VR7      # )z[3mr  r  r  s   &&r   italicr    r  r   c                    V ^8  d   QhRRRR/# r   r   r   r   r   r   )r   s   "r   r   r     s     # # # #r   c                    \        V R 4      # rx  r  r   s   &r   plainr    s    r""r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     s     - -c -m -r   c                    \        V R 4      # )z[1;31mr  r  s   &r   r  r        |,,r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     s     - - - -r   c                    \        V R 4      # )z[1;32mr  r  s   &r   greenr    r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     s     - - - -r   c                    \        V R 4      # )z[1;33mr  r  s   &r   r  r    r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r          - -s -} -r   c                    \        V R 4      # )z[1;34mr  r  s   &r   bluer    r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     r  r   c                    \        V R 4      # )z[1;36mr  r  s   &r   cyanr    r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     s     + +S +] +r   c                    \        V R 4      # )z[31mr  r  s   &r   
normal_redr        z**r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r      s     + +s +} +r   c                    \        V R 4      # )z[32mr  r  s   &r   normal_greenr     r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     s     + + + +r   c                    \        V R 4      # )z[33mr  r  s   &r   normal_yellowr    r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r          + +c +m +r   c                    \        V R 4      # )z[34mr  r  s   &r   normal_bluer    r  r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r   	  r  r   c                    \        V R 4      # )z[36mr  r  s   &r   normal_cyanr  	  r  r   c               $    V ^8  d   QhRRRRRR/# )r   fnamer   r   rT  r   r   r   )r   s   "r   r   r     s!        ^  S  S  r   c                    V  R V R 2# )rC  r   )r  r   s   &&r   r  r    s    WAfXQr   c               $    V ^8  d   QhRRRRRR/# )r   targetr   currentr   r   )r   s   "r   r   r     s!      d T d r   c                    R.pV.VP                   O F#  p V P                  V4      p\        . VOVN5!  u # 	  V #   \         d     Mi ; iTR.,          pKF  )z#Get the path to target from current.z..)r   relative_tor   
ValueError)r  r  accpartry   s   &&   r   rF  rF    so     %C+7??+	%%d+D##d## , M  		vs   <A
	A
c                    V ^8  d   QhRRRR/# )r   
input_listrF   r   r   r   )r   s   "r   r   r      s     	 	K 	C 	r   c                    \        V 4      pV^8  d-   RP                  RP                  V RR 4      V R,          .4      # V^8X  d   RP                  V 4      # V^8X  d
   V ^ ,          # R# )r   z and z, Nr   r   )rV  r   )r  r   s   & r   format_listr     sc    JA1u||TYYz#27BHII	
a||J''	
a!}r   c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   linerD  rT  r   r   )r   s   "r   r   r   ,  s(     - -C -s -3 -3 -r   c                &    V  RV RRV,           R2# )zPrint a line with a caret pointing to the colno

:param text: A message to display before the line
:param line: The line of code to be pointed to
:param colno: The column number to point at
:return: A formatted string of the text, line, and a caret
r   r   ^r   )r   r  rD  s   &&&r   	code_liner  ,  s!     V2dV2cEk]!,,r   c               (    V ^8  d   QhRRRRRRRR/# )r   r  T.Union[str, os.PathLike]bannerr   forcezLiteral[True]r   r   )r   s   "r   r   r   7  s     h h1 h3 h} h`c hr   c                    R # rq   r   r  r  r  s   &&&r   ci_fold_filer  6  s    ehr   c               (    V ^8  d   QhRRRRRRRR/# )	r   r  r  r  r   r  zLiteral[False]r   rC   r   )r   s   "r   r   r   :  s     v v1 v3 v~ vbq vr   c                    R # rq   r   r  s   &&&r   r  r  9  s    svr   c               (    V ^8  d   QhRRRRRRRR/# )	r   r  r  r  r   r  r   r   rC   r   )r   s   "r   r   r   <  s*     + +1 +3 +t +Xg +r   c                   \         '       g   V'       g   R # \        '       d
   RV R2pRpMJV'       d   TpRpM=R\        P                  9   d'   R\        P                  P                  V 4       R2pRpMR # \        V RRR	7      ;_uu_ 4       pVP                  4       pR R R 4       V R
X R
V R
2#   + '       g   i     L; i)Nz::group::==== z ====z::endgroup::r   MESON_FORCE_SHOW_LOGSz!==== Forcing display of logs for rr   r   r   )r   _ci_is_githubr+   r,   ry   basenamer   read)r  r  r  headerfooterfdatas   &&&    r   r  r  <  s    6%}!&/		 BJJ	.4RWW5E5Ee5L4MUS 	eS7	+	+qvvx 
,XRvRxr** 
,	+s   B00C 	rv  rw  )[__doc__
__future__r   r:   r+   r   r   r   r   r   r   r   typingr!  
contextlibr   dataclassesr   r   pathlibr   TYPE_CHECKINGtyping_extensionsr   _typingr   r	   mparserr
   Unionr   r   Listr  r   r1   r,   r   r  Enumr5   rB   _loggerr   r   r   r7  r/  rG  r   rW  rP  ra  r   r   r   r   r]  rX   r;  r   rf  rg   rr   rk   rt  r{   r   rx   r3  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rF  r  r  overloadr  r   r   r   <module>r     s  . #  	 	 
       % ( ???)<!''#>?Kff[)O!^ 
	 BJJ.		  e e eN )''++ !!	!!%%!!-- 
kk%%	))
	''	11 !!%%!!

//1 1,2 299#-----+++++ "	-  h  h v  v+ +r   