+
    ˜°³jé"  ã                   ó  € ^ 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
 ^ RIHt ^ RIHt ^ RIt^ RIt]P$                  R 4       tR tR tR	 tR
 tR t ! R R]P2                  P4                  P6                  4      tR tR R ltR# )é    N©ÚAbstractContextManager)ÚCallable)Ú
LazyString)Úconfigc               #   óT  "  € \         P                  P                  P                  4       p \         P                  P                  P	                  \         P                  P                  P                  4       4        R x € \         P                  P                  P	                  V 4       \         P                  P                  P                  4        R #   \         P                  P                  P	                  T 4       \         P                  P                  P                  4        i ; i5i©N)ÚtorchÚ_loggingÚ	_internalÚ_get_log_stateÚ_set_log_stateÚLogStateÚ
_init_logs)Ú
prev_states    Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/testing/_internal/logging_utils.pyÚpreserve_log_stater      s¯   é € ä—‘×)Ñ)×8Ñ8Ó:€JÜ	‡N�N×Ñ×+Ñ+¬E¯N©N×,DÑ,D×,MÑ,MÓ,OÔPð.Ûä�‰× Ñ ×/Ñ/°
Ô;Ü�‰× Ñ ×+Ñ+Ö-øô 	�‰× Ñ ×/Ñ/°
Ô;Ü�‰× Ñ ×+Ñ+Õ-üs    ‚A8D(Á;C Á?AD(ÃAD%Ä%D(c                 óH  € \         P                  ! 4       p\        P                  P                  P                  \        P                  R V /4      pVP                  \        4       4       VP                  V4       \        P                  P                  P                  4        V# )Ú
TORCH_LOGS)Ú
contextlibÚ	ExitStackÚunittestÚmockÚpatchÚdictÚosÚenvironÚenter_contextr   r
   r   r   r   )ÚsettingsÚ
exit_stackÚsettings_patchs   &  r   Úlog_settingsr"      sq   € Ü×%Ò%Ó'€JÜ—]‘]×(Ñ(×-Ñ-¬b¯j©j¸<ÈÐ:RÓS€NØ×ÑÔ/Ó1Ô2Ø×Ñ˜^Ô,Ü	‡N�N×Ñ×'Ñ'Ô)ØÐó    c                  ó¢   € \         P                  ! 4       pVP                  \        4       4       \        P
                  P                  ! R/ V B  V# )N© )r   r   r   r   r
   r   Úset_logs)Úkwargsr    s   , r   Úlog_apir(   "   s=   € Ü×%Ò%Ó'€JØ×ÑÔ/Ó1Ô2Ü	‡N�N×ÒÑ%˜fÒ%ØÐr#   c                  ó   aa€ ^
R^R^(R/o. oVV3R lpV P                  4        F—  w  r#\        V\        4      '       d   SP                  V4       K.  \        V\        4      '       d   V! W#4       KN  \        V\
        4      '       d+   VR8X  d$   VP                  4        F  w  rEV! WE4       K  	  KŽ  \        R4      h	  RP                  S4      # )é
   Ú+Ú Ú-c                 óÂ   <€ \        V \        4      '       d?   \        V\        4      '       d)   VS9   d"   SP                  SV,          V ,           4       R # \	        R4      h)NúInvalid value for setting)Ú
isinstanceÚstrÚintÚappendÚ
ValueError)ÚnameÚlevelÚINT_TO_VERBOSITYr   s   &&€€r   Úappend_settingÚ*kwargs_to_settings.<locals>.append_setting.   sJ   ø€ Ü�dœC× Ò ¤Z°´s×%;Ò%;ÀÐIYÔ@YØ�O‰OÐ,¨UÕ3°dÕ:Ô;ÙäÐ8Ó9Ð9r#   Úmodulesr/   Ú,)Úitemsr0   Úboolr3   r2   r   r4   Újoin)r'   r8   r5   ÚvalÚmodule_qnamer6   r7   r   s   ,     @@r   Úkwargs_to_settingsrA   )   s°   ù€ Ø˜C  R¨¨SÐ1Ðà€Hö:ð —\‘\–^‰	ˆÜ�cœ4× Ò Ø�O‰O˜DÖ!Ü˜œS×!Ò!Ù˜4Ö%Ü˜œT×"Ò" t¨yÔ'8Ø'*§y¡y¦{Ñ#�Ù˜|Ö3ó (3ô Ð8Ó9Ð9ñ $ð �8‰8�HÓÐr#   c                  ó   a € V 3R  lpV# )c                 óN   <a € \         P                  ! R R/4      V V3R l4       pV# )Úfx_graph_cacheFc           	      ó  <€ \         P                  P                  4        . p\        S4      ^ 8X  d,   V P	                  V4      ;_uu_ 4        S! W4       RRR4       MO\        \        R/ SB 4      ;_uu_ 4        V P	                  V4      ;_uu_ 4        S! W4       RRR4       RRR4       \         P                  P                  4        VP                  4        \        R/ SB ;_uu_ 4        V P	                  V4      ;_uu_ 4        S! W4       RRR4       RRR4       R#   + '       g   i     L†; i  + '       g   i     L¡; i  + '       g   i     L¬; i  + '       g   i     LS; i  + '       g   i     R# ; i)r   Nr%   )	r
   Ú_dynamoÚresetÚlenÚ_handler_watcherr"   rA   Úclearr(   )ÚselfÚrecordsÚfnr'   s   & €€r   Útest_fnÚ3make_logging_test.<locals>.wrapper.<locals>.test_fnP   sü   ø€ ô �M‰M×ÑÔ!ØˆGä�6‹{˜aÔØ×*Ñ*¨7×3Õ3Ù�tÔ%÷ 4Ð3ô "Ô"4Ñ">°vÑ">×?Õ?À×AVÑAVÐW^×A_ÕA_Ù�tÔ%÷ B`×?ô �M‰M×ÑÔ!Ø�M‰MŒOÜÑ"˜6×"Ó" D×$9Ñ$9¸'×$BÕ$BÙ�4Ô!÷ %C×"Ñ"÷ 4×3ú÷ B`×A_ú×?×?ú÷ %C×$Bú×"×"Ð"úsT   Á	D"Á9EÂ	D5	ÂEÃ-E.Ä	E	ÄE.Ä"D2	Ä5EÅ EÅE	ÅE+Å&E.Å.E?	)Úinductor_configr   )rM   rN   r'   s   f €r   ÚwrapperÚ"make_logging_test.<locals>.wrapperO   s-   ù€ Ü	×	Ò	Ð 0°%Ð8Ó	9õ	"ó 
:ð	"ð& ˆr#   r%   )r'   rQ   s   l r   Úmake_logging_testrS   N   s   ø€ õð. €Nr#   c                 ó   a € V 3R  lpV# )c                 ó   <a € V V3R  lpV# )c           	      ó"  <€ \         P                  P                  4        . p\        S4      ;_uu_ 4        V P	                  V4      ;_uu_ 4        S! W4       R R R 4       R R R 4       R #   + '       g   i     L; i  + '       g   i     R # ; ir	   )r
   rF   rG   r"   rI   )rK   rL   rM   r   s   & €€r   rN   Ú4make_settings_test.<locals>.wrapper.<locals>.test_fnj   sX   ø€ Ü�M‰M×ÑÔ!ØˆGä˜h×'Õ'¨×)>Ñ)>¸w×)GÕ)GÙ�4Ô!÷ *H×'Ñ'×)G×)Gú×'×'Ð'ús#   µA=Á	A*	ÁA=Á*A:Á5A=Á=B	r%   )rM   rN   r   s   f €r   rQ   Ú#make_settings_test.<locals>.wrapperi   s   ù€ ö	"ð ˆr#   r%   )r   rQ   s   f r   Úmake_settings_testrY   h   s   ø€ õð €Nr#   c                   ó^   a a€ ] tR t^ut o]V 3R l4       t]R 4       tR tR tR t	Rt
VtV ;t# )ÚLoggingTestCasec                ó®  <€ \         SV `  4        V P                  P                  \        P
                  P                  P                  \        P                  R R/4      4       V P                  P                  \        P
                  P                  RR4      4       V P                  P                  \        P
                  P                  RR4      4       R# )Ú___LOG_TESTINGr,   z$torch._dynamo.config.suppress_errorsTztorch._dynamo.config.verboseFN)
ÚsuperÚ
setUpClassÚ_exit_stackr   r   r   r   r   r   r   )ÚclsÚ	__class__s   &€r   r_   ÚLoggingTestCase.setUpClassv   s–   ø€ ä‰ÑÔØ�‰×%Ñ%Ü�M‰M×Ñ×$Ñ$¤R§Z¡ZÐ2BÀBÐ1GÓHô	
ð 	�‰×%Ñ%Ü�M‰M×ÑÐ FÈÓMô	
ð 	�‰×%Ñ%Ü�M‰M×ÑÐ >ÀÓFö	
r#   c                óÚ   € V P                   P                  4        \        P                  P                  P
                  P                  4        \        P                  P                  4        R # r	   )r`   Úcloser
   r   r   Ú	log_staterJ   r   )ra   s   &r   ÚtearDownClassÚLoggingTestCase.tearDownClassƒ   s>   € à�‰×ÑÔÜ�‰× Ñ ×*Ñ*×0Ñ0Ô2Ü�‰×!Ñ!Ö#r#   c                óx   a€ \         ;QJ d    V3R  lV 4       F  '       g   K   R# 	  R# ! V3R  lV 4       4      # )c              3   óJ   <"  € T F  pSVP                  4       9   x € K  	  R # 5ir	   )Ú
getMessage)Ú.0ÚrÚms   & €r   Ú	<genexpr>Ú,LoggingTestCase.hasRecord.<locals>.<genexpr>Š   s   øé € Ð8±¨1�1˜Ÿ™›Ö&³ùs   ƒ #TF)Úany)rK   rL   rn   s   &&fr   Ú	hasRecordÚLoggingTestCase.hasRecord‰   s,   ø€ ß‹sÔ8±Ó8�sŒsÐ8ŠsÐ8ˆsÔ8±Ó8Ó8Ð8r#   c           	     óÎ   aaa€ R oS F>  oVSP                  4       9   g   K  V P                  S\        VVV3R l4      R7       SoK@  	  Sf   V P                  RV RS 24       S# )Nc                  ó   <€ R S RS  RS 2# )zmultiple matching records: z and ú among r%   )rm   ÚrecordrL   s   €€€r   Ú<lambda>Ú+LoggingTestCase.getRecord.<locals>.<lambda>•   s   ø€ Ð"=¸f¸XÀUÈ1È#ÈWÐU\ÐT]Ñ ^r#   )Úmsgzdid not find record with rv   )rk   ÚassertIsNoner   Úfail)rK   rL   rn   rm   rw   s   &f&@@r   Ú	getRecordÚLoggingTestCase.getRecordŒ   sp   ú€ ØˆÛˆAð �A—L‘L“NÖ"Ø×!Ñ!ØÜ"Þ^óð "ô ð ’ñ ð Š>Ø�I‰IÐ1°!°°G¸G¸9ÐEÔFØˆr#   c                ó°  aaa€ \         P                  ! 4       p\        4       oVV3R  lo\        P                  P
                  P                  P                  4        Fñ  p\        P                  ! V4      pVP                   Uu. uF6  p\        P                  P
                  P                  V4      '       g   K4  VNK8  	  pp\        V4      pV P                  V^R4       V P                  V^ R4       V FU  pVP                  p	V3R lp
VP!                  \"        P$                  P&                  P)                  VRV
! V	4      4      4       KW  	  Kó  	  V# u upi )c                 ót   <€ \        V 4      pVS9  d%   SP                  V4       SP                  V 4       R # R # r	   )ÚidÚaddr3   )rw   Ú	record_idÚrecord_listÚseen_record_idss   & €€r   Úemit_post_hookÚ8LoggingTestCase._handler_watcher.<locals>.emit_post_hook£   s5   ø€ ä˜6›
ˆIØ Ô/Ø×#Ñ# IÔ.Ø×"Ñ" 6Ö*ñ 0r#   zmAll pt2 loggers should only have at most two Torch handlers (debug artifacts and messages above debug level).z9All pt2 loggers should have more than zero Torch handlersc                 ó   <a € VV 3R  lpV# )c                 ó(   <€ S! V 4       S! V 4       R # r	   r%   )rw   r†   Úold_emits   &€€r   Únew_emitÚELoggingTestCase._handler_watcher.<locals>.make_emit.<locals>.new_emitÂ   s   ø€ Ù  Ô(Ù& vÖ.r#   r%   )rŠ   r‹   r†   s   f €r   Ú	make_emitÚ3LoggingTestCase._handler_watcher.<locals>.make_emitÁ   s   ù€ ö/ð $�Or#   Úemit)r   r   Úsetr
   r   r   Úlog_registryÚget_log_qnamesÚloggingÚ	getLoggerÚhandlersÚ_is_torch_handlerrH   ÚassertLessEqualÚassertGreaterr�   r   r   r   r   Úobject)rK   r„   r    Ú	log_qnameÚloggerÚhÚtorch_handlersÚnum_handlersÚhandlerrŠ   r�   r†   r…   s   &f         @@r   rI   Ú LoggingTestCase._handler_watcherŸ   s!  ú€ Ü×)Ò)Ó+ˆ
Ü›%ˆö	+ô Ÿ™×1Ñ1×>Ñ>×MÑMÖOˆIÜ×&Ò& yÓ1ˆFð  Ÿšóá(�AÜ—>‘>×+Ñ+×=Ñ=¸a×@÷ �Ù(ð ð ô
 ˜~Ó.ˆLØ× Ñ ØØØôð ×Ñ˜|¨QÐ0kÔlã)�Ø"Ÿ<™<�õ$ð ×(Ñ(Ü—M‘M×'Ñ'×.Ñ.¨w¸Á	È(Ó@SÓTöó *ñ! Pð< Ðùò9s   Â1EÂ9Er%   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úclassmethodr_   rg   rr   r}   rI   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rb   Ú__classdict__s   @@r   r[   r[   u   s?   ù‡ € Øô

ó ð

ð ñ$ó ð$ò
9ò÷&-ò -r#   r[   c                ó¬   a aaa€ \         P                  ! 4       p\        P                  ! VR7      o\        P
                  VVV 3R l4       oVV3R lpW#3# )zªExample:
logs_to_string("torch._inductor.compile_fx", "post_grad_graphs")
returns the output of TORCH_LOGS="post_grad_graphs" from the
torch._inductor.compile_fx module.
©Ústreamc               3   óÊ   <"  €  \         P                  P                  SS4      p V P                  S4       R x € V P	                  S4       R #   X P	                  S4       i ; i5ir	   )r
   r   ÚgetArtifactLoggerÚ
addHandlerÚremoveHandler)r›   rŸ   Ú
log_optionÚmodules    €€€r   Útmp_redirect_logsÚ)logs_to_string.<locals>.tmp_redirect_logsØ   sN   øé € ð	*Ü—^‘^×5Ñ5°f¸jÓIˆFØ×Ñ˜gÔ&Ûà× Ñ  Ö)øˆF× Ñ  Õ)üs   ƒA#…5A ºA#ÁA Á A#c                  óJ   <€ \        S4      p V P                  S! 4       4       V # r	   )r"   r   )r    r±   r³   s    €€r   Úctx_managerÚ#logs_to_string.<locals>.ctx_managerá   s%   ø€ Ü! *Ó-ˆ
Ø× Ñ Ñ!2Ó!4Ô5ØÐr#   )ÚioÚStringIOr“   ÚStreamHandlerr   Úcontextmanager)r²   r±   Ú
log_streamr¶   rŸ   r³   s   ff  @@r   Úlogs_to_stringr½   Ï   sH   û€ ô —’“€JÜ×#Ò#¨:Ô6€Gä×Ñö*ó ð*öð
 Ð"Ð"r#   c                ó°   € V ^8„  d   QhR\         R\         R\        \        \        P                  ,          \
        . \        R,          3,          3,          /# )é   r²   Úlog_optionsÚreturnN)r1   ÚtupleÚlistr¸   r¹   r   r   )Úformats   "r   Ú__annotate__rÅ   é   s_   € ÷ $ñ $¤Cð $´sð $¼uÄTÌ"Ï+É+ÕEVÔX`ÐacÔe{ð  }Aõ  fBð  bBõ  YCð  FCõ  @Dñ $r#   c                ó(  a aaa€ \        \        S4      4       Uu. uF  p\        P                  ! 4       NK  	  ppV Uu. uF  p\        P
                  ! VR7      NK  	  upo\        P                  VVV 3R l4       oR VV3R llpW53# u upi u upi )zØExample:
multiple_logs_to_string("torch._inductor.compile_fx", "pre_grad_graphs", "post_grad_graphs")
returns the output of TORCH_LOGS="pre_graph_graphs, post_grad_graphs" from the
torch._inductor.compile_fx module.
r«   c               3   ó|  <"  € S U u. uF#  p \         P                  P                  SV 4      NK%  	  pp  \        VSR R7       F  w  r#VP	                  V4       K  	  Rx € \        VSR R7       F  w  r#VP                  V4       K  	  R# u up i   \        TSR R7       F  w  r#TP                  T4       K  	  i ; i5i)T)ÚstrictN)r
   r   r®   Úzipr¯   r°   )ÚoptionÚloggersr›   rŸ   r•   rÀ   r²   s       €€€r   r³   Ú2multiple_logs_to_string.<locals>.tmp_redirect_logsò   sª   øé € áR]Ó^ÑR]È”5—>‘>×3Ñ3°F¸FÖCÑR]ˆÐ^ð	.Ü#& w°À×#F‘�Ø×!Ñ! 'Ö*ñ $Gãä#& w°À×#F‘�Ø×$Ñ$ WÖ-ó $Gùò _øô $' w°À×#F‘�Ø×$Ñ$ WÖ-ò $Güs&   ƒB<ˆ)B
±B<´,B Á /B<Â*B9Â9B<c                ó2   € V ^8„  d   QhR\         R,          /# )r¿   rÁ   Nr   )rÄ   s   "r   rÅ   Ú-multiple_logs_to_string.<locals>.__annotate__ý   s   € ÷ ñ Ô/°Õ5ñ r#   c                  óh   <€ \        R P                  S4      4      p V P                  S! 4       4       V # )z, )r"   r>   r   )r    rÀ   r³   s    €€r   r¶   Ú,multiple_logs_to_string.<locals>.ctx_managerý   s.   ø€ Ü! $§)¡)¨KÓ"8Ó9ˆ
Ø× Ñ Ñ!2Ó!4Ô5ØÐr#   )ÚrangerH   r¸   r¹   r“   rº   r   r»   )r²   rÀ   Ú_Úlog_streamsr¼   r¶   r•   r³   s   fj    @@r   Úmultiple_logs_to_stringrÔ   é   s€   û€ ô +0´°KÓ0@Ô*AÓBÑ*A Q”2—;’;–=Ñ*A€KÐBÙKVÓWÉ;¸Z”×%Ò%¨Z×8É;ÑW€Hä×Ñö.ó ð.÷ñ ð
 Ð#Ð#ùò' CùÚWs
   ›B
¿ B)Útorch._dynamo.test_caser
   Úunittest.mockr   r   r   Útorch._loggingÚtorch._logging._internalr   Úcollections.abcr   Útorch._dynamo.utilsr   Útorch._inductorr   rP   r“   r¸   r»   r   r"   r(   rA   rS   rY   rF   Ú	test_caseÚTestCaser[   r½   rÔ   r%   r#   r   Ú<module>rÞ      s†   ðó Û Û 	Û Û Û Ý -Ý $Ý *Ý 5Û Û 	à×Ññ.ó ð.òòòòJò4ôW�e—m‘m×-Ñ-×6Ñ6ô Wòt#÷4$r#   