§
    Ë²Åj')  ã                   óª   — d dl mZ d dlmZmZ d dlZd dlZd dlZd dlZd dl	Z
ej        d„ ¦   «         Zddœd„Zdddœd	„Zd
„ Z G d„ d¦  «        Zd„ ZdS )é    )ÚTracebackType)ÚListÚOptionalNc               #   ó¤  K  — 	 d V — d S # t           $ �rº} | j        }g }|��w|j        j        j        }|j        j                             d¦  «        }|dk    �r!|��t          j        ddd¬¦  «        5 }| 	                    |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }t          d|j        d¦  «        }|                     |j        j        ¬	¦  «        }t          |j        d
¦  «        r+|                     |j        j        |j        j        ¬¦  «        }t#          ||j        i |j        ¥dt&          j        i¥¦  «        }t+          d ||j        |j        ¦  «        }	|                     |	¦  «         n|                     |¦  «         |j        }|�­wd }
t5          |¦  «        D ]}|
|_        |}
Œ|                      |
¦  «        ‚d } ~ ww xY w)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              úGC:\Projects\Historical\venv\Lib\site-packages\torch/utils/_traceback.pyÚreport_compile_source_on_errorr3   /   sF  è è € ðS*ØˆˆˆˆˆøÝð Q*ñ Q*ð Q*ØÔˆð ˆØ‰nØ”{Ô)Ô5ˆHØ”[Ô*×.Ò.Ð/CÑDÔDˆFà˜:Ò%Ñ%¨&Ñ*<õ2 Ô0°cÀ%ÐPUÐVÑVÔVð $ÐZ[Ø—G’G˜F‘O”O�Oð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð œ�ÝÐ9¸1¼6À6ÑJÔJ�Ø—|’|¨E¬LÔ,@�|ÑAÔA�å˜5œ<¨Ñ8Ô8ð ð  Ÿ<š<Ø%*¤\Ô%>Ø',¤|Ô'Bð (ñ ô �Dõ "ØØ”OðØœ.ðà0µ'Ô2Fðð ñô �
õ (Ø˜* b¤k°2´<ñô �ð —’˜WÑ%Ô%Ð%Ð%à—’˜RÑ Ô Ð à”ˆBðG ‰nðL ˆÝ˜5‘/”/ð 	ð 	ˆBØ ˆBŒJØˆGˆGà× Ò  Ñ)Ô)Ð)øøøøðcQ*øøøs:   „
 ŠG•AG
Á2BÂG
ÂB	ÂG
ÂB	ÂD.G
Ç
G©Úbasec                ó$  — |€At           j                             t           j                             t          ¦  «        ¦  «        }	 t           j                             | |g¦  «        }| t          |¦  «        dz   d…         S # t          $ r | cY S w xY w)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)Úfnr5   Úprefixs      r2   Úshorten_filenamerA   †   s‰   € à€|ÝŒw�Š�rœwŸš­xÑ8Ô8Ñ9Ô9ˆð$Ý”×#Ò# R¨ JÑ/Ô/ˆð •#�f‘+”+ ‘/Ð"Ð"Ô#Ð#øõ ð ð ð Øˆ	ˆ	ˆ	ðøøøs   Á!B  Â BÂBF)r5   Úlinec                ór   — d}|r
| j         › d�}|› t          | j        |¬¦  «        › d| j        › d| j        › �S )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  # r4   ú:z in )rB   rA   r+   Úlinenor   )r.   r5   rB   Ú
extra_lines       r2   Úformat_framerH   ’   sX   € ð €JØð )Øœ
Ð(Ð(Ð(ˆ
ØÐfÕ*¨5¬>ÀÐEÑEÔEÐfÐfÈÌÐfÐfÐZ_ÔZdÐfÐfÐfó    c                 óP   — t          t          j        | ¦  «        d         ¦  «        S )zJFormat a TracebackType in a short way, printing only the inner-most frame.éÿÿÿÿ)rH   Ú	tracebackÚ
extract_tb©r)   s    r2   Úformat_traceback_shortrO   �   s    € å�	Ô,¨RÑ0Ô0°Ô4Ñ5Ô5Ð5rI   c                   ól   — e Zd ZddgZdd„Zd„ Zd„ Zd„ Zedddd	œd
„¦   «         Z	d„ Z
ed„ ¦   «         ZdS )ÚCapturedTracebackr)   Úskipr   c                 ó"   — || _         || _        d S ©N©r)   rR   )Úselfr)   rR   s      r2   Ú__init__zCapturedTraceback.__init__¤   s   € ØˆŒØˆŒ	ˆ	ˆ	rI   c                 ó   — d | _         d S rT   rN   ©rV   s    r2   ÚcleanupzCapturedTraceback.cleanup¨   s   € ØˆŒˆˆrI   c                 óº   — dd l }| j        €t          j        ¦   «         S t	          |j        j                             | j        g¦  «        d         | j        ¦  «        S )Nr   )	Útorch._C._profilerr)   rL   ÚStackSummaryÚ_extract_symbolized_tbÚ_CÚ	_profilerÚsymbolize_tracebacksrR   )rV   Útorchs     r2   ÚsummaryzCapturedTraceback.summary«   sZ   € Ø!Ð!Ð!Ð!àŒ7ˆ?åÔ)Ñ+Ô+Ð+å%ØŒHÔ×3Ò3°T´W°IÑ>Ô>¸qÔAØŒIñ
ô 
ð 	
rI   c                 ó   — d d | j         dœfS )NrU   )rR   rY   s    r2   Ú__getstate__zCapturedTraceback.__getstate__·   s!   € ØØØ”Ið
ð 
ð ð 	rI   F)ÚscriptÚcpprR   c                 ó¤   — ddl }| s|r|dk    s
J d¦   «         ‚t          |j        j                             d| |¬¦  «        | s|rdn|dz   ¦  «        S )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)Úpythonrf   rg   r7   )r\   rQ   r_   r`   Úgather_traceback)rf   rg   rR   rb   s       r2   ÚextractzCapturedTraceback.extract½   sz   € ð 	"Ð!Ð!Ð!àð 	9�Sð 	9Ø˜1’9�9�9Ð8‘9”9�9å ØŒHÔ×/Ò/°tÀFÐPSÐ/ÑTÔTð Ð,˜3Ð,ˆAˆA D¨1¡Hñ	
ô 
ð 	
rI   c                 óN   — t          j        |                      ¦   «         ¦  «        S )al  
        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
        )rL   Úformat_listrc   rY   s    r2   ÚformatzCapturedTraceback.formatÕ   s   € õ Ô$ T§\¢\¡^¤^Ñ4Ô4Ð4rI   c                 óŽ  ‡ — ddl }g }g }t          ‰ ¦  «        D ]L\  }}|j        €|                     g ¦  «         Œ"|                     d¦  «         |                     |¦  «         ŒM|j        j                             ˆ fd„|D ¦   «         ¦  «         |D ]1}t          j        ‰ |          	                    ¦   «         ¦  «        ||<   Œ2|S )z_
        Bulk version of CapturedTraceback.format.  Returns a list of list of strings.
        r   Nc                 ó*   •— g | ]}‰|         j         ‘ŒS © rN   )Ú.0ÚiÚtbss     €r2   ú
<listcomp>z0CapturedTraceback.format_all.<locals>.<listcomp>ð   s   ø€ Ð0QÐ0QÐ0Q¸q°°Q´´Ð0QÐ0QÐ0QrI   )
r\   Ú	enumerater)   r$   r_   r`   ra   rL   rm   rc   )rt   rb   ÚrsÚdelayed_idxsrs   r)   s   `     r2   Ú
format_allzCapturedTraceback.format_allß   sÚ   ø€ ð
 	"Ð!Ð!Ð!ð )+ˆØˆÝ˜s‘^”^ð 	'ð 	'‰EˆAˆrØŒuˆ}Ø—	’	˜"‘”��à—	’	˜$‘”�Ø×#Ò# AÑ&Ô&Ð&Ð&àŒÔ×/Ò/Ð0QÐ0QÐ0QÐ0QÀLÐ0QÑ0QÔ0QÑRÔRÐRØð 	<ð 	<ˆAÝÔ)¨#¨a¬&¯.ª.Ñ*:Ô*:Ñ;Ô;ˆBˆq‰EˆEàˆ	rI   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__rW   rZ   rc   re   Ústaticmethodrk   rn   ry   rq   rI   r2   rQ   rQ   ¡   s´   € € € € € Ø�v�€Iðð ð ð ðð ð ð

ð 

ð 

ðð ð ð Ø U°ð 
ð 
ð 
ð 
ñ „\ð
ð.5ð 5ð 5ð ðð ñ „\ðð ð rI   rQ   c           	      óÖ   — t          j        ¦   «         }t          | |d…         ¦  «        D ]=}|                     t          j        |d         |d         |d         ¦  «        ¦  «         Œ>|S )zˆ
    Given a symbolized traceback from symbolize_tracebacks, return a StackSummary object of
    pre-processed stack trace entries.
    Nr+   rB   r   )rL   r]   r&   r$   ÚFrameSummary)r)   rR   r*   r-   s       r2   r^   r^   ÷   sh   € õ
 Ô"Ñ$Ô$€EÝ�b˜˜˜”iÑ Ô ð Rð RˆØ�Š•YÔ+¨A¨j¬M¸1¸V¼9ÀaÈÄiÑPÔPÑQÔQÐQÐQØ€LrI   )Útypesr   Útypingr   r   r   rL   Ú
contextlibr    Úos.pathr8   Úcontextmanagerr3   rA   rH   rO   rQ   r^   rq   rI   r2   ú<module>r†      s"  ðà Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€ðN ÔðT*ð T*ñ ÔðT*ðl "&ð 
$ð 
$ð 
$ð 
$ð 
$ð !%¨5ð 	gð 	gð 	gð 	gð 	gð6ð 6ð 6ðSð Sð Sð Sð Sñ Sô Sð Sðlð ð ð ð rI   