
    iLd                       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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& d~dZ' ejP                  e)      Z*ejV                  jY                  e)d      Z- G d de.      Z/ G d de/      Z0 G d de/      Z1 G d de/      Z2 G d de2      Z3 G d de2      Z4 G d de2      Z5 G d  d!e2      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 d. d/e/      Z= G d0 d1e=      Z> G d2 d3e/      Z? G d4 d5e=      Z@ G d6 d7e=      ZA G d8 d9e=      ZB G d: d;e=      ZC G d< d=e@      ZD G d> d?e
      ZE G d@ dAe=      ZF G dB dCe/      ZG G dD dEe=      ZH G dF dGe/      ZI G dH dIe/      ZJ G dJ dKeK      ZL G dL dMeK      ZM G dN dOe/      ZN G dP dQe/      ZO G dR dSeO      ZP G dT dUeO      ZQ G dV dWeQ      ZR G dX dYeQ      ZS G dZ d[eO      ZT G d\ d]eO      ZU G d^ d_eO      ZV G d` daeO      ZW G db dceO      ZXeYePeZeQe[eRe\eTe]eSe^eUe.eVe_eWe`eXi	ZadddZbddde	 	 	 	 	 	 	 	 	 ddfZcddgZdej                  j                  j                  ej                  j                  j                  ej                  j                  j                  ej                  j                  j                  ej                  j                  j                  fZl	 	 	 	 	 	 	 	 ddhZm en       Zoeoddi	 	 	 	 	 	 	 ddjZp	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddkZq	 	 	 	 	 	 	 	 	 	 ddlZr ed	m      ddn       ZsddoZteodpdq	 	 	 	 	 	 	 	 	 	 	 	 	 ddrZu G ds dt      ZvddduZw	 	 	 	 	 	 ddvZxddwZy	 d	 	 	 	 	 ddxZzddyZ{ddzZ|dd{Z}	 	 d	 	 	 	 	 	 	 	 	 dd|Z~	 	 d	 	 	 	 	 	 	 	 	 dd}Zy)    )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   :   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__G   s    $)&)IM(r    r+   r   r,   r   returnNone__name__
__module____qualname__r'   __classcell__r-   s   @r   r#   r#   F   s    N Nr    r#   c                      e Zd Zy)InternalTorchDynamoErrorNr2   r3   r4    r    r   r8   r8   L       r    r8   c                      e Zd Zy)ResumePrologueTracingErrorNr9   r:   r    r   r=   r=   P   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)rA   c               ,    || _         t        |   |  y r%   )rA   r&   r'   )r*   rA   r+   r-   s      r   r'   zRestartAnalysis.__init__W   s    ,$r    )r+   r   rA   r@   r/   r0   r2   r3   r4   __annotations__r'   r5   r6   s   @r   r?   r?   T   s    !!CG    r    r?   c                      e Zd Zy)SpeculationRestartAnalysisNr9   r:   r    r   rF   rF   \   r;   r    rF   c                      e Zd Zy)UnspecializeRestartAnalysisNr9   r:   r    r   rH   rH   `   r;   r    rH   c                      e Zd Zy) CompileCollectiveRestartAnalysisNr9   r:   r    r   rJ   rJ   d   r;   r    rJ   c                      e Zd Zy)TensorifyScalarRestartAnalysisNr9   r:   r    r   rL   rL   h   r;   r    rL   c                      e Zd Zy)	SkipFrameNr9   r:   r    r   rN   rN   l   r;   r    rN   c                      e Zd Zy)TorchRuntimeErrorNr9   r:   r    r   rP   rP   p   r;   r    rP   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__u   s    x'de	
r    )rU   strr/   r0   r1   r6   s   @r   rR   rR   t   s    
 
r    rR   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/   r0   r1   r6   s   @r   rX   rX   {   s    
 
r    rX   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/   r0   )r/   ztyping.Self)r2   r3   r4   r'   rh   r5   r6   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 )Nr2   ?zbackend=z	 raised:
z: )r`   )getattrbackend_nameinner_exceptiontyper2   r&   r'   )r*   
backend_fnrp   r`   msgr-   s        r   r'   zBackendCompilerFailed.__init__   s_     $J
C@.**-Z_8M8V8V7WWYZiYjk1CDr    )rr   r   rp   	Exceptionr`   ri   r/   r0   r1   r6   s   @r   rk   rk      s9    	E	E #	E 6		E
 
	E 	Er    rk   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_stackrs   categoryadd_to_statsr   )r*   rs   r   r-   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   r|   r   rs   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*   r|   s     r   r}   zUnsupported.add_to_stats   s"     488$)$r    )rs   rV   r   r@   r/   r0   r\   )unimplemented)r|   rV   r/   r0   )r2   r3   r4   r'   r   r}   r5   r6   s   @r   rv   rv      s    ?C 22* *r    rv   c                      e Zd Zy)$UnknownPropertiesDuringBackwardTraceNr9   r:   r    r   r   r      r;   r    r   c                      e Zd Zy)RecompileErrorNr9   r:   r    r   r   r      r;   r    r   c                        e Zd Zd fdZ xZS )ArgsMismatchErrorc                $    t         |   |       y r%   rT   r*   rs   r-   s     r   r'   zArgsMismatchError.__init__       r    rs   rV   r/   r0   r1   r6   s   @r   r   r           r    r   c                        e Zd Zd fdZ xZS )AttributeMutationErrorc                $    t         |   |       y r%   rT   r   s     r   r'   zAttributeMutationError.__init__   r   r    r   r1   r6   s   @r   r   r      r   r    r   c                        e Zd Zd fdZ xZS )InfiniteGeneratorErrorc                $    t         |   |       y r%   rT   r   s     r   r'   zInfiniteGeneratorError.__init__   r   r    r   r1   r6   s   @r   r   r      s     r    r   c                        e Zd Zd fdZ xZS )SideEffectsErrorc                $    t         |   |       y r%   rT   r   s     r   r'   zSideEffectsError.__init__   r   r    r   r1   r6   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%   rT   r   s     r   r'   z CondOpArgsMismatchError.__init__   r   r    r   )r2   r3   r4   __doc__r'   r5   r6   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)r2   r3   r4   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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. 
)
isinstancerV   endswithr   r&   r'   
error_typemessage)r*   r   rs   r   r-   s       r   r'   zUserError.__init__   sd      i---||C s
t))44C$r    r%   )r   r   rs   rV   r   r@   r/   r0   r1   r6   s   @r   r   r      s0    NR'.1>K	 r    r   c                      e Zd Zy)SkipCodeRecursiveExceptionNr9   r:   r    r   r   r     r;   r    r   c                      e Zd Zy)RecompileLimitExceededNr9   r:   r    r   r   r     r;   r    r   c                      e Zd Zy)UnsafeScriptObjectErrorNr9   r:   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'   rs   rx   ry   rz   r   r{   )r*   rs   r{   r-   s      r   r'   z%UncapturedHigherOrderOpError.__init__  sJ     %  	 --;;= 	r    r%   )rs   rV   r{   Optional[StackSummary]r/   r0   r1   r6   s   @r   r   r     s    
 
r    r   c                      e Zd Zy)IncorrectUsageNr9   r:   r    r   r   r     r;   r    r   c                      e Zd Zy)FailOnRecompileLimitHitNr9   r:   r    r   r   r      r;   r    r   c                      e Zd Zy)PackageErrorNr9   r:   r    r   r   r   $  r;   r    r   c                      e Zd Zy)ObservedExceptionNr9   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   r)   s      r   r'   z"ObservedUserStopIteration.__init__3  s.    :;t9q=aDJDJr    r.   rC   r6   s   @r   r   r   -  s     r    r   c                      e Zd Zy)ObservedLookupErrorNr9   r:   r    r   r   r   ;  r   r    r   c                      e Zd Zy)ObservedIndexErrorNr9   r:   r    r   r   r   @  r   r    r   c                      e Zd Zy)ObservedKeyErrorNr9   r:   r    r   r   r   E  r   r    r   c                      e Zd Zy)ObservedGeneratorExitNr9   r:   r    r   r   r   J  r;   r    r   c                      e Zd Zy)ObservedAttributeErrorNr9   r:   r    r   r   r   N  r   r    r   c                      e Zd Zy)ObservedRuntimeErrorNr9   r:   r    r   r   r   S  r   r    r   c                      e Zd Zy)ObservedNotImplementedErrorNr9   r:   r    r   r   r   X  r;   r    r   c                      e Zd Zy)ObservedTypeErrorNr9   r:   r    r   r   r   \  r   r    r   c                    | t         vr3t        | dt        |             }t        d| dt        fi       t         | <   t         |    S )Nr2   ObservedError)observed_exception_maprn   rV   rq   r   )exc_typerU   s     r   get_dynamo_observed_exceptionr   n  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        |       )Nr   )BuiltinVariable)	variablesr   call_functionexn_vt_stackset_current_exceptionr   )r   txr+   r,   r   exception_vts         r   raise_observed_exceptionr   w  sH     + #8,::2tzr6<UWXLOO)),7
'
11r    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        j                  |       t        ||        y )Nartifactc                     dddS Ndynamo_graph_break_reasonstring)rU   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_verboserx   _loggingtrace_structuredgraph_breaks_logdebuglogwarningr   )ecoders   r   s      @r   unimplemented_with_warningr    s]     /q$7O	NN##
 + $  41KK#"r    )r   r   c                   | t         j                  j                  dd      k7  sJ |t        urt	        | |      |t	        | |      )NBREAKFr   )osenvironget_NOTHINGrv   )rs   r   r   s      r   r   r     sE     "**..%0000x#3A
cY
//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   rx   r   r   r   r   unimplemented_v2)r  r  gb_typecontextexplanationhintsr   s         @r   unimplemented_v2_with_warningr    sZ     /q$7O	NN##
 + $  41Wg{EASW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)rZ   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: )rZ   r  r  join)r  r  r  r  	hints_strrs   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 d}~]d}~ww 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: %sGb_type)r   __file__resolveparentr   rV   openjsonloadrt   r  erroritems)	
script_dirregistry_pathfregistryr  mappingkventrys	            r   _load_gb_type_to_gb_id_mapr6    s    	(^++-44
'J!<
 -  	$Ayy|H	$ G  *1 	*E()GE)$%	** N	$ 	$ 		91=s0   AB 
B B BB 	C
(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)r6  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    Fr  c                   t        | |||      }t        |       }|r|d| z  }|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.
    z9
 For more details about this graph break, please visit: )r!  r<  r  r  r  rv   )r  r  r  r  r   r  rs   documentation_links           r   r  r  6  se    & %Wg{E
JC4W=KL^K_``Cx#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__Z  s	    
r    c                ,    t        | j                        S r%   )rV   r   r   s    r   __str__zKeyErrorMsg.__str__]  s    4::r    c                "    | j                         S r%   )rC  r   s    r   __repr__zKeyErrorMsg.__repr__`  s    ||~r    N)r   r   r/   r0   )r/   rV   )r2   r3   r4   r'   rC  rE  r:   r    r   r@  r@  Y  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').
r{   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"
rp   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hasattrrH  rc   rp   rI  rJ  r+   rV   r   KeyErrorr@  )excrs   exportrK  r{   old_msgnew_msgs          r   augment_exc_messagerU  d  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%   )rL  filenamelineno
compile_id)r  rY  rW  rX  s       r   get_exc_messagerZ    sN     HF%%111:://66ALVr    c                 (    t        t                     S r%   )filter_stackr   r:   r    r   get_stack_above_dynamor]    s    ((r    c                    t        | dd       }|y |t               }n
t               }t        j                  ||z         S )Nr{   )rn   r]  r   	from_list)rQ  framer{   stack_above_dynamos       r   rM  rM    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   rW  lineappend)stack
user_stackr`  s      r   r\  r\    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_executionrj  rematchgroup)rU   rj  rm  s      r   remove_resume_prefixro    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>
    rG  )r   rW  ro  rU   rf  )rg  	new_stackr`  rU   s       r   collapse_resume_framesrr    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	   rM  r  r
   )rQ  r  rH  r`  rs   r{   s         r   r   r     s     a(8(8'9@S@S?TTVW  CCC:<CU+J	
 	rww{:.//txJr    c           	         t         j                  rt        | |||      S d|j                   d|j                   d|j
                   dt                S )Nrt  r   ru  z 
due to: 
)r   rc   r   rv  rw  rx  r	   )rQ  r  rH  r`  s       r   format_error_msgrz    sW     ~~'T?EJJDLL>4+;+;*< ==8 8r    )r   rV   r/   rV   )r   type[Exception]r/   ztype[ObservedException])
r   r{  r   r   r+   zOptional[list[Any]]r,   zOptional[dict[str, Any]]r/   r   )r   r   r/   r0   )r  rt   r  types.CodeTypers   rV   r/   r   )rs   rV   r   r   r   r@   r/   r   )r  rt   r  r|  r  rV   r  rV   r  rV   r  	list[str]r/   r   )
r  rV   r  rV   r  rV   r  r}  r/   rV   )r/   zdict[str, Any])r  rV   r/   r@   )r  rV   r  rV   r  rV   r  r}  r   r   r  boolr/   r   )r   F)rQ  rt   rs   rV   rR  r~  r/   r0   )r  rt   rY  r   r/   z#tuple[Optional[str], Optional[int]])r/   r   r%   )rQ  rt   r`  Optional[DynamoFrameType]r/   r   )rg  r   r/   r   )rU   rV   r/   r@   )NN)
rQ  rt   r  r|  rH  r@   r`  r  r/   rV   )
__future__r   r*  loggingr  rl  rZ   typingenumr   r   	functoolsr   pathlibr   rK  r   r	   r
   r   r   r   r   r   torch._guardsrx   torch._utils_internalr   r$  r   utilsr   typesr   output_graphr   symbolic_convertr   r   r   	getLoggerr2   r  r   getArtifactLoggerr   RuntimeErrorr#   r8   r=   r?   rF   rH   rJ   rL   rN   rP   rR   rX   r^   rk   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   StopIterationLookupError
IndexErrorGeneratorExitrP  AttributeErrorNotImplementedError	TypeErrorr   r   r   r   _subclassesfake_tensorDataDependentOutputExceptionDynamicOutputShapeExceptionUnsupportedOperatorExceptionUnsupportedFakeTensorException$UnsupportedMutationAliasingException!exceptions_allowed_to_be_fallbackr  objectr  r   r  r!  r6  r<  r  r@  rU  rZ  r]  rM  r\  ro  rr  r   rz  r:   r    r   <module>r     s   "2   	 	      J J 9 9  1   '0;& g!>>33HnM N< N	3 		!5 	 *  	 		/ 		 		_ 		$ 		, 	
) 
	
( 	
'+ '"
E, 
E*& *(	; 		) 	 
[ 
[ { 
/ 8D 8 0	!5 		[ 		2 	
#7 
	Y 		i 		' 		, 	
 1 	+ 	
	, 	
	* 	
	- 		. 	
	, 	
	"3 		) 	 ,$"(*&4 
 , !%'+22!2 	2
 %2 2 .< 
!!>>	!!==	!!>>	!!@@	!!FF% !##&#-0##0 8 "*d0	006C00YY
Y Y 	Y
 Y Y Y8  	
 	, 1 2>   	   F ,-^		'	(	)
 8<C	C4CCB J &*'+		
 # %	
 	< &*'+		8		8
	8 #	8 %		8
 		8r    