+
    –°³jÿ-  ã                   óò  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHt ]P&                  ! R4      t]P*                  ! 4       t]P.                  ! R4      t]P3                  ]4       ]P5                  ]4       ]P7                  ]P8                  4       R	]n        ]! R
4      t]! R4      t ! R R] 4      t!RR R llt"RR R llt#R R lt$ ! R R4      t%RR R llt&R# )é    N)ÚCallableÚSequence)ÚLock)Údefault_timer)ÚAnyÚTypeVar)Ú	ParamSpecÚstrobelight_function_profilerzB%(name)s, line %(lineno)d, %(asctime)s, %(levelname)s: %(message)sFÚ_PÚ_Rc                   ó   € ] tR t^ tRtRtR# )ÚStrobelightCLIProfilerErrorz;
Raised when an error happens during strobelight profiling
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_strobelight/cli_function_profiler.pyr   r       s   † õr   r   c                ó>   € V ^8„  d   QhR\         R,          R\        /# ©é   ÚpidNÚreturn)ÚintÚstr)Úformats   "r   Ú__annotate__r    &   s   € ÷ 7ñ 7œS 4�Zð 7´3ñ 7r   c                óŽ   € RpT ;'       g    \         P                  ! 4       p \         P                  ! VP                  V 4      4      # )zFReturns the link to the process's namespace, example: pid:[4026531836]z/proc/{}/ns/pid)ÚosÚgetpidÚreadlinkr   )r   ÚPID_NAMESPACE_PATHs   & r   Ú_pid_namespace_linkr&   &   s6   € à*ÐØ
×
Ð
”—’“€CÜ�;Š;Ð)×0Ñ0°Ó5Ó6Ð6r   c                ó>   € V ^8„  d   QhR\         R,          R\         /# r   ©r   )r   s   "r   r    r    -   s   € ÷ .ñ .œ˜d�
ð .¬cñ .r   c                óœ   € T ;'       g    \         P                  ! 4       p \        V 4      p\        WP	                  R4      ^,           R 4      # )z"Returns the process's namespace idÚ[éÿÿÿÿ)r"   r#   r&   r   Úfind)r   Úlinks   & r   Ú_pid_namespacer.   -   s<   € à
×
Ð
”—’“€CÜ˜sÓ#€DÜˆt—I‘I˜c“N QÕ&¨Ð,Ó-Ð-r   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r   Úcommandr   )r   r   )r   s   "r   r    r    4   s   € ÷ ñ ¤¬¥ð ´#ñ r   c                 ó$   € R P                  V 4      # )Ú )Újoin)r0   s   &r   Ú_command_to_stringr4   4   s   € Ø�8‰8�GÓÐr   c                   óò   a € ] tR t^8t o Rt]! 4       tRRRR!RRRRR	^<R
^<RRRRR^R^/
V 3R lR lltV 3R lR ltR"V 3R lR llt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR tV tR# )#ÚStrobelightCLIFunctionProfilera~  
Note: this is a Meta only tool.

StrobelightCLIFunctionProfiler can be used to profile a python function and
generate a strobelight link with the results. It works on meta servers but
does not require an fbcode target.
When stop_at_error is false(default), error during profiling does not prevent
the work function from running.

Check function_profiler_example.py for an example.
Ústop_at_errorFÚmax_profile_duration_secÚsample_eachg    ÐcAÚrun_user_namezpytorch-strobelight-ondemandÚtimeout_wait_for_running_secÚtimeout_wait_for_finished_secÚrecorded_env_variablesNÚsample_tagsÚstack_max_lenÚasync_stack_max_lenc                ó’   <€ V ^8„  d   QhRS[ RS[RS[RS[RS[RS[RS[S[,          R,          R	S[S[,          R,          R
S[RS[/
# )r   r7   r8   r9   r:   r;   r<   r=   Nr>   r?   r@   )Úboolr   Úfloatr   Úlist)r   Ú__classdict__s   "€r   r    Ú+StrobelightCLIFunctionProfiler.__annotate__H   sƒ   ø€ ÷ 'ñ 'ñ ð'ñ #&ð	'ñ
 ð'ñ ð'ñ '*ð'ñ (+ð'ñ !%¡S¥	¨DÕ 0ð'ñ ™#•Y Õ%ð'ñ ð'ñ !ñ'r   c       
        óv   € Wn         W n        W0n        W@n        WPn        W`n        R V n        R V n        W€n        R # ©N)	r7   r8   r9   r:   r;   r<   Úcurrent_run_idÚprofile_resultr>   )Úselfr7   r8   r9   r:   r;   r<   r=   r>   r?   r@   s   &$$$$$$$$$$r   Ú__init__Ú'StrobelightCLIFunctionProfiler.__init__H   s@   € ð +ÔØ(@Ô%Ø&ÔØ*ÔØ,HÔ)Ø-JÔ*ð +/ˆÔØ04ˆÔØ&Ör   c                ó   <€ V ^8„  d   QhRR/# ©r   r   Nr   )r   rE   s   "€r   r    rF   b   s   ø€ ÷ '
ñ '
˜Dñ '
r   c                ó  € \         P                  ! 4       p\        V4      pR RRRRRRR\        V P                  4       R\        V P
                  R	,          4       R
V RV 2.pV P                  '       d<   VP                  R4       VP                  RP                  V P                  4      4       \        P                  R\        V4      4       \        P                  ! VRR7      pVP                  P                  R4      p\        P                  RV4       VP                   ^ 8w  d   \#        RV 24      h\$        P&                  ! RV4      ;p'       d"   \        VP)                  ^4      4      V n        R# \#        RV 24      h)ÚstrobeclientÚrunz
--profilerÚpyperfz--eventÚcyclesz--asyncz--sample-intervalz--duration-msiè  z--pidÚ:z--sample-tagsÚ,úrunning command: %sT©Úcapture_outputúutf-8úoutput:
{%s}z:failed to start strobelight profiling, error in run_async:zINFO Run Id: (-?\d+)Nz9failed to start strobelight profiling, unexpected result )r"   r#   r.   r   r9   r8   r>   Úappendr3   ÚloggerÚdebugr4   Ú
subprocessrR   ÚstderrÚdecodeÚ
returncoder   ÚreÚsearchÚgrouprI   )rK   Ú	processIdÚ	namespacer0   ÚresultÚoutputÚmatchs   &      r   Ú
_run_asyncÚ)StrobelightCLIFunctionProfiler._run_asyncb   sZ  € Ü—I’I“Kˆ	Ü" 9Ó-ˆ	àØØØØØØØÜ�4×#Ñ#Ó$Ð%ØÜ�4×0Ñ0°4Õ7Ó8Ð9ØØˆk˜˜9˜+Ð&ð
ˆð  ××ÐØ�N‰N˜?Ô+Ø�N‰N˜3Ÿ8™8 D×$4Ñ$4Ó5Ô6ä�‰Ð*Ô,>¸wÓ,GÔHÜ—’ ¸Ô=ˆØ—‘×%Ñ% gÓ.ˆÜ�‰�_ fÔ-à×Ñ Ô!Ü-ØLÈVÈHÐUóð ô —I’IÐ5°vÓ>Ð>ˆ5Ö>Ü"% e§k¡k°!£nÓ"5ˆDÔÙä)ØGÈÀxÐPó
ð 	
r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úcounterr   Nr(   )r   rE   s   "€r   r    rF   ‹   s   ø€ ÷ Mñ M©ð M°Tñ Mr   c                ór  € V^8”  d   \        R4      hRRRV P                   .p\        P                  R\	        V4      4       \
        P                  ! VRR7      pVP                  P                  R4      p\        P                  R	V4       VP                  ^ 8w  d   \        R
V 24      h\        P                  ! RV4      ;p'       da   VP                  ^4      pVR8X  d   R# VR8X  d1   \        P                  ! ^
4       V P                  V^,           4       R# \        RV R24      h\        RV R24      h)é   z*wait_for_running called more than 20 timesrQ   ÚgetRunStatusú--run-idrW   TrX   rZ   r[   zAfailed to start strobelight profiling, error in wait_for_running:zProfile run status: (.*)ÚRUNNINGNÚ	PREPARINGzunexpected z phaseúunexpected output
: r2   )r   rI   r]   r^   r4   r_   rR   r`   ra   rb   rc   rd   re   ÚtimeÚsleepÚ_wait_for_running)rK   rn   r0   rh   ri   rj   Úcurrent_statuss   &&     r   rx   Ú0StrobelightCLIFunctionProfiler._wait_for_running‹   s#  € Ø�RŒ<Ü-Ø<óð ð " >°:À$×BUÑBUÐAVÐXˆÜ�‰Ð*Ô,>¸wÓ,GÔHÜ—’ ¸Ô=ˆØ—‘×%Ñ% gÓ.ˆÜ�‰�_ fÔ-à×Ñ Ô!Ü-ØSÐTZÐS[Ð\óð ô —I’IÐ8¸&ÓAÐAˆ5ÖAØ"Ÿ[™[¨›^ˆNØ Ô*ÙØ ;Ô.Ü—
’
˜2”Ø×&Ñ& w°¥{Ô3Ùä1°KÀÐ?OÈvÐ2VÓWÐWä)Ð,AÀ&ÀÈÐ*KÓLÐLr   c                ó   <€ V ^8„  d   QhRR/# rO   r   )r   rE   s   "€r   r    rF   ©   s   ø€ ÷ Mñ M˜4ñ Mr   c                ó  € R RR\        V P                  4      .p\        P                  R\	        V4      4       \
        P                  ! VRR7      pVP                  P                  R4      p\        P                  RV4       VP                  ^ 8w  d   \        RV 24      h\        P                  ! R	V4      ;p'       d:   VP                  ^4      pVP                  R
4      '       d   R# \        RV R24      h\        RV R24      h)rQ   ÚstopRunrr   rW   TrX   rZ   r[   z<failed to stop strobelight profiling, return code is not 0 :úINFO ::1:(.*)zSuccess!Nz*failed to stop strobelight profiling, got z resultru   r2   )r   rI   r]   r^   r4   r_   rR   r`   ra   rb   r   rc   rd   re   Ú__contains__)rK   r0   rh   ri   rj   ry   s   &     r   Ú	_stop_runÚ(StrobelightCLIFunctionProfiler._stop_run©   sò   € Ø! 9¨j¼#¸d×>QÑ>QÓ:RÐSˆÜ�‰Ð*Ô,>¸wÓ,GÔHÜ—’ ¸Ô=ˆØ—‘×%Ñ% gÓ.ˆÜ�‰�_ fÔ-à×Ñ Ô!Ü-ØNÈvÈhÐWóð ô —I’I˜o¨vÓ6Ð6ˆ5Ö6Ø"Ÿ[™[¨›^ˆNØ×*Ñ*¨:×6Ò6Ùä1Ø@ÀÐ@PÐPWÐXóð ô *Ð,AÀ&ÀÈÐ*KÓLÐLr   c                ó   <€ V ^8„  d   QhRR/# rO   r   )r   rE   s   "€r   r    rF   À   s   ø€ ÷ !ñ !˜dñ !r   c                ó0  € R RR\        V P                  4      .p\        P                  R\	        V4      4       \
        P                  ! VRR7      pVP                  P                  R4      p\        P                  RV4       VP                  ^ 8w  d   \        RV 24      h\        P                  ! R	V4      ;p'       dv   VP                  ^4      pVP                  R
4      '       d)   \        P                   ! ^
4       V P#                  4        R# VP                  R4      '       g   \        RV 24      h. V n        \        P&                  ! RV4       F?  pV ;P$                  V^ ,          ,          un        \        P)                  V^ ,          4       KA  	  R# )rQ   rq   rr   rW   TrX   rZ   r[   z<failed to extract profiling results, return code is not 0 : r~   zProfile run status: PROCESSINGNz!Profile run finished with SUCCESSz9failed to extract profiling results, unexpected response zF(Total samples(.*)|GraphProfiler(.*)|Icicle view \(python stack\)(.*)))r   rI   r]   r^   r4   r_   rR   r`   ra   rb   r   rc   rd   re   r   rv   rw   Ú_get_resultsrJ   ÚfindallÚinfo)rK   r0   rh   ri   rj   ry   Úitems   &      r   r„   Ú+StrobelightCLIFunctionProfiler._get_resultsÀ   sL  € Ø! >°:¼sÀ4×CVÑCVÓ?WÐXˆÜ�‰Ð*Ô,>¸wÓ,GÔHÜ—’ ¸Ô=ˆØ—‘×%Ñ% gÓ.ˆÜ�‰�_ fÔ-à×Ñ Ô!Ü-ØNÈvÈhÐWóð ô —I’I˜o¨vÓ6Ð6ˆ5Ö6Ø"Ÿ[™[¨›^ˆNØ×*Ñ*Ð+K×LÒLÜ—
’
˜2”Ø×!Ñ!Ô#ÙØ#×0Ñ0Ð1T×UÒUÜ1ØOÐPVÈxÐXóð ð !ˆÔÜ—J’JØUØö
ˆDð ×Ò 4¨¥7Õ*ÕÜ�K‰K˜˜Q�Ö ó
r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úcollect_resultsr   N©rB   )r   rE   s   "€r   r    rF   ß   s#   ø€ ÷ Kñ KáðKð 
ñKr   c                ó  €  V P                  4        \        P                  R 4       \        P                  R4       V'       g   R# V P	                  4        R#   \
         d    \        P                  RRR7        R# i ; i)zstrobelight profiling stoppedzcollection stoppedNzerror during stop_strobelightT©Úexc_info)r€   r]   r†   r^   r„   Ú	ExceptionÚwarning)rK   rŠ   s   &&r   Ú_stop_strobelight_no_throwÚ9StrobelightCLIFunctionProfiler._stop_strobelight_no_throwß   s`   € ð	Kà�N‰NÔÜ�K‰KÐ7Ô8ä�L‰LÐ-Ô.ç"Ùà×ÑÖøÜô 	KÜ�N‰NÐ:ÀTˆN×Jð	Kús   ‚AA ÁA Á"A>Á=A>c                ó    <€ V ^8„  d   QhRS[ /# )r   r   r‹   )r   rE   s   "€r   r    rF   ò   s   ø€ ÷ ñ ¡Dñ r   c                ó@  € R p V P                  4        Rp\        P                  RV P                  4       V P	                  4        \        P                  R4       R#   \
         d6    \        P                  RRR7       T'       d   T P                  R R7        R # i ; i)FTzstrobelight run id is: %szstrobelight profiling runningzerror during start_strobelight:r�   ©rŠ   )rk   r]   r†   rI   rx   r�   r�   r‘   )rK   Ústrobelight_starteds   & r   Ú_start_strobelightÚ1StrobelightCLIFunctionProfiler._start_strobelightò   s…   € Ø#Ðð	Ø�O‰OÔØ"&ÐÜ�K‰KÐ3°T×5HÑ5HÔIØ×"Ñ"Ô$Ü�K‰KÐ7Ô8Ùøäô 	Ü�N‰NÐ<ÀtˆNÔLß"Ø×/Ñ/ÀÐ/ÔFÚð		ús   „AA Á)BÂBÂBc          	      ó~   <€ V ^8„  d   QhRS[ S[S[3,          RS[P                  RS[P                  RS[R,          /# )r   Úwork_functionÚargsÚkwargsr   N)r   r   r   r›   rœ   )r   rE   s   "€r   r    rF     sB   ø€ ÷ (ñ (Ù%¡b©" fÕ-ð(Ù68·g±gð(ÙIKÏÉð(á	ˆd�ñ(r   c                ó¨  € R V n         R V n        \        P                  P	                  R4      ;p'       Ed@   V'       g;   V P
                  '       d   \        R4      h\        P                  R4       V! V/ VB # V P                  4       pV'       gd   V P
                  '       d*   \        P                  P                  4        \        R4      hV! V/ VB p\        P                  P                  4        V#  \        P                  R4       \        4       pV! V/ VB p\        4       pW‡,
          p	\        P                  RV	4       V P                  RR7       \        P                  P                  4        V# R #   \         dO   p
\        P                  RRR	7       T P                  RR7       \        P                  P                  4        T
hR p
?
ii ; i)
NFzconcurrent runs not supportedz%failed to start strobelight profilingzcollection startedzwork function took %s secondsTr•   zwork function throw exceptionr�   )rI   rJ   r6   Ú_lockÚacquirer7   r   r]   r�   r—   Úreleaser^   Útimerr†   r‘   r�   )rK   rš   r›   rœ   ÚlockedÚstartedrh   ÚstartÚendÚ
total_timeÚerrors   &&*,       r   ÚprofileÚ&StrobelightCLIFunctionProfiler.profile  sŒ  € ð #ˆÔØ"ˆÔä3×9Ñ9×AÑAÀ%ÓHÐHˆ6×HßØ×%×%Ð%Ü5Ð6UÓVÐVä—‘Ð>Ô?Ù$ dÐ5¨fÑ5Ð5à×-Ñ-Ó/ˆGßØ×%×%Ð%Ü2×8Ñ8×@Ñ@ÔBÜ5Ø?óð ñ '¨Ð7°Ñ7�Ü.×4Ñ4×<Ñ<Ô>Ø�ðÜ—‘Ð1Ô2Ü›�Ù&¨Ð7°Ñ7�Ü“g�Ø �[�
Ü—‘Ð;¸ZÔHØ×/Ñ/ÀÐ/ÔEÜ.×4Ñ4×<Ñ<Ô>Ø�ñ øô ô Ü—‘Ð>È�ÔNØ×/Ñ/ÀÐ/ÔFÜ.×4Ñ4×<Ñ<Ô>Ø�ûð	ús   Ã5B E8 Å8GÆA	GÇG)	rI   r8   rJ   r:   r9   r>   r7   r<   r;   iX  )r   )r   r   r   r   r   r   rž   rL   rk   rx   r€   r„   r‘   r—   r¨   r   Ú__classdictcell__)rE   s   @r   r6   r6   8   sÎ   ø‡ € ñ
ñ ‹F€Eð'ð $ð'ð )0ð	'ð
 !ð'ð <ð'ð -/ð'ð .0ð'ð 48ð'ð )-ð'ð !ð'ð $'÷'ò '÷4'
ð '
÷RMò M÷<Mð M÷.!ð !÷>Kð K÷&ð ÷ (ö (r   r6   c                óÀ   € V ^8„  d   QhR\         R,          R\        R\        \        \        \        3,          .\        \        \        R,          3,          3,          /# )r   ÚprofilerNrœ   r   )r6   r   r   r   r   )r   s   "r   r    r    2  sL   € ÷ ñ Ü,¨tÕ3ðÜFIðäŒxœœB˜ÕÐ ¤(¬2¬r°D­y¨=Õ"9Ð9Õ:ñr   c                 ó@   a € S '       g   \        R/ VB o R  V 3R llpV# )c                ó‚   € V ^8„  d   QhR\         \        \        3,          R\         \        \        R,          3,          /# )r   rš   r   N)r   r   r   )r   s   "r   r    Ú!strobelight.<locals>.__annotate__8  s2   € ÷  ñ  Ü¤¤B Õ'ð ä	”"”b˜4•i�-Õ	 ñ r   c                 óP   <a € \         P                  ! S 4      R  VV 3R ll4       pV# )c                ór   € V ^8„  d   QhR\         P                  R\         P                  R\        R,          /# )r   r›   rœ   r   N)r   r›   rœ   r   )r   s   "r   r    Ú<strobelight.<locals>.strobelight_inner.<locals>.__annotate__<  s2   € ÷ 	Dñ 	D¤B§G¡Gð 	D´r·y±yð 	DÄRÈ$ÅYñ 	Dr   c                  ó0   <€ SP                   ! S.V O5/ VB # rH   )r¨   )r›   rœ   r¬   rš   s   *,€€r   Úwrapper_functionÚ@strobelight.<locals>.strobelight_inner.<locals>.wrapper_function;  s    ø€ ð ×#Ò# MÐC°DÒC¸FÑCÐCr   )Ú	functoolsÚwraps)rš   r´   r¬   s   f €r   Ústrobelight_innerÚ&strobelight.<locals>.strobelight_inner8  s0   ù€ ô 
�Š˜Ó	'÷	Dð 	Dó 
(ð	Dð  Ðr   r   )r6   )r¬   rœ   r¸   s   f, r   Ústrobelightrº   2  s'   ø€ ÷ Ü1Ñ;°FÑ;ˆ÷ ð  ð Ðr   rH   )'r¶   Úloggingr"   rc   r_   rv   Úcollections.abcr   r   Ú	threadingr   Útimeitr   r¡   Útypingr   r   Útyping_extensionsr	   Ú	getLoggerr]   ÚStreamHandlerÚconsole_handlerÚ	FormatterÚ	formatterÚsetFormatterÚ
addHandlerÚsetLevelÚINFOÚ	propagater   r   r�   r   r&   r.   r4   r6   rº   r   r   r   Ú<module>rË      sÖ   ðó Û Û 	Û 	Û Û ß .Ý Ý )ß Ý 'ð 
×	Ò	Ð:Ó	;€à×'Ò'Ó)€Ø×ÒØHó€	ð × Ñ ˜YÔ 'à × Ñ �/Ô "Ø ‡��—‘Ô Ø€Ô áˆtƒ_€ÙˆTƒ]€ô )ô ÷7÷.õ÷rñ r÷tñ r   