ó
    "Eñi"(  ã                   ó¢   • S SK r S SKrS SKrS SKrS SKrS SKJr  \ R                  S 5       r	SS.S jr
SSS.S\4S	 jjrS
 r " S S5      rS rg)é    N)ÚTracebackTypec               #   ó&  #   •  S v •  g ! [          Gaú  n U R                  n/ nUGb¶  UR                  R                  R                  nUR                  R
                  R                  S5      nUS:X  GaG  UGbC  [        R                  " SSSS9 nUR                  U5        S S S 5        O! , (       d  f       O= fUR                  n[        SWR                  S5      nUR                  UR                  R                  S	9n[        UR                  S
5      (       a8  UR                  UR                  R                  UR                  R                   S9n[#        UUR
                  0 UR$                  ES[&        R(                  0E5      n[+        S X�R,                  UR.                  5      n	UR1                  U	5        OUR1                  U5        UR2                  nUb  GM¶  S n
[5        U5       H  nX¡l        Un
M     U R7                  U
5      eS n A ff = f7f)NÚ__compile_source__z<string>ÚwFz.py)ÚmodeÚdeleteÚsuffixz__inspect_currentframe()Úeval)Úco_nameÚco_linetable)r   Úco_firstlinenoÚ__inspect_currentframe)Ú	ExceptionÚ__traceback__Útb_frameÚf_codeÚco_filenameÚ	f_globalsÚgetÚtempfileÚNamedTemporaryFileÚwriteÚcompileÚnameÚreplacer   Úhasattrr   r   r
   Úf_localsÚinspectÚcurrentframer   Útb_lastiÚ	tb_linenoÚappendÚtb_nextÚreversedÚwith_traceback)ÚexcÚtbÚstackÚfilenameÚsourceÚfÚframeÚcodeÚ
fake_frameÚfake_tbr#   s              ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/utils/_traceback.pyÚreport_compile_source_on_errorr1   0   sÅ  é € ðP*ÜøÜô N*Ø×Ñˆð ˆØŠnØ—{‘{×)Ñ)×5Ñ5ˆHØ—[‘[×*Ñ*×.Ñ.Ð/CÓDˆFà˜:Ô%¨&Ò*<ô2 ×0Ò0Ø U°5òàØ—G‘G˜F”O÷÷ ö úð Ÿ™�ÜÐ9¸1¿6¹6À6ÓJ�Ø—|‘|¨E¯L©L×,@Ñ,@�|ÐA�ä˜5Ÿ<™<¨×8Ñ8ð  Ÿ<™<Ø%*§\¡\×%>Ñ%>Ø',§|¡|×'BÑ'Bð (ð �Dô "ØØ—O‘OØV�u—~‘~ÐVÐ'?Ä×AUÑAUÑVó�
ô
 (¨¨j¿+¹+ÀrÇ|Á|ÓT�Ø—‘˜WÕ%à—‘˜RÔ à—‘ˆBðA ŒnðF ˆÜ˜5–/ˆBØ ŒJØŠGñ "ð × Ñ  Ó)Ð)ûð]N*üsD   ‚H„	 ˆH‰H”A8H	ÂB'Â	H	Â'
B5	Â1D(H	Ç-H	È	HÈH©Úbasec                ó  • Uc@  [         R                  R                  [         R                  R                  [        5      5      n [         R                  R	                  X/5      nU [        U5      S-   S $ ! [         a    U s $ f = f)ziShorten a source filepath, with the assumption that torch/ subdirectories don't need to be shown to user.Né   )ÚosÚpathÚdirnameÚ__file__Ú
commonpathÚlenÚ
ValueError)Úfnr3   Úprefixs      r0   Úshorten_filenamer?   …   so   € à�|Ü�w‰w�‰œrŸw™wŸ™¬xÓ8Ó9ˆð%Ü—‘×#Ñ# R JÓ/ˆð ”#�f“+ ‘/Ð#Ð$Ð$øô ó ØŠ	ðús   Á A6 Á6BÂBF)r3   ÚlineÚreturnc                ó–   • SnU(       a  U R                    S3nU [        U R                  US9 SU R                   SU R                   3$ )zƒ
Format a FrameSummary in a short way, without printing full absolute path or code.

The idea is the result fits on a single line.
Ú z  # r2   Ú:z in )r@   r?   r)   Úlinenor   )r,   r3   r@   Ú
extra_lines       r0   Úformat_framerG   ’   sQ   € ð €JÞØŸ
™
�| 4Ð(ˆ
Øˆ\Ô*¨5¯>©>ÀÑEÐFÀaÈÏÉÀ~ÐUYÐZ_×ZdÑZdÐYeÐfÐfó    c                 óF   • [        [        R                  " U 5      S   5      $ )zJFormat a TracebackType in a short way, printing only the inner-most frame.éÿÿÿÿ)rG   Ú	tracebackÚ
extract_tb©r'   s    r0   Úformat_traceback_shortrN   ž   s   € äœ	×,Ò,¨RÓ0°Ñ4Ó5Ð5rH   c                   ór   • \ rS rSrSS/rSSS jjrSS jrS rS	 r\	S
S
SS.S j5       r
S r\	S 5       rSrg)ÚCapturedTracebacké£   r'   Úskipr   Nc                 ó   • Xl         X l        g ©N©r'   rR   )Úselfr'   rR   s      r0   Ú__init__ÚCapturedTraceback.__init__¦   s   € ØŒØ�	rH   c                 ó   • S U l         g rT   rM   ©rV   s    r0   ÚcleanupÚCapturedTraceback.cleanupª   s	   € Øˆ�rH   c                 óÜ   • SS K nU R                  c  [        R                  " 5       $ [	        UR
                  R                  R                  U R                  /5      S   U R                  5      $ )Nr   )	Útorch._C._profilerr'   rK   ÚStackSummaryÚ_extract_symbolized_tbÚ_CÚ	_profilerÚsymbolize_tracebacksrR   )rV   Útorchs     r0   ÚsummaryÚCapturedTraceback.summary­   sS   € Û!à�7‰7‰?ä×)Ò)Ó+Ð+ä%Ø�H‰H×Ñ×3Ñ3°T·W±W°IÓ>¸qÑAÀ4Ç9Á9ó
ð 	
rH   c                 ó$   • S S U R                   S.4$ )NrU   )rR   rZ   s    r0   Ú__getstate__ÚCapturedTraceback.__getstate__¸   s   € ààØŸ	™	ñð
ð 	
rH   F)ÚscriptÚcpprR   c                 óÒ   • SSK nU (       d  U(       a  US:w  a  [        S5      e[        UR                  R                  R                  SXS9U (       d  U(       a  S5      $ US-   5      $ )a·  
Like traceback.extract_stack(), but faster (approximately 20x faster); it
is fast enough that you can unconditionally log stacks this way as part of
normal execution.  It returns a torch._C._profiler.CapturedTraceback
object that must be formatted specially with format_captured_tb.

By default, this only reports Python backtraces (like extract_stack).  You
can set the script/cpp kwargs to also turn on TorchScript/C++ trace
reporting.
r   Nzskip with script/cpp NYIT)Úpythonrj   rk   r5   )r^   ÚAssertionErrorrP   ra   rb   Úgather_traceback)rj   rk   rR   rd   s       r0   ÚextractÚCapturedTraceback.extractÁ   se   € ó 	"æ–SØ�q‹yÜ$Ð%?Ó@Ð@ä Ø�H‰H×Ñ×/Ñ/°tÀFÐ/ÐTö ž3ˆAó	
ð 	
ð %)¨1¡Hó	
ð 	
rH   c                 óJ   • [         R                  " U R                  5       5      $ )a<  
Formats a single torch._C._profiler.CapturedTraceback into a list of
strings equivalent to the output of traceback.format_list.  Note that if
pass it CapturedTraceback with C++ traces,  it is better not to use this
function and use the batch formatting API format_captured_tbs to amortize
the cost of symbolization
)rK   Úformat_listre   rZ   s    r0   ÚformatÚCapturedTraceback.formatÚ   s   € ô ×$Ò$ T§\¡\£^Ó4Ð4rH   c                 ó²  • SSK n/ n/ n[        U 5       HG  u  pEUR                  c  UR                  / 5        M%  UR                  S5        UR                  U5        MI     UR                  R
                  R                  U Vs/ s H  o@U   R                  PM     sn5        U H+  n[        R                  " X   R                  5       5      X$'   M-     U$ s  snf )zO
Bulk version of CapturedTraceback.format.  Returns a list of list of strings.
r   N)
r^   Ú	enumerater'   r"   ra   rb   rc   rK   rs   re   )Útbsrd   ÚrsÚdelayed_idxsÚir'   s         r0   Ú
format_allÚCapturedTraceback.format_allä   s±   € ó
 	"ð &(ˆØˆÜ˜s–^‰EˆAØ�u‰u‰}Ø—	‘	˜"–à—	‘	˜$”Ø×#Ñ# AÖ&ñ $ð 	�‰×Ñ×/Ñ/ÁLÓ0QÂL¸q°Q±·´ÁLÑ0QÔRÛˆAÜ×)Ò)¨#©&¯.©.Ó*:Ó;ˆB‹Eñ ð ˆ	ùò	 1Rs   ÂC)rR   r'   )r   )rA   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__rW   r[   re   rh   Ústaticmethodrp   rt   r|   Ú__static_attributes__© rH   r0   rP   rP   £   sS   † Ø�v�€Iöôò	
ò
ð Ø U°ô 
ó ð
ò05ð ñó órH   rP   c           	      ó¸   • [         R                  " 5       n[        XS 5       H3  nUR                  [         R                  " US   US   US   5      5        M5     U$ )z|
Given a symbolized traceback from symbolize_tracebacks, return a StackSummary object of
pre-processed stack trace entries.
Nr)   r@   r   )rK   r_   r$   r"   ÚFrameSummary)r'   rR   r(   r+   s       r0   r`   r`   ü   sQ   € ô
 ×"Ò"Ó$€EÜ�b˜�iÖ ˆØ�‰”Y×+Ò+¨A¨j©M¸1¸V¹9ÀaÈÁiÓPÖQñ !à€LrH   )Ú
contextlibr   Úos.pathr6   r   rK   Útypesr   Úcontextmanagerr1   r?   ÚstrrG   rN   rP   r`   r…   rH   r0   Ú<module>r�      sk   ðã Û Û Û Û Ý ðR ×ÑñQ*ó ðQ*ðh "&õ 
%ð !%¨5ò 	g°Sõ 	gò6÷
Vñ VórrH   