
    i>f                       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 d dl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 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$ d	dlm%Z% ddZ& ejN                  e(      Z)ejT                  jW                  e(d      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e1      Z3 G d de1      Z4 G d  d!e1      Z5 G d" d#e.      Z6 G d$ d%e.      Z7 G d& d'e.      Z8 G d( d)e.      Z9 G d* d+e.      Z: G d, d-e:      Z; G d. d/e.      Z< G d0 d1e<      Z= G d2 d3e.      Z> G d4 d5e<      Z? G d6 d7e<      Z@ G d8 d9e<      ZA G d: d;e<      ZB G d< d=e?      ZC G d> d?e	      ZD G d@ dAe<      ZE G dB dCe.      ZF G dD dEe<      ZG G dF dGe.      ZH G dH dIe.      ZI G dJ dKe.      ZJ G dL dMeK      ZL G dN dOeK      ZM G dP dQe.      ZN G dR dSe.      ZO G dT dUeO      ZP G dV dWeO      ZQ G dX dYeQ      ZR G dZ d[eQ      ZS G d\ d]eO      ZT G d^ d_eO      ZU G d` daeO      ZV G db dceO      ZW G dd deeO      ZXeYePeZeQe[eRe\eTe]eSe^eUe-eVe_eWe`eXi	ZaddfZbdddg	 	 	 	 	 	 	 	 	 ddhZcddiZdej                  j                  j                  ej                  j                  j                  ej                  j                  j                  ej                  j                  j                  ej                  j                  j                  fZl	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddjZm	 	 	 	 	 	 	 	 	 	 ddkZn ed	l      ddm       ZoddnZp eq       Zrerdodp	 	 	 	 	 	 	 	 	 	 	 	 	 ddqZs G dr ds      ZtdddtZu	 	 	 	 	 	 dduZvddvZw	 d	 	 	 	 	 ddwZxddxZyddyZzddzZ{	 	 d	 	 	 	 	 	 	 	 	 dd{Z|dd|Z}dd}Z~dd~Z	 	 d	 	 	 	 	 	 	 	 	 ddZy)    )annotationsN)autoEnum)	lru_cache)Path)extract_stack
format_excformat_listStackSummary)AnyNoReturnOptionalTYPE_CHECKING)get_file_path_2   )config)counters)	CompileId)DynamoTracerOutput)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    K/var/www/html/engine/venv/lib/python3.12/site-packages/torch/_dynamo/exc.pyexportdb_error_messager   9   s"    	I


C
%	&    graph_breaksc                        e Zd Zd fdZ xZS )TorchDynamoExceptionc                2    t        |   |i | d | _        y N)super__init___torch_dynamo_tracer_outputselfargskwargs	__class__s      r   r&   zTorchDynamoException.__init__F   s    $)&)IM(r   r*   r   r+   r   returnNone__name__
__module____qualname__r&   __classcell__r,   s   @r   r"   r"   E   s    N Nr   r"   c                      e Zd Zy)InternalTorchDynamoErrorNr1   r2   r3    r   r   r7   r7   K       r   r7   c                      e Zd Zy)ResumePrologueTracingErrorNr8   r9   r   r   r<   r<   O   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 r$   )r@   r%   r&   )r)   r@   r*   r,   s      r   r&   zRestartAnalysis.__init__V   s    ,$r   )r*   r   r@   r?   r.   r/   r1   r2   r3   __annotations__r&   r4   r5   s   @r   r>   r>   S   s    !!CG    r   r>   c                      e Zd Zy)SpeculationRestartAnalysisNr8   r9   r   r   rE   rE   [   r:   r   rE   c                      e Zd Zy)UnspecializeRestartAnalysisNr8   r9   r   r   rG   rG   _   r:   r   rG   c                      e Zd Zy) CompileCollectiveRestartAnalysisNr8   r9   r   r   rI   rI   c   r:   r   rI   c                      e Zd Zy)TensorifyScalarRestartAnalysisNr8   r9   r   r   rK   rK   g   r:   r   rK   c                      e Zd Zy)	SkipFrameNr8   r9   r   r   rM   rM   k   r:   r   rM   c                      e Zd Zy)TorchRuntimeErrorNr8   r9   r   r   rO   rO   o   r:   r   rO   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&   )r)   namer,   s     r   r&   zInvalidBackend.__init__t   s    x'de	
r   )rS   strr.   r/   r0   r5   s   @r   rQ   rQ   s   s    
 
r   rQ   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)r)   r,   s    r   r&   zResetRequired.__init__{   s!    OO	
r   r.   r/   r0   r5   s   @r   rV   rV   z   s    
 
r   rV   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)r)   r^   r*   r+   r,   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__r^   r   verbosetb_frametb_nextwith_traceback)r)   tbs     r   remove_dynamo_framesz%ShortenTraceback.remove_dynamo_frames   sz    ""*bjFNNKkk!8!88B>H#HH> kk!8!88 ""2&&r   )r*   r   r^   Optional[types.FrameType]r+   r   r.   r/   )r.   ztyping.Self)r1   r2   r3   r&   rf   r4   r5   s   @r   r\   r\      s-    55.G5SV5	5'r   r\   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 )Nr1   ?zbackend=z	 raised:
z: )r^   )getattrbackend_nameinner_exceptiontyper1   r%   r&   )r)   
backend_fnrn   r^   msgr,   s        r   r&   zBackendCompilerFailed.__init__   s_     $J
C@.**-Z_8M8V8V7WWYZiYjk1CDr   )rp   r   rn   	Exceptionr^   rg   r.   r/   r0   r5   s   @r   ri   ri      s9    	E	E #	E 6		E
 
	E 	Er   ri   c                  H     e Zd Zddd	 	 	 	 	 	 	 d fdZddZdd	dZ xZS )
UnsupportedN)r   
real_stackc                   t         |   |       |s(t        j                  j                  j                         }|| _        || _        d | _        | j                          || _
        y r$   )r%   r&   torch_guardsTracingContextr   ru   rq   categoryadd_to_statsr   )r)   rq   r   ru   r,   s       r   r&   zUnsupported.__init__   sU     	55CCEJ$'+(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   rz   r   rq   r)   s    r   remove_from_statszUnsupported.remove_from_stats   sc    }}((()Q.)DMM"488,1'1 2r   c                N    || _         t        |   | j                  xx   dz  cc<   y )Nr   r}   )r)   rz   s     r   r{   zUnsupported.add_to_stats   s"     488$)$r   )rq   rT   r   r?   ru   zNone | StackSummaryr.   r/   rZ   )unimplemented)rz   rT   r.   r/   )r1   r2   r3   r&   r   r{   r4   r5   s   @r   rt   rt      sE    
 $(*.22 !	2
 (2 
2 2* *r   rt   c                      e Zd Zy)$UnknownPropertiesDuringBackwardTraceNr8   r9   r   r   r   r      r:   r   r   c                      e Zd Zy)RecompileErrorNr8   r9   r   r   r   r      r:   r   r   c                      e Zd Zy)ArgsMismatchErrorNr8   r9   r   r   r   r      r:   r   r   c                      e Zd Zy)AttributeMutationErrorNr8   r9   r   r   r   r      r:   r   r   c                      e Zd Zy)InfiniteGeneratorErrorNr8   r9   r   r   r   r          r   r   c                      e Zd Zy)SideEffectsErrorNr8   r9   r   r   r   r      r:   r   r   c                      e Zd ZdZy)CondOpArgsMismatchErrorz?
    Internal error from cond() due to arguments mismatch.
    N)r1   r2   r3   __doc__r9   r   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)r1   r2   r3   r   DYNAMIC_CONTROL_FLOWANTI_PATTERNSTANDARD_LIBRARYCONSTRAINT_VIOLATIONDYNAMIC_DIMINVALID_INPUTINVALID_OUTPUT*UNSUPPORTED_ALIASED_MUTATED_DYNAMIC_INPUTSr9   r   r   r   r      s>    66Lv6&KFMVN15.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. 
)
isinstancerT   endswithr   r%   r&   
error_typemessage)r)   r   rq   r   r,   s       r   r&   zUserError.__init__   sd      i---||C s
t))44C$r   r$   )r   r   rq   rT   r   r?   r.   r/   r0   r5   s   @r   r   r      s0    NR'.1>K	 r   r   c                      e Zd Zy)SkipCodeRecursiveExceptionNr8   r9   r   r   r   r     r:   r   r   c                      e Zd Zy)RecompileLimitExceededNr8   r9   r   r   r   r     r:   r   r   c                      e Zd ZddZy)StepUnsupportedc                ^    t         j                  j                  j                         | _        y r$   )rw   rx   ry   r   ru   r~   s    r   r&   zStepUnsupported.__init__  s    --66DDFr   NrZ   )r1   r2   r3   r&   r9   r   r   r   r     s    Gr   r   c                      e Zd Zy)UnsafeScriptObjectErrorNr8   r9   r   r   r   r     r:   r   r   c                  "     e Zd Zdd fdZ xZS )UncapturedHigherOrderOpErrorc                    t         |   |       || _        ||| _        y t        j                  j
                  j                         | _        y r$   )r%   r&   rq   rw   rx   ry   r   ru   )r)   rq   ru   r,   s      r   r&   z%UncapturedHigherOrderOpError.__init__  sJ     %  	 --;;= 	r   r$   )rq   rT   ru   Optional[StackSummary]r.   r/   r0   r5   s   @r   r   r     s    
 
r   r   c                      e Zd Zy)IncorrectUsageNr8   r9   r   r   r   r     r:   r   r   c                      e Zd Zy)FailOnRecompileLimitHitNr8   r9   r   r   r   r   &  r:   r   r   c                      e Zd Zy)PackageErrorNr8   r9   r   r   r   r   *  r:   r   r   c                        e Zd Zd fdZ xZS )ObservedExceptionc                ~    t        |   |i | t        j                  j                  j                         | _        y r$   )r%   r&   rw   rx   ry   r   ru   r(   s      r   r&   zObservedException.__init__0  s/    $)&)(-(D(D(R(R(Tr   r-   r0   r5   s   @r   r   r   .  s    U U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   r(   s      r   r&   z"ObservedUserStopIteration.__init__;  s.    :;t9q=aDJDJr   r-   rB   r5   s   @r   r   r   5  s     r   r   c                      e Zd Zy)ObservedLookupErrorNr8   r9   r   r   r   r   C  r   r   r   c                      e Zd Zy)ObservedIndexErrorNr8   r9   r   r   r   r   H  r   r   r   c                      e Zd Zy)ObservedKeyErrorNr8   r9   r   r   r   r   M  r   r   r   c                      e Zd Zy)ObservedGeneratorExitNr8   r9   r   r   r   r   R  r:   r   r   c                      e Zd Zy)ObservedAttributeErrorNr8   r9   r   r   r   r   V  r   r   r   c                      e Zd Zy)ObservedRuntimeErrorNr8   r9   r   r   r   r   [  r   r   r   c                      e Zd Zy)ObservedNotImplementedErrorNr8   r9   r   r   r   r   `  r:   r   r   c                      e Zd Zy)ObservedTypeErrorNr8   r9   r   r   r   r   d  r   r   r   c                    | t         vr3t        | dt        |             }t        d| dt        fi       t         | <   t         |    S )Nr1   ObservedError)observed_exception_maprl   rT   ro   r   )exc_typerS   s     r   get_dynamo_observed_exceptionr   v  sN    --xS];+/tfE"%6$8",
x( "(++r   )r*   r+   c                   ddl m}  ||       j                  ||xs g |xs i       }|j                  j	                  |       t        |       }|r || |)Nr   )BuiltinVariable)	variablesr   call_functionexn_vt_stackset_current_exceptionr   )r   txr*   r+   r   exception_vt
raised_excs          r   raise_observed_exceptionr     s[     + #8,::2tzr6<UWXLOO)),7.x8J$
r   c                8    | j                   j                          y r$   )r   clear_current_exception)r   s    r   handle_observed_exceptionr     s    2 OO++-r   c                   t        | |      t        j                  j                  dd fd       t        j                  d       t        } |||||| d       y )Nartifactc                     dddS )Ndynamo_graph_break_reasonstring)rS   encodingr9   r9   r   r   <lambda>z,unimplemented_with_warning.<locals>.<lambda>  s    / 
 r   c                      S r$   r9   )graph_break_msgs   r   r   z,unimplemented_with_warning.<locals>.<lambda>  s    ? r   )metadata_fn
payload_fnz%sT)gb_typecontextexplanationhintsfrom_exclog_warning)format_error_msg_verboserw   _loggingtrace_structuredgraph_breaks_logdebugr   )ecoder   r   r   r   _unimplementedr   s          @r   unimplemented_with_warningr     sf      /q$7O	NN##
 + $  41"Nr   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)rX   indentlstrip).0hints     r   	<genexpr>z-format_graph_break_message.<locals>.<genexpr>  s.      @D
X__T6299;;s   13z
  Explanation: z

  Developer debug context: )rX   r  r  join)r   r   r   r   	hints_strrq   s         r   format_graph_break_messager    s     //+v6==?K		 HM I oogv.557G 		 
} 
 #9 %C Jr   )maxsizec                    	 t        t              j                         j                  } t	        dt        |       d      }t        |      5 }t        j                  |      }ddd       i }j                         D ]  \  }}|D ]
  }|||d   <     |S # 1 sw Y   4xY w# t        $ r t        j                  d       i }Y Yw xY w)z
    Loads the gb_type to gb_id map from the graph break registry from JSON file with caching.

    Includes historical gb_type (mapping behavior of duplicate gb_types with different gb_ids is undefined).
     zgraph_break_registry.jsonNz!Error accessing the registry fileGb_type)r   __file__resolveparentr   rT   openjsonloadrr   log	exceptionitems)
script_dirregistry_pathfregistrymappingkventrys           r   _load_gb_type_to_gb_id_mapr    s    	(^++-44
'J!<
 -  	$Ayy|H	$ G  *1 	*E()GE)$%	** N	$ 	$ 9:s*   AB 
B B BB  CCc                X    d}t               }| |v r| d||    j                  d       dS y)z
    Retrieves the GBID documentation link for a given graph break type.

    Args:
        gb_type: The graph break type to look up.

    Returns:
        A string containing the documentation URL if found, otherwise None.
    z;https://meta-pytorch.github.io/compile-graph-break-site/gb/gbGBz.htmlN)r  r  )r   GRAPH_BREAK_SITE_URLgb_type_to_gb_id_maps      r   get_gbid_documentation_linkr$    sO     	F  67&&#$B';G'D'K'KD'Q&RRWX	
 r   F)r   r   c                    t        | |||      }t        |       }|r|d| z  }|rt        j                  |       |t        ur(d}t        |d      r|j                  }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.
    z9
 For more details about this graph break, please visit: Nru   )ru   )r  r$  r  warning_NOTHINGhasattrru   rt   )	r   r   r   r   r   r   rq   documentation_linkpast_real_stacks	            r   r   r   +  s    & %Wg{E
JC4W=KL^K_``Cx8\*&11O#/:H
c
r   c                  $    e Zd ZddZddZddZy)KeyErrorMsgc                    || _         y r$   )r   )r)   r   s     r   r&   zKeyErrorMsg.__init__R  s	    
r   c                ,    t        | j                        S r$   )rT   r   r~   s    r   __str__zKeyErrorMsg.__str__U  s    4::r   c                "    | j                         S r$   )r/  r~   s    r   __repr__zKeyErrorMsg.__repr__X  s    ||~r   N)r   r   r.   r/   )r.   rT   )r1   r2   r3   r&   r/  r1  r9   r   r   r,  r,  Q  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:
 r  record_filenamez!
Last frame execution written to zD. To run only this frame while debugging, run torch._dynamo.replay('z').
ru   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"
rn   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_enabledr(  r4  ra   rn   r5  r6  r*   rT   r   KeyErrorr,  )excrq   exportr7  ru   old_msgnew_msgs          r   augment_exc_messager@  \  s   '+C$$J#j/A"5+5b>(%bggi.C.CJ.O&P%QRR##5F(G01D1D0E F++,E3	

 >>gc<8J	
 s%&7_, 3&&7/0C0C0Q0Q/R S0030C0C0P0P/QQSUC /0C0C0Q0Q/R S_ _C
 MQ&bC,<G#x #.0388AB<?C-:,r   c                    d }d }| j                   ,| j                   j                  }| j                   j                  }|| _        ||fS r$   )r8  filenamelineno
compile_id)r   rD  rB  rC  s       r   get_exc_messagerE    sN     HF%%111:://66ALVr   c                 (    t        t                     S r$   )filter_stackr   r9   r   r   get_stack_above_dynamorH    s    ((r   c                    t        | dd       }|y |t               }n
t               }t        j                  ||z         S )Nru   )rl   rH  r   	from_list)r<  frameru   stack_above_dynamos       r   r9  r9    sM     lD1J  45)^!!"4z"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   rB  lineappend)stack
user_stackrK  s      r   rG  rG    sv    J 	!>>!enn,  5>>)JJ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_executionrU  rematchgroup)rS   rU  rX  s      r   remove_resume_prefixrZ    s2    ?HH56oFME{{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>
    r3  )r   rB  rZ  rS   rQ  )rR  	new_stackrK  rS   s       r   collapse_resume_framesr]    sq    ( I $>>!#EJJ/)B-"4"4"<!IbMEJ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	   r9  r  r
   )r<  r   r4  rK  rq   ru   s         r   r   r     s     a(8(8'9@S@S?TTVW  CCC:<CU+J	
 	rww{:.//txJr   c           	     Z    t        | dd       dt        | dd       dt        | dd       dS )	Nra  z	<unknown>z (rb  r`  rc  r   ))rl   )r   s    r   format_frame_inforf    sF    4K0
1 2D-56 7.231	6r   c                6    | t        |       }d| d| S d| S )Nz6torch.compile intentionally decided to skip the frame z! and fall back to eager.
Reason: zVtorch.compile intentionally decided to skip the frame and fall back to eager.
Reason: rf  )r   reason
frame_infos      r   format_skip_frame_messagerk    sB    &t,
DZL Qh 	
h 	
r   c                (    t        |       }d| d| S )NzxSkipping frame because there is a graph break in a for/while loop
torch.compile intentionally decided to skip the frame zd and fall back to eager.
Reason: Skipping frame because there is a graph break in a for/while loop.
rh  )r   frame_summaryrj  s      r   format_loop_skip_frame_messagern  (  s-    "4(J	AAK MW/	r   c           	         t         j                  rt        | |||      S d|j                   d|j                   d|j
                   dt                S )Nr_  r   r`  z 
due to: 
)r   ra   r   ra  rb  rc  r	   )r<  r   r4  rK  s       r   format_error_msgrp  2  sW     ~~'T?EJJDLL>4+;+;*< ==8 8r   )r   rT   r.   rT   )r   type[Exception]r.   ztype[ObservedException])
r   rq  r   r   r*   zOptional[list[Any]]r+   zOptional[dict[str, Any]]r.   r   )r   r   r.   r/   )r   rr   r   types.CodeTyper   rT   r   rT   r   rT   r   	list[str]r.   r   )
r   rT   r   rT   r   rT   r   rs  r.   rT   )r.   zdict[str, Any])r   rT   r.   r?   )r   rT   r   rT   r   rT   r   rs  r   r   r   boolr.   r   )r   F)r<  rr   rq   rT   r=  rt  r.   r/   )r   rr   rD  r   r.   z#tuple[Optional[str], Optional[int]])r.   r   r$   )r<  rr   rK  Optional[DynamoFrameType]r.   r   )rR  r   r.   r   )rS   rT   r.   r?   )NN)
r<  rr   r   rr  r4  r?   rK  ru  r.   rT   )r   rr  r.   rT   )r   zOptional[types.CodeType]ri  rT   r.   rT   )r   rr  rm  rT   r.   rT   )
__future__r   r  loggingrW  rX   typingenumr   r   	functoolsr   pathlibr   r7  r   r	   r
   r   r   r   r   r   torch._guardsrw   torch._utils_internalr   r  r   utilsr   typesr   output_graphr   symbolic_convertr   r   r   	getLoggerr1   r  r   getArtifactLoggerr   RuntimeErrorr"   r7   r<   r>   rE   rG   rI   rK   rM   rO   rQ   rV   r\   ri   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   r   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$UnsupportedMutationAliasingException!exceptions_allowed_to_be_fallbackr   r  r  r$  objectr'  r   r,  r@  rE  rH  r9  rG  rZ  r]  r   rf  rk  rn  rp  r9   r   r   <module>r     sx   "2   	      J J 9 9  1   '0;& g!>>33HnM N< N	3 		!5 	 *  	 		/ 		 		_ 		$ 		, 	
) 
	
( 	
'+ '"
E, 
E*& *8	; 		) 		 		[ 		[ 	
	{ 	/ 8D 8 0	!5 		[ 	
G* G
	2 	
#7 
	Y 		i 		' 	U, U 1 	+ 	
	, 	
	* 	
	- 		. 	
	, 	
	"3 		) 	 ,$"(*&4 
 , !%'+! 	
 % (.< 
!!>>	!!==	!!>>	!!@@	!!FF% !##
# 	#
 # # # #L  	
 	, 1 20 8 !! ! 	!
 ! ! ! !L ,-^		'	(	)
 8<C	C4CCB J &*'+		
 # %	
 	6
 &*'+		8		8
	8 #	8 %		8
 		8r   