Ë
    g^(hçZ  ã                  ó<  — d dl mZ 	 d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZmZmZmZ d dlmZmZmZmZ d dlZddlmZ ddlmZ erd dlZd d	lmZ dd
lmZ ddlmZ dtd„Z ej>                  e «      Z!ejD                  jG                  e d«      Z$ G d„ de%«      Z& G d„ de&«      Z' G d„ de&«      Z( G d„ de(«      Z) G d„ de(«      Z* G d„ de(«      Z+ G d„ de(«      Z, G d„ de&«      Z- G d„ de&«      Z. G d „ d!e&«      Z/ G d"„ d#e&«      Z0 G d$„ d%e&«      Z1 G d&„ d'e1«      Z2 G d(„ d)e&«      Z3 G d*„ d+e3«      Z4 G d,„ d-e&«      Z5 G d.„ d/e3«      Z6 G d0„ d1e3«      Z7 G d2„ d3e3«      Z8 G d4„ d5e3«      Z9 G d6„ d7e6«      Z: G d8„ d9e	«      Z; G d:„ d;e3«      Z< G d<„ d=e&«      Z= G d>„ d?e3«      Z> G d@„ dAe&«      Z? G dB„ dCe&«      Z@ G dD„ dEeA«      ZB G dF„ dGeA«      ZC G dH„ dIe&«      ZD G dJ„ dKeD«      ZE G dL„ dMeD«      ZF G dN„ dOeF«      ZG G dP„ dQeF«      ZH G dR„ dSeD«      ZI G dT„ dUeD«      ZJ G dV„ dWeD«      ZK G dX„ dYeD«      ZL G dZ„ d[eD«      ZMeNeEeOeFePeGeQeIeReHeSeJe%eKeTeLeUeMi	ZVdud\„ZWddd]œ	 	 	 	 	 	 	 	 	 dvd^„ZXdwd_„ZYej´                  j¶                  j¸                  ej´                  j¶                  jº                  ej´                  j¶                  j¼                  ej´                  j¶                  j¾                  fZ`	 	 	 	 	 	 	 	 dxd`„Za eb«       Zcecddaœ	 	 	 	 	 	 	 dydb„Zd	 	 	 	 	 	 	 	 	 	 	 	 	 	 dzdc„Ze	 	 	 	 	 	 	 	 	 	 d{dd„Zfecdedfœ	 	 	 	 	 	 	 	 	 	 	 	 	 d|dg„Zgd}dh„Zh G di„ dj«      Zid~ddk„Zj	 	 	 	 	 	 d€dl„Zkd�dm„Zl	 d‚	 	 	 	 	 dƒdn„Zmd„do„Znd…dp„Zod„dq„Zp	 	 d†	 	 	 	 	 	 	 	 	 d‡dr„Zq	 	 d†	 	 	 	 	 	 	 	 	 d‡ds„Zry)ˆé    )ÚannotationsN)ÚautoÚEnum)Úextract_stackÚ
format_excÚformat_listÚStackSummary)ÚAnyÚNoReturnÚOptionalÚTYPE_CHECKINGé   )Úconfig)Úcounters)Ú	CompileId)ÚInstructionTranslatorBase)ÚDynamoFrameTypec                ó,   — d| j                  dd«      z   S )NzhFor more information about this error, see: https://pytorch.org/docs/main/generated/exportdb/index.html#Ú_ú-)Úreplace©Ú	case_names    úO/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_dynamo/exc.pyÚexportdb_error_messager   5   s"   € ð	Ià
×
Ñ
˜C Ó
%ñ	&ðó    Úgraph_breaksc                  ó   — e Zd Zy)ÚTorchDynamoExceptionN©Ú__name__Ú
__module__Ú__qualname__© r   r   r   r   A   ó   „ Ør   r   c                  ó   — e Zd Zy)ÚInternalTorchDynamoErrorNr    r$   r   r   r'   r'   E   r%   r   r'   c                  ó2   ‡ — e Zd ZU ded<   ddœdˆ fd„Zˆ xZS )ÚRestartAnalysisúOptional[str]Úrestart_reasonN)r+   c               ó,   •— || _         t        ‰| �  |Ž  y ©N)r+   ÚsuperÚ__init__)Úselfr+   ÚargsÚ	__class__s      €r   r/   zRestartAnalysis.__init__L   s   ø€ Ø,ˆÔÜ‰Ñ˜$Òr   )r1   r
   r+   r*   ÚreturnÚNone©r!   r"   r#   Ú__annotations__r/   Ú__classcell__©r2   s   @r   r)   r)   I   s   ø… Ø!Ó!àCG÷  ó  r   r)   c                  ó   — e Zd Zy)ÚSpeculationRestartAnalysisNr    r$   r   r   r:   r:   Q   r%   r   r:   c                  ó   — e Zd Zy)ÚUnspecializeRestartAnalysisNr    r$   r   r   r<   r<   U   r%   r   r<   c                  ó   — e Zd Zy)Ú CompileCollectiveRestartAnalysisNr    r$   r   r   r>   r>   Y   r%   r   r>   c                  ó   — e Zd Zy)ÚTensorifyScalarRestartAnalysisNr    r$   r   r   r@   r@   ]   r%   r   r@   c                  ó   — e Zd Zy)Ú	SkipFrameNr    r$   r   r   rB   rB   a   r%   r   rB   c                  ó   — e Zd Zy)ÚTorchRuntimeErrorNr    r$   r   r   rD   rD   e   r%   r   rD   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚInvalidBackendc                ó,   •— t         ‰| �  d|›d�«       y )NzInvalid backend: z=, see `torch._dynamo.list_backends()` for available backends.©r.   r/   )r0   Únamer2   s     €r   r/   zInvalidBackend.__init__j   s   ø€ Ü‰ÑØ ˜xÐ'dÐeõ	
r   )rI   Ústrr3   r4   ©r!   r"   r#   r/   r7   r8   s   @r   rF   rF   i   s   ø„ ÷
ñ 
r   rF   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚResetRequiredc                óJ   •— t         ‰| �  t        j                  d«      «       y )NzÃ
                Must call `torch._dynamo.reset()` before changing backends.  Detected two calls to
                `torch.compile()` with a different backend compiler arguments.
                )r.   r/   ÚtextwrapÚdedent)r0   r2   s    €r   r/   zResetRequired.__init__q   s!   ø€ Ü‰ÑÜ�O‰Oðóõ	
r   ©r3   r4   rK   r8   s   @r   rM   rM   p   s   ø„ ÷
ñ 
r   rM   c                  ó8   ‡ — e Zd Z	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zˆ xZS )ÚShortenTracebackc               ó2   •— t        ‰| �  |i |¤Ž || _        y r-   )r.   r/   Úfirst_useful_frame)r0   rU   r1   Úkwargsr2   s       €r   r/   zShortenTraceback.__init__}   s   ø€ ô 	‰Ñ˜$Ð) &Ò)Ø"4ˆÕr   c                ó  — | j                   }| j                  �|�t        j                  r| S |j                  | j                  ur.|j
                  }|€J d«       ‚|j                  | j                  urŒ.| j                  |«      S )Nz#internal error, please report a bug)Ú__traceback__rU   r   ÚverboseÚtb_frameÚtb_nextÚwith_traceback)r0   Útbs     r   Úremove_dynamo_framesz%ShortenTraceback.remove_dynamo_framesƒ   sz   € Ø×ÑˆØ×"Ñ"Ð*¨b¨j¼F¿NºNØˆKØ�k‰k ×!8Ñ!8Ñ8Ø—‘ˆBØ�>ÐHÐ#HÓH�>ð �k‰k ×!8Ñ!8Ò8ð ×"Ñ" 2Ó&Ð&r   )r1   r
   rU   úOptional[types.FrameType]rV   r
   r3   r4   )r3   ztyping.Self)r!   r"   r#   r/   r^   r7   r8   s   @r   rS   rS   |   s-   ø„ ð5Øð5Ø.Gð5ØSVð5à	õ5÷'r   rS   c                  ó0   ‡ — e Zd Z	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )ÚBackendCompilerFailedc                óª   •— t        |dd«      | _        || _        d| j                  ›dt        |«      j                  › d|› �}t
        ‰| �  ||¬«       y )Nr!   ú?zbackend=z	 raised:
z: )rU   )ÚgetattrÚbackend_nameÚinner_exceptionÚtyper!   r.   r/   )r0   Ú
backend_fnrf   rU   Úmsgr2   s        €r   r/   zBackendCompilerFailed.__init__Ž   s_   ø€ ô $ J°
¸CÓ@ˆÔØ.ˆÔØ˜×*Ñ*Ð-¨Z¼¸_Ó8M×8VÑ8VÐ7WÐWYÐZiÐYjÐkˆÜ‰Ñ˜Ð1CÐÕDr   )rh   r
   rf   Ú	ExceptionrU   r_   r3   r4   rK   r8   s   @r   ra   ra   �   s9   ø„ ð	Eàð	Eð #ð	Eð 6ð		Eð
 
÷	Eñ 	Er   ra   c                  ó8   ‡ — e Zd Zddœdˆ fd„Zdd„Zdd	d„Zˆ xZS )
ÚUnsupportedNr   c               óÈ   •— t         ‰| �  |«       t        j                  j                  j                  «       | _        || _        d | _        | j                  «        || _
        y r-   )r.   r/   ÚtorchÚ_guardsÚTracingContextr   Ú
real_stackri   ÚcategoryÚadd_to_statsr   )r0   ri   r   r2   s      €r   r/   zUnsupported.__init__›   sK   ø€ Ü‰Ñ˜ÔÜŸ-™-×6Ñ6×DÑDÓFˆŒØˆŒØ'+ˆŒØ×ÑÔØ(1ˆ�r   c                óô   — | j                   €J ‚t        | j                      | j                  xx   dz  cc<   t        | j                      | j                     dk  rt        | j                      | j                  = y y )Nr   r   ©rr   r   ri   ©r0   s    r   Úremove_from_statszUnsupported.remove_from_stats£   sc   € Ø�}‰}Ð(Ð(Ð(Ü�—‘Ñ §¡Ó)¨QÑ.Ó)Ü�D—M‘MÑ" 4§8¡8Ñ,°Ò1Ü˜Ÿ™Ñ'¨¯©Ñ1ð 2r   c                óN   — || _         t        |   | j                  xx   dz  cc<   y )Nr   ru   )r0   rr   s     r   rs   zUnsupported.add_to_stats©   s"   € Ø ˆŒÜ�Ñ˜4Ÿ8™8Ó$¨Ñ)Ô$r   )ri   rJ   r   r*   r3   r4   rQ   )Úunimplemented)rr   rJ   r3   r4   )r!   r"   r#   r/   rw   rs   r7   r8   s   @r   rl   rl   š   s   ø„ Ø?C÷ 2ó2÷*ð *r   rl   c                  ó   — e Zd Zy)Ú$UnknownPropertiesDuringBackwardTraceNr    r$   r   r   r{   r{   ®   r%   r   r{   c                  ó   — e Zd Zy)ÚRecompileErrorNr    r$   r   r   r}   r}   ²   r%   r   r}   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚArgsMismatchErrorc                ó$   •— t         ‰| �  |«       y r-   rH   ©r0   ri   r2   s     €r   r/   zArgsMismatchError.__init__·   ó   ø€ Ü‰Ñ˜Õr   ©ri   rJ   r3   r4   rK   r8   s   @r   r   r   ¶   ó   ø„ ÷ñ r   r   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚAttributeMutationErrorc                ó$   •— t         ‰| �  |«       y r-   rH   r�   s     €r   r/   zAttributeMutationError.__init__¼   r‚   r   rƒ   rK   r8   s   @r   r†   r†   »   r„   r   r†   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚInfiniteGeneratorErrorc                ó$   •— t         ‰| �  |«       y r-   rH   r�   s     €r   r/   zInfiniteGeneratorError.__init__Â   r‚   r   rƒ   rK   r8   s   @r   r‰   r‰   À   s   ø„ ÷ñ r   r‰   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚSideEffectsErrorc                ó$   •— t         ‰| �  |«       y r-   rH   r�   s     €r   r/   zSideEffectsError.__init__Ç   r‚   r   rƒ   rK   r8   s   @r   rŒ   rŒ   Æ   r„   r   rŒ   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚCondOpArgsMismatchErrorz?
    Internal error from cond() due to arguments mismatch.
    c                ó$   •— t         ‰| �  |«       y r-   rH   r�   s     €r   r/   z CondOpArgsMismatchError.__init__Ð   r‚   r   rƒ   )r!   r"   r#   Ú__doc__r/   r7   r8   s   @r   r�   r�   Ë   s   ø„ ñ÷ñ r   r�   c                  ó|   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Zy)ÚUserErrorTypeN)r!   r"   r#   r   ÚDYNAMIC_CONTROL_FLOWÚANTI_PATTERNÚSTANDARD_LIBRARYÚCONSTRAINT_VIOLATIONÚDYNAMIC_DIMÚINVALID_INPUTÚINVALID_OUTPUTÚ*UNSUPPORTED_ALIASED_MUTATED_DYNAMIC_INPUTSr$   r   r   r“   r“   Ô   s>   „ Ù›6ÐÙ“6€LÙ“vÐÙ›6ÐÙ“&€KÙ“F€MÙ“V€NÙ15³Ñ.r   r“   c                  ó2   ‡ — e Zd Z	 d	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )Ú	UserErrorc                ó¼   •— |�<t        |t        «      sJ ‚|j                  d«      r|dz  }n|dz  }|t        |«      z  }t        ‰| �  |«       || _        || _        y)aG  
        Type of errors that would be valid in Eager, but not supported in TorchDynamo.
        The error message should tell user about next actions.

        error_type: Type of user error
        msg: Actionable error message
        case_name: (Optional) Unique name (snake case) for the usage example in exportdb.
        Nú.ú ú
)Ú
isinstancerJ   Úendswithr   r.   r/   Ú
error_typeÚmessage)r0   r¤   ri   r   r2   s       €r   r/   zUserError.__init__à   sd   ø€ ð Ð Ü˜i¬Ô-Ð-Ð-Ø�|‰|˜CÔ Ø�s‘
‘à�t‘�ØÔ)¨)Ó4Ñ4ˆCÜ‰Ñ˜ÔØ$ˆŒØˆ�r   r-   )r¤   r“   ri   rJ   r   r*   r3   r4   rK   r8   s   @r   r�   r�   ß   s0   ø„ àNRðØ'ðØ.1ðØ>Kðà	÷ñ r   r�   c                  ó   — e Zd Zy)ÚSkipCodeRecursiveExceptionNr    r$   r   r   r§   r§   ÷   r%   r   r§   c                  ó   — e Zd Zy)ÚRecompileLimitExceededNr    r$   r   r   r©   r©   û   r%   r   r©   c                  ó   — e Zd Zy)ÚUnsafeScriptObjectErrorNr    r$   r   r   r«   r«   ÿ   r%   r   r«   c                  ó   — e Zd Zy)ÚUncapturedHigherOrderOpErrorNr    r$   r   r   r­   r­     r%   r   r­   c                  ó   — e Zd Zy)ÚIncorrectUsageNr    r$   r   r   r¯   r¯     r%   r   r¯   c                  ó   — e Zd Zy)ÚFailOnRecompileLimitHitNr    r$   r   r   r±   r±     r%   r   r±   c                  ó   — e Zd Zy)ÚObservedExceptionNr    r$   r   r   r³   r³     ó   „ àr   r³   c                  ó,   ‡ — e Zd ZU ded<   dˆ fd„Zˆ xZS )ÚObservedUserStopIterationzOptional[Any]Úvaluec                ód   •— t         ‰| �  d«       t        |«      dkD  r|d   | _        y d | _        y )Nzunhandled `raise StopIteration`r   )r.   r/   Úlenr·   )r0   r1   rV   r2   s      €r   r/   z"ObservedUserStopIteration.__init__  s.   ø€ Ü‰ÑÐ:Ô;Üˆt‹9�qŠ=Ø˜a™ˆD�JàˆD�Jr   )r1   r
   rV   r
   r3   r4   r5   r8   s   @r   r¶   r¶     s   ø… àÓ÷ñ r   r¶   c                  ó   — e Zd Zy)ÚObservedLookupErrorNr    r$   r   r   r»   r»   %  r´   r   r»   c                  ó   — e Zd Zy)ÚObservedIndexErrorNr    r$   r   r   r½   r½   *  r´   r   r½   c                  ó   — e Zd Zy)ÚObservedKeyErrorNr    r$   r   r   r¿   r¿   /  r´   r   r¿   c                  ó   — e Zd Zy)ÚObservedGeneratorExitNr    r$   r   r   rÁ   rÁ   4  r%   r   rÁ   c                  ó   — e Zd Zy)ÚObservedAttributeErrorNr    r$   r   r   rÃ   rÃ   8  r´   r   rÃ   c                  ó   — e Zd Zy)ÚObservedRuntimeErrorNr    r$   r   r   rÅ   rÅ   =  r´   r   rÅ   c                  ó   — e Zd Zy)ÚObservedNotImplementedErrorNr    r$   r   r   rÇ   rÇ   B  r%   r   rÇ   c                  ó   — e Zd Zy)ÚObservedTypeErrorNr    r$   r   r   rÉ   rÉ   F  r´   r   rÉ   c                óŠ   — | t         vr3t        | dt        | «      «      }t        d|› d�t        fi «      t         | <   t         |    S )Nr!   ÚObservedÚError)Úobserved_exception_maprd   rJ   rg   r³   )Úexc_typerI   s     r   Úget_dynamo_observed_exceptionrÏ   X  sN   € ØÔ-Ñ-Ü�x ¬S°«]Ó;ˆÜ+/Ø�t�f˜EÐ"Ô%6Ð$8¸"ó,
Ô˜xÑ(ô " (Ñ+Ð+r   )r1   rV   c               ó˜   — ddl m}  || «      j                  ||xs g |xs i «      }|j                  j	                  |«       t
        |    ‚)Nr   )ÚBuiltinVariable)Ú	variablesrÑ   Úcall_functionÚexn_vt_stackÚset_current_exceptionrÍ   )rÎ   Útxr1   rV   rÑ   Úexception_vts         r   Úraise_observed_exceptionrØ   a  sH   € õ +ñ # 8Ó,×:Ñ:¸2¸tºzÀrÈ6Ê<ÐUWÓX€LØ‡O�O×)Ñ)¨,Ô7Ü
  Ñ
*Ð*r   c                ó8   — | j                   j                  «        y r-   )rÔ   Úclear_current_exception)rÖ   s    r   Úhandle_observed_exceptionrÛ   q  s   € ð2 ‡O�O×+Ñ+Õ-r   c                óÚ   ‡— t        | |«      Št        j                  j                  dd„ ˆfd„¬«       t        j                  d‰«       t        j                  |«       t        || ¬«       y )NÚartifactc                 ó   — dddœS ©NÚdynamo_graph_break_reasonÚstring)rI   Úencodingr$   r$   r   r   ú<lambda>z,unimplemented_with_warning.<locals>.<lambda>£  ó   € Ø/Ø ñ
€ r   c                 ó   •— ‰ S r-   r$   ©Úgraph_break_msgs   €r   rã   z,unimplemented_with_warning.<locals>.<lambda>§  ó   ø€ ˜?€ r   ©Úmetadata_fnÚ
payload_fnú%s)Úfrom_exc)	Úformat_error_msg_verbosern   Ú_loggingÚtrace_structuredÚgraph_breaks_logÚdebugÚlogÚwarningry   )ÚeÚcoderi   rç   s      @r   Úunimplemented_with_warningr÷   –  s]   ø€ ô /¨q°$Ó7€OÜ	‡N�N×#Ñ#Øñ
ó +ð $ô ô ×Ñ˜4 Ô1Ü‡K�K�ÔÜ�# Ö"r   )rí   r   c               ó’   — | t         j                  j                  dd«      k7  sJ ‚|t        urt	        | |¬«      |‚t	        | |¬«      ‚)NÚBREAKFr   )ÚosÚenvironÚgetÚ_NOTHINGrl   )ri   rí   r   s      r   ry   ry   ±  sE   € ð ”"—*‘*—.‘. ¨%Ó0Ò0Ð0Ð0Ø”xÑÜ˜#¨Ô3¸ÐAÜ
�c YÔ
/Ð/r   c                ó¸   ‡— t        | |«      Št        j                  j                  dd„ ˆfd„¬«       t        j                  d‰«       t        ||||| d¬«       y )NrÝ   c                 ó   — dddœS rß   r$   r$   r   r   rã   z/unimplemented_v2_with_warning.<locals>.<lambda>Ì  rä   r   c                 ó   •— ‰ S r-   r$   ræ   s   €r   rã   z/unimplemented_v2_with_warning.<locals>.<lambda>Ð  rè   r   ré   rì   T©rí   Úlog_warning)rî   rn   rï   rð   rñ   rò   Úunimplemented_v2)rõ   rö   Úgb_typeÚcontextÚexplanationÚhintsrç   s         @r   Úunimplemented_v2_with_warningr  º  sZ   ø€ ô /¨q°$Ó7€OÜ	‡N�N×#Ñ#Øñ
ó +ð $ô ô ×Ñ˜4 Ô1Ü�W˜g {°EÀAÐSWÖXr   c                óâ   — t        j                  |d«      j                  «       }dj                  d„ |D «       «      }t        j                  |d«      j                  «       }| › d|› d|› d|› d�}|S )Nú    r¡   c              3  ój   K  — | ]+  }d t        j                  |d«      j                  «       z   –— Œ- y­w)z  Hint: r
  N)rO   ÚindentÚlstrip)Ú.0Úhints     r   ú	<genexpr>z-format_graph_break_message.<locals>.<genexpr>Ý  s.   è ø€ ò Ø@Dˆ
”X—_‘_ T¨6Ó2×9Ñ9Ó;Õ;ñùs   ‚13z
  Explanation: z

  Developer debug context: )rO   r  r  Újoin)r  r  r  r  Ú	hints_strri   s         r   Úformat_graph_break_messager  Ö  s‹   € ô —/‘/ +¨vÓ6×=Ñ=Ó?€KØ—	‘	ñ ØHMôó €Iô �o‰o˜g vÓ.×5Ñ5Ó7€Gð 	€	ð 
Øˆ}ð Ø
€ð à#˜9ð %ð€Cð €Jr   Fr  c               óŠ   — t        | |||«      }|rt        j                  |«       |t        urt	        |«      |‚t	        |«      ‚)a  
    Called within dynamo to cause a graph break.
    Args:
        gb_type: Context-free graph break type. It should be a short string without any
                 information specific to the tracing context (i.e. no dynamically-generated strings)
        context: Developer context for the graph break. It can contain tracing context/dynamic strings.
        explanation: User-facing context-dependent explanation for the graph break. Can be dynamic.
        hints: List of user-facing hints for the graph break.
    )r  ró   rô   rý   rl   )r  r  r  r  rí   r  ri   s          r   r  r  í  sC   € ô& % W¨g°{ÀEÓ
J€CÙÜ�‰�CÔØ”xÑÜ˜#Ó HÐ,Ü
�cÓ
Ðr   c                óv   — t         d   | xx   dz  cc<   | t        j                  j                  dd«      k7  sJ ‚y )NÚwarningsr   rù   F)r   rú   rû   rü   )ri   s    r   rô   rô     s4   € ÜˆZÑ˜Ó Ñ"ÓØ”"—*‘*—.‘. ¨%Ó0Ò0Ð0Ñ0r   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚKeyErrorMsgc                ó   — || _         y r-   )r·   )r0   r·   s     r   r/   zKeyErrorMsg.__init__  s	   € Øˆ�
r   c                ó,   — t        | j                  «      S r-   )rJ   r·   rv   s    r   Ú__str__zKeyErrorMsg.__str__  s   € Ü�4—:‘:‹Ðr   c                ó"   — | j                  «       S r-   )r  rv   s    r   Ú__repr__zKeyErrorMsg.__repr__  s   € Ø�|‰|‹~Ðr   N)r·   r
   r3   r4   )r3   rJ   )r!   r"   r#   r/   r  r  r$   r   r   r  r    s   „ óóôr   r  c                ó†  — dd l }d | _        t        | «      }|�>t        |«      dkD  r0|d   | _        |ddj	                  |j                  |«      «      › �z  }t        j                  r,t        | d«      r |d| j                  › d| j                  › d�z  }t        j                  st        | d	«      r|d
z  }t        | d«      r~t        | j                  d«      rht        | j                  d«      r5|d| j                  j                  › d| j                  j                  › d�z  }n|d| j                  j                  › d�z  }t        | j                  «      dk(  rdnt        | j                  d   «      }t!        | t"        «      r%t%        ||z   «      f| j                  dd  z   | _        y ||z   }|f| j                  dd  z   | _        y )Nr   éÿÿÿÿz
from user code:
 Ú Úrecord_filenamez!
Last frame execution written to zD. To run only this frame while debugging, run torch._dynamo.replay('z').
rq   z´
Set TORCHDYNAMO_VERBOSE=1 for the internal stack trace (please do this especially if you're reporting a bug to PyTorch). For even more developer context, set TORCH_LOGS="+dynamo"
rf   Úminifier_pathÚbuck_commandz
Minifier script written to zW. Run this buck command to find the smallest traced graph which reproduces this error: r¡   zQ. Run this script to find the smallest traced graph which reproduces this error.
r   )Ú	tracebackÚinnermost_user_frame_summaryÚget_real_stackr¹   r  r   r   Úreplay_record_enabledÚhasattrr!  rY   rf   r"  r#  r1   rJ   r¢   ÚKeyErrorr  )Úexcri   Úexportr$  rq   Úold_msgÚnew_msgs          r   Úaugment_exc_messager.    sÐ  € Ûà'+€CÔ$ä Ó$€JØÐ¤# j£/°AÒ"5Ø+5°b©>ˆÔ(ØÐ% b§g¡g¨i×.CÑ.CÀJÓ.OÓ&PÐ%QÐRÑRˆä×#Ò#¬°Ð5FÔ(GØØ0°×1DÑ1DÐ0Eð FØ×+Ñ+Ð,¨Eð3ñ	
ˆô
 �>Š>œg c¨<Ô8ØðJñ	
ˆô ˆsÐ%Ô&¬7Ø×Ñ˜_ô,ô �3×&Ñ&¨Ô7ØØ/°×0CÑ0C×0QÑ0QÐ/Rð S0à03×0CÑ0C×0PÑ0PÐ/QÐQSðUñ‰Cð Ø/°×0CÑ0C×0QÑ0QÐ/Rð S_ð _ñˆCô
 ˜Ÿ™“M QÒ&‰b¬C°·±¸±Ó,<€Gä�#”xÔ Ü ¨#¡Ó.Ð0°3·8±8¸A¸B°<Ñ?ˆ�à˜C‘-ˆØ�: §¡¨¨ Ñ,ˆ�r   c                ó�   — d }d }| j                   �,| j                   j                  }| j                   j                  }|| _        ||fS r-   )r%  ÚfilenameÚlinenoÚ
compile_id)rõ   r2  r0  r1  s       r   Úget_exc_messager3  I  sN   € ð €HØ€FØ×%Ñ%Ð1Ø×1Ñ1×:Ñ:ˆØ×/Ñ/×6Ñ6ˆØ€A„LØ�VÐÐr   c                 ó(   — t        t        «       «      S r-   )Úfilter_stackr   r$   r   r   Úget_stack_above_dynamor6  U  s   € Üœ›Ó(Ð(r   c                ó€   — t        | dd «      }|€y |�t        «       }n
t        «       }t        j                  ||z   «      S )Nrq   )rd   r6  r	   Ú	from_list)r*  Úframerq   Ústack_above_dynamos       r   r&  r&  Y  sM   € ô ˜˜l¨DÓ1€JØÐØð Ðô 4Ó5Ñä)›^Ðä×!Ñ!Ð"4°zÑ"AÓBÐBr   c                óØ   — t        «       }| D ]Z  }|j                  €Œd|j                  v r |S d|j                  v s|j                  rd|j                  v rŒJ|j                  |«       Œ\ |S )NÚconvert_frameÚ
eval_frameztorch._dynamo.optimize()r	   r0  ÚlineÚappend)ÚstackÚ
user_stackr9  s      r   r5  r5  z  sv   € Ü“€JØò 	!ˆØ�>‰>Ð!ØØ˜eŸn™nÑ,Øð Ðð ˜5Ÿ>™>Ñ)Ø�JŠJÐ4¸¿
¹
ÑBàØ×Ñ˜%Õ ð	!ð Ðr   c                óh   — ddl m} t        j                  |› d�| «      }|r|j	                  d«      S y )Nr   )ÚTORCH_DYNAMO_RESUME_IN_PREFIXz_(\w+)_at_\d+)Úresume_executionrC  ÚreÚmatchÚgroup)rI   rC  rF  s      r   Úremove_resume_prefixrH  Š  s2   € Ý?ä�H‰HÐ5Ð6°oÐFÈÓM€EÙØ�{‰{˜1‹~ÐØr   c                óÔ   — t        «       }| D ]X  }|j                  €Œt        |j                  «      }|r!|r|d   j                  |k(  r||d<   ||_        ŒH|j	                  |«       ŒZ |S )a1  
    When we graph break, we create a resume function and make a regular Python call
    to it, which gets intercepted by Dynamo. This behavior is normally shown in the
    traceback, which can be confusing to a user. So we can filter out resume frames
    for better traceback clarity.

    Example:
    File "..." line 3, in f
        <line 3>
    File "..." line 5, in torch_dynamo_resume_in_f_at_80
        <line 5>
    File "..." line 10, in torch_dynamo_resume_in_f_at_120
        <line 10>

    becomes
    File "..." line 10, in f
        <line 10>
    r  )r	   r0  rH  rI   r?  )r@  Ú	new_stackr9  rI   s       r   Úcollapse_resume_framesrK  “  sq   € ô( “€IØò $ˆØ�>‰>Ð!ØÜ# E§J¡JÓ/ˆÙ™ )¨B¡-×"4Ñ"4¸Ò"<Ø!ˆI�b‰MØˆE�Jà×Ñ˜UÕ#ð$ð Ðr   c                óò   — d|j                   › d|j                  › d|j                  › d�}|dz  }|t        «       z  }t	        | |«      }|�,|dz  }|dj                  t        |«      «      z  }|dz  }|dz  }|S )	NúWON'T CONVERT r    ú line r¡   z.========== TorchDynamo Stack Trace ==========
zY
========== The above exception occurred while processing the following code ==========

r   z
==========)Úco_nameÚco_filenameÚco_firstlinenor   r&  r  r   )r*  rö   r!  r9  ri   rq   s         r   rî   rî   µ  sŸ   € ð ˜Ÿ™˜ a¨×(8Ñ(8Ð'9¸À×@SÑ@SÐ?TÐTVÐWð ð ÐCÑC€CØŒ:‹<Ñ€CÜ  UÓ+€JØÐØðñ	
ˆð 	ˆr�w‰w”{ :Ó.Ó/Ñ/ˆØˆt‰ˆØˆx‰ˆà€Jr   c           	     ó¦   — t         j                  rt        | |||«      S d|j                  › d|j                  › d|j
                  › dt        «       › �S )NrM  r    rN  z 
due to: 
)r   rY   rî   rO  rP  rQ  r   )r*  rö   r!  r9  s       r   Úformat_error_msgrS  Ð  sW   € ô ‡~‚~Ü'¨¨T°?ÀEÓJÐJØ˜DŸL™L˜>¨¨4×+;Ñ+;Ð*<ð =Ø×ÑÐ˜=¬«¨ð8ð 8r   )r   rJ   r3   rJ   )rÎ   útype[Exception]r3   ztype[ObservedException])
rÎ   rT  rÖ   r   r1   zOptional[list[Any]]rV   zOptional[dict[str, Any]]r3   r   )rÖ   r
   r3   r4   )rõ   rj   rö   útypes.CodeTyperi   rJ   r3   r   )ri   rJ   rí   r
   r   r*   r3   r   )rõ   rj   rö   rU  r  rJ   r  rJ   r  rJ   r  ú	list[str]r3   r   )
r  rJ   r  rJ   r  rJ   r  rV  r3   rJ   )r  rJ   r  rJ   r  rJ   r  rV  rí   r
   r  Úboolr3   r   rƒ   )r¡   F)r*  rj   ri   rJ   r+  rW  r3   r4   )rõ   rj   r2  r   r3   z#tuple[Optional[str], Optional[int]])r3   r	   r-   )r*  rj   r9  úOptional[DynamoFrameType]r3   zOptional[StackSummary])r@  r	   r3   r	   )rI   rJ   r3   r*   )NN)
r*  rj   rö   rU  r!  r*   r9  rX  r3   rJ   )sÚ
__future__r   Úloggingrú   rE  rO   ÚtypingÚenumr   r   r$  r   r   r   r	   r
   r   r   r   Útorch._guardsrn   r   r   Úutilsr   Útypesr   Úsymbolic_convertr   r   r   Ú	getLoggerr!   ró   rï   ÚgetArtifactLoggerrñ   ÚRuntimeErrorr   r'   r)   r:   r<   r>   r@   rB   rD   rF   rM   rS   ra   rl   r{   r}   r   r†   r‰   rŒ   r�   r“   r�   r§   r©   r«   r­   rj   r¯   r±   r³   r¶   r»   r½   r¿   rÁ   rÃ   rÅ   rÇ   rÉ   ÚStopIterationÚLookupErrorÚ
IndexErrorÚGeneratorExitr)  ÚAttributeErrorÚNotImplementedErrorÚ	TypeErrorrÍ   rÏ   rØ   rÛ   Ú_subclassesÚfake_tensorÚDataDependentOutputExceptionÚDynamicOutputShapeExceptionÚUnsupportedOperatorExceptionÚUnsupportedFakeTensorExceptionÚ!exceptions_allowed_to_be_fallbackr÷   Úobjectrý   ry   r  r  r  rô   r  r.  r3  r6  r&  r5  rH  rK  rî   rS  r$   r   r   ú<module>rs     sW  ðÝ "ðó2 Û 	Û 	Û Û ß ß JÓ Jß 9Ó 9ã å Ý ñ Ûå'å;Ý&óð €g×Ñ˜Ó!€Ø—>‘>×3Ñ3°H¸nÓMÐ ô	˜<ô 	ô	Ð3ô 	ô Ð*ô  ô	 ô 	ô	 /ô 	ô	 ô 	ô	 _ô 	ô	Ð$ô 	ô	Ð,ô 	ô
Ð)ô 
ô	
Ð(ô 	
ô'Ð+ô 'ô"
EÐ,ô 
Eô*Ð&ô *ô(	¨;ô 	ô	Ð)ô 	ô˜ô ô
˜[ô ô
˜[ô ô�{ô ô
Ð/ô ô8�Dô 8ô�ô ô0	Ð!5ô 	ô	˜[ô 	ô	Ð2ô 	ô	Ð#7ô 	ô	�Yô 	ô	˜iô 	ô	Ð,ô 	ô
Ð 1ô ô	Ð+ô 	ô
	Ð,ô 	ô
	Ð*ô 	ô
	Ð-ô 	ô	Ð.ô 	ô
	Ð,ô 	ô
	Ð"3ô 	ô	Ð)ô 	ð Ð,ØÐ$ØÐ"ØÐ(ØÐØÐ*ØÐ&ØÐ4ØÐ ð
Ð ó,ð !%Ø'+ñ+Øð+à!ð+ð ð	+ð
 %ð+ð ó+ó .ð< 
×Ñ×!Ñ!×>Ñ>Ø	×Ñ×!Ñ!×=Ñ=Ø	×Ñ×!Ñ!×>Ñ>Ø	×Ñ×!Ñ!×@Ñ@ð	%Ð !ð#Øð#Ø&ð#Ø-0ð#àó#ñ0 ‹8€ð "*Àdñ0Ø	ð0Øð0Ø6Cð0àó0ðYØðYà
ðYð ðYð ð	Yð
 ðYð ðYð óYð8Øðàðð ðð ð	ð
 	óð: ØñØðàðð ðð ð	ð ðð ðð óó61÷ñ ô,-ð^	Øð	Ø'ð	à(ó	ó)ð
 8<ðCØ	ðCØ4ðCàóCóBó óðJ &*Ø'+ð	Ø	ðà
ðð #ðð %ð	ð
 	óð< &*Ø'+ð		8Ø	ð	8à
ð	8ð #ð	8ð %ð		8ð
 	ô	8r   