o
    ߗiYg                     @   sl  d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ e	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	ji
Ze	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	ji
Ze	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	ji
Ze	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	je	ji
Zdd	 Zd
ed fddZ ej!ddG dd de
Z"ej!ddG dd de
Z#ej!ddG dd de
Z$ej!ddG dd de
Z%ej!ddG dd de
Z&ej!ddG dd deZ'ej!ddG dd de'Z(ej!ddG dd deZ)ej!ddG d d! d!e
Z*ej!ddG d"d# d#eZ+ej!ddG d$d% d%e)Z,ej!ddG d&d' d'e)Z-ej!ddG d(d) d)e
Z.G d*d+ d+ej/Z0ej!ddG d,d- d-eZ1ej!ddG d.d/ d/eZ2ej!ddG d0d1 d1eZ3ej!ddG d2d3 d3eZ4ej!ddG d4d5 d5eZ5G d6d7 d7eZ6ej!ddG d8d9 d9eZ7ej!ddG d:d; d;eZ8ej!ddG d<d= d=e8Z9ej!ddG d>d? d?e8Z:ej!ddG d@dA dAeZ;ej!ddG dBdC dCeZ<ej!ddG dDdE dEeZ=ej!ddG dFdG dGeZ>ej!ddG dHdI dIe>Z?ej!ddG dJdK dKe?Z@ej!ddG dLdM dMe>ZAej!ddG dNdO dOe
ZBej!ddG dPdQ dQe
ZCej!ddG dRdS dSe
ZDej!ddG dTdU dUeZEej!ddG dVdW dWeZFej!ddG dXdY dYeZGej!ddG dZd[ d[eZHej!ddG d\d] d]e
ZIej!ddG d^d_ d_e
ZJd`dad
e
fdbdcZKd
e
fdddeZLd
e
fdfdgZMd
e
fdhdiZNd
e
fdjdkZOdS )l    N)AnyOptionalUnion)ChainedSourceGuardSourceSource   )utils)create_call_functioncreate_instruction)	enum_reprc                 C   s>   t | trdS z|  tjkrW dS W dS  ty   Y dS w NTF)
isinstanceConstantSourceguard_sourcer   CONSTANTNotImplementedErrorsource r   R/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/torch/_dynamo/source.pyis_constant_sourceM   s   
r   r   )GetItemSourceODictGetItemSourcec                 C   sh   | j | t| jtr| j| d S |r)t| tsJ |||   d S ||| j d S N)	basereconstructr   indexr   r   append_outputcreate_load_constunpack_slice)r   codegenindex_is_slicer   r   r   reconstruct_getitemY   s   r#   T)frozenc                   @   sF   e Zd ZU eed< dZeed< dZeed< dd Zdd Z	d	d
 Z
dS )LocalSource
local_nameFis_inputis_derefed_cell_contentsc                 C   s,   | j r|| j d S ||| j d S r   )r(   
load_derefr&   r   create_loadselfr!   r   r   r   r   s   s   zLocalSource.reconstructc                 C      t jS r   )r   LOCALr,   r   r   r   r   y      zLocalSource.guard_sourcec                 C      dt | j dS )NzL[])reprr&   r/   r   r   r   name|      zLocalSource.nameN)__name__
__module____qualname__str__annotations__r'   boolr(   r   r   r4   r   r   r   r   r%   g   s   
 r%   c                   @   .   e Zd ZU eed< dd Zdd Zdd ZdS )	SyntheticLocalSourcer&   c                 C      | || j d S r   )r   r*   r&   r+   r   r   r   r         z SyntheticLocalSource.reconstructc                 C   r-   r   )r   SYNTHETIC_LOCALr/   r   r   r   r      r0   z!SyntheticLocalSource.guard_sourcec                 C   s   d| j dS )NzSYNTHETIC_LOCAL[r2   )r&   r/   r   r   r   r4         zSyntheticLocalSource.nameNr6   r7   r8   r9   r:   r   r   r4   r   r   r   r   r=      
   
 r=   c                   @   r<   )	RandomValueSourcerandom_call_indexc                 C   r-   r   )r   RANDOM_VALUEr/   r   r   r   r      r0   zRandomValueSource.guard_sourcec                 C   s:   | ||jjj | || j | td d S NBINARY_SUBSCR)r   r*   txoutputrandom_values_varr   rE   r   r+   r   r   r   r      s   zRandomValueSource.reconstructc                 C   s   d| j  S )Nrandom_value_)rE   r/   r   r   r   r4      s   zRandomValueSource.nameN)r6   r7   r8   intr:   r   r   r4   r   r   r   r   rD      s
   
 rD   c                   @   r<   )	GlobalSourceglobal_namec                 C      | |j| jdd d S NTaddr   create_load_globalrO   r+   r   r   r   r         zGlobalSource.reconstructc                 C   r-   r   r   GLOBALr/   r   r   r   r      r0   zGlobalSource.guard_sourcec                 C   r1   )NG[r2   r3   rO   r/   r   r   r   r4      r5   zGlobalSource.nameNrB   r   r   r   r   rN      rC   rN   c                   @   r<   )	GlobalWeakRefSourcerO   c                    (      fdd  tdd d S )Nc                      s      jjddS rQ   rT   r   r!   r,   r   r   <lambda>   s    z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>r   Fadd_push_nullextend_outputr
   r+   r   r]   r   r      s   zGlobalWeakRefSource.reconstructc                 C   r-   r   rW   r/   r   r   r   r      r0   z GlobalWeakRefSource.guard_sourcec                 C   r1   )NrY   z]()rZ   r/   r   r   r   r4      r5   zGlobalWeakRefSource.nameNrB   r   r   r   r   r[      s
   
 r[   c                   @   $   e Zd Zdd Zdd Zdd ZdS )WeakRefCallSourcec                    r\   )Nc                      s   j  S r   r   r   r   r]   r   r   r^          z/WeakRefCallSource.reconstruct.<locals>.<lambda>r   Fr_   r+   r   r]   r   r      s   zWeakRefCallSource.reconstructc                 C   
   | j  S r   r   r   r/   r   r   r   r         
zWeakRefCallSource.guard_sourcec                 C      | j   dS )Nz()r   r4   r/   r   r   r   r4         zWeakRefCallSource.nameNr6   r7   r8   r   r   r4   r   r   r   r   rc      s    rc   c                   @      e Zd ZdS )CallFunctionNoArgsSourceNr6   r7   r8   r   r   r   r   rn          rn   c                   @   6   e Zd ZU eed< dd Zdd Zdd Zdd	 Zd
S )
AttrSourcememberc                 C   sb   | j sJ dd| jv r/| jd}t| dt| j d|d d  t| d|d  d S d S )Nz9Can't construct an AttrSource without a valid base source.r   rs   )r   rs   splitobject__setattr__rr   join)r,   member_partsr   r   r   __post_init__   s   
zAttrSource.__post_init__c                 C   "   | j | ||| j d S r   r   r   ra   create_load_attrsrs   r+   r   r   r   r         zAttrSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r      rh   zAttrSource.guard_sourcec                 C   s:   | j  sd| j  d| j dS | j  d| j  S )Nzgetattr(, )rt   )rs   isidentifierr   r4   r/   r   r   r   r4      s   
zAttrSource.nameN)	r6   r7   r8   r9   r:   r{   r   r   r4   r   r   r   r   rr      s   
 	rr   c                   @   s"   e Zd ZU dZeed< dd ZdS )LocalCellSourcez
    Conceptually, this class is `LocalSource` for cell objects implicitly
    generated by Python (e.g., captured variables).
    r&   c                 C   r>   r   )r   create_load_closurer&   r+   r   r   r   r      s   zLocalCellSource.reconstructN)r6   r7   r8   __doc__r9   r:   r   r   r   r   r   r      s   
 r   c                   @   s2   e Zd ZU dZeed< dd Zdd Zdd Zd	S )

GradSourcegradrs   c                 C   r|   r   r}   r+   r   r   r   r     r   zGradSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r   
  rh   zGradSource.guard_sourcec                 C   s   | j   d| j S )Nrt   )r   r4   rs   r/   r   r   r   r4     r?   zGradSource.nameN)	r6   r7   r8   rs   r9   r:   r   r   r4   r   r   r   r   r     s
   
 r   c                   @      e Zd Zdd ZdS )ParamBufferSourcec                 C      t | j  S r   #_GUARD_SOURCE_SPECIALIZED_NN_MODULEr   r   r/   r   r   r   r     rA   zParamBufferSource.guard_sourceNr6   r7   r8   r   r   r   r   r   r         r   c                   @   rm   )UnspecializedParamBufferSourceNro   r   r   r   r   r     rp   r   c                   @   s>   e Zd ZU dZee ed< dd Zdd Zdd Z	d	d
 Z
dS )EphemeralSourceNdescc                 C   r-   r   )r   	EPHEMERALr/   r   r   r   r   *  r0   zEphemeralSource.guard_sourcec                 C   s&   d| j d urd| j   dS d dS )Nz
<ephemeralz:  >)r   r/   r   r   r   r4   -  s   &zEphemeralSource.namec                 C      t r   r   r,   fnr   r   r   
make_guard0     zEphemeralSource.make_guardc                 C      dS NTr   r/   r   r   r   is_ephemeral3  r   zEphemeralSource.is_ephemeral)r6   r7   r8   r   r   r9   r:   r   r4   r   r   r   r   r   r   r   &  s   
 r   c                   @   s    e Zd ZdZdZdZdd ZdS )TensorPropertyr   r      c                 C   s.   | t ju rdS | t ju rdS | t ju rdS d S )Nsizestridestorage_offset)r   SIZESTRIDESTORAGE_OFFSETr/   r   r   r   method_name<  s   


zTensorProperty.method_nameN)r6   r7   r8   r   r   r   r   r   r   r   r   r   7  s
    r   c                   @   sF   e Zd ZU eed< dZee ed< dd Zdd Z	dd	 Z
d
d ZdS )TensorPropertySourcepropNidxc                 C   s>   | j d usJ | jtju r| jd u sJ d S | jd usJ d S r   )r   r   r   r   r   r/   r   r   r   r{   J  s   z"TensorPropertySource.__post_init__c                    s^      fdd j  jd ur  j  tjd ur(dndd d S )Nc                      s     tjdj  S )Ncall_)load_import_fromr	   r6   r   r   r   r]   r   r   r^   S  s    z2TensorPropertySource.reconstruct.<locals>.<lambda>r   r   F)r`   r   r   r   r   r   ra   r
   r+   r   r]   r   r   Q  s   
z TensorPropertySource.reconstructc                 C   rf   r   rg   r/   r   r   r   r   _  rh   z!TensorPropertySource.guard_sourcec                 C   s   | j tju r| j  d| j dS | j tju r$| j  d| j dS | j tju r9| jd u s1J | j  dS td| j  )Nz.size()[r2   z
.stride()[z.storage_offset()z
unhandled )	r   r   r   r   r4   r   r   r   AssertionErrorr/   r   r   r   r4   b  s   zTensorPropertySource.name)r6   r7   r8   r   r:   r   r   rM   r{   r   r   r4   r   r   r   r   r   E  s   
 r   c                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
NegateSourcec                 C      | j d usJ d S r   r   r/   r   r   r   r{   p  r5   zNegateSource.__post_init__c                 C   r   r   r   r+   r   r   r   r   s  r   zNegateSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r   v  rh   zNegateSource.guard_sourcec                 C   ri   )Nz
.__neg__()rj   r/   r   r   r   r4   y  s   zNegateSource.nameNr6   r7   r8   r{   r   r   r4   r   r   r   r   r   n  
    r   c                   @   r   )
ConvertIntSourcec                 C   r   r   r   r/   r   r   r   r{     r5   zConvertIntSource.__post_init__c                 C      | j | d S r   rd   r+   r   r   r   r     rk   zConvertIntSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r     rh   zConvertIntSource.guard_sourcec                 C      d| j   dS )Nz!cast_symbool_to_symint_guardless(r   rj   r/   r   r   r   r4     r5   zConvertIntSource.nameNr   r   r   r   r   r   ~  r   r   c                   @   r   )
FlattenScriptObjectSourcec                 C   r   r   r   r/   r   r   r   r{     r5   z'FlattenScriptObjectSource.__post_init__c                 C   r   r   rd   r+   r   r   r   r     rk   z%FlattenScriptObjectSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r     rh   z&FlattenScriptObjectSource.guard_sourcec                 C   ri   )Nz.__obj_flatten__()rj   r/   r   r   r   r4     rk   zFlattenScriptObjectSource.nameNr   r   r   r   r   r     r   r   c                   @   r   )
ScriptObjectQualifiedNameSourcec                 C   r   r   r   r/   r   r   r   r{     r5   z-ScriptObjectQualifiedNameSource.__post_init__c                 C   r   r   rd   r+   r   r   r   r     rk   z+ScriptObjectQualifiedNameSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r     rh   z,ScriptObjectQualifiedNameSource.guard_sourcec                 C   ri   )Nz._type().qualified_name()rj   r/   r   r   r   r4     rk   z$ScriptObjectQualifiedNameSource.nameNr   r   r   r   r   r     r   r   c                   @   rb   )AttrProxySourcec                 C   r   r   rd   r+   r   r   r   r     rk   zAttrProxySource.reconstructc                 C   rf   r   rg   r/   r   r   r   r     rh   zAttrProxySource.guard_sourcec                 C   ri   )Nz.get_base()rj   r/   r   r   r   r4     rk   zAttrProxySource.nameNrl   r   r   r   r   r     s    r   c                   @   sz   e Zd ZU eeef ed< dZeed< e	j
ddddZ
eed< e	j
ddddZeed< dd Zd	d
 Zdd Zdd ZdS )DefaultsSourceidx_keyFis_kw)initr3   comparefield_namec              
   C   s   | j sJ d| jr0t| jtsJ t| dd t| d| j   d| j d| j d d S t| jt	s8J t| dd t| d| j   d| j d	| j d
 d S )Nz]Base must be a valid source in order to properly track and guard this Defaults to its origin.r   __kwdefaults__r   rt   z['z']__defaults__[r2   )
r   r   r   r   r9   rw   rx   r4   r   rM   r/   r   r   r   r{     s   ""zDefaultsSource.__post_init__c                 C   sB   | j | ||| j ||| j |td d S rG   )	r   r   ra   r~   r   r   r   r   r   r+   r   r   r   r     s   zDefaultsSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r     rh   zDefaultsSource.guard_sourcec                 C      | j S r   )r   r/   r   r   r   r4     r0   zDefaultsSource.nameN)r6   r7   r8   r   rM   r9   r:   r   r;   dataclassesr   r   r{   r   r   r4   r   r   r   r   r     s   
 r   c                       sR   e Zd ZU eed< dZeed<  fddZdd Zdd	 Z	d
d Z
dd Z  ZS )r   r   Fr"   c                    sD   | j d usJ t| jtr t d| j  t dd d S d S )Nr   r"   T)r   r   r   slicesuperrx   
__reduce__r/   	__class__r   r   r{     s
   zGetItemSource.__post_init__c                 C   s"   t | || jd |td d S )Nr"   rH   )r#   r"   r   r   r+   r   r   r   r     s   zGetItemSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r     rh   zGetItemSource.guard_sourcec                 C   s   | j sJ | j\}}|| S r   )r"   r   )r,   slice_class
slice_argsr   r   r   r      s   

zGetItemSource.unpack_slicec                 C   s   t | jtrt | jtstd| j  d| j  dS | jr.| j  d|  dS t | jt	j
rH| j  dt| j|    dS | j  d| jdS )NzBGetItemSource index must be a constant, enum or ConstDictKeySourcer   r2   )r   r   r   ConstDictKeySource
ValueErrorr   r4   r"   r    enumEnumr   r   is_localr/   r   r   r   r4     s   &zGetItemSource.name)r6   r7   r8   r   r:   r"   r;   r{   r   r   r    r4   __classcell__r   r   r   r   r     s   
 r   c                   @   rb   )r   c                 C   r   r   r   r/   r   r   r   is_dict_key	  r   zConstDictKeySource.is_dict_keyc                    D      fdd | j    | j  tdd d S )Nc                           tjdS )Ndict_keys_getitemr   r	   r6   r   r!   r   r   r^         z0ConstDictKeySource.reconstruct.<locals>.<lambda>r   Fr`   r   r   r   r   r   ra   r
   r+   r   r   r   r        
zConstDictKeySource.reconstructc                 C      d| j   d| jdS )Nzlist(z	.keys())[r2   r   r4   r   r/   r   r   r   r4     s   zConstDictKeySource.nameN)r6   r7   r8   r   r   r4   r   r   r   r   r     s    r   c                   @      e Zd Zdd Zdd ZdS )TupleIteratorGetItemSourcec                    r   )Nc                      r   )Ntuple_iterator_getitemr   r   r   r   r   r^     r   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>r   Fr   r+   r   r   r   r     r   z&TupleIteratorGetItemSource.reconstructc                 C   r   )Nz___tuple_iterator_getitem(r   r   r   r/   r   r   r   r4   #  rV   zTupleIteratorGetItemSource.nameN)r6   r7   r8   r   r4   r   r   r   r   r     s    r   c                   @   r   )

TypeSourcec                 C   r   r   r   r/   r   r   r   r{   )  r5   zTypeSource.__post_init__c                    2      fdd | j   tdd d S )Nc                           ddS )Nbuiltinstyper   r   r   r   r   r^   -  re   z(TypeSource.reconstruct.<locals>.<lambda>r   Fr`   r   r   ra   r
   r+   r   r   r   r   ,     zTypeSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r   1  rh   zTypeSource.guard_sourcec                 C   r   )Nztype(r   rj   r/   r   r   r   r4   4  r5   zTypeSource.nameNr   r   r   r   r   r   '  s
    r   c                   @   rq   )r   r   c                 C   r   r   r   r/   r   r   r   r{   <  r5   z ODictGetItemSource.__post_init__c                    s4      fdd t|  dd  tdd d S )Nc                      s      tjjS r   )r   create_load_const_uncheckedcollectionsOrderedDict__getitem__r   r   r   r   r^   A  s    z0ODictGetItemSource.reconstruct.<locals>.<lambda>Fr   r   )r`   r#   ra   r
   r+   r   r   r   r   ?  s
   
zODictGetItemSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r   H  rh   zODictGetItemSource.guard_sourcec                 C   s   t | jtrd| jj d| jj }d| j  d| dS t | jtr3d| j  d| j  dS d| j  d| jdS )Nz__load_module("z").z___odict_getitem(r   r   )r   r   r   r7   r8   r   r4   r   )r,   repr   r   r   r4   K  s   zODictGetItemSource.nameN)	r6   r7   r8   r   r:   r{   r   r   r4   r   r   r   r   r   8  s   
 	r   c                   @   rb   )OptimizerSourcec                 C   r   r   rd   r+   r   r   r   r   W  rk   zOptimizerSource.reconstructc                 C   rf   r   rg   r/   r   r   r   r   Z  rh   zOptimizerSource.guard_sourcec                 C   rf   r   rj   r/   r   r   r   r4   ]  rh   zOptimizerSource.nameNrl   r   r   r   r   r   U      r   c                   @   rb   )NNModuleSourcec                 C   r   r   rd   r+   r   r   r   r   c  rk   zNNModuleSource.reconstructc                 C   r   r   r   r/   r   r   r   r   f  rA   zNNModuleSource.guard_sourcec                 C   rf   r   rj   r/   r   r   r   r4   i  rh   zNNModuleSource.nameNrl   r   r   r   r   r   a  r   r   c                   @   r   )UnspecializedNNModuleSourcec                 C   r   r   )%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULEr   r   r/   r   r   r   r   o  rA   z(UnspecializedNNModuleSource.guard_sourceNr   r   r   r   r   r   m  r   r   c                   @   r   )"UnspecializedBuiltinNNModuleSourcec                 C   r   r   )-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULEr   r   r/   r   r   r   r   u  rA   z/UnspecializedBuiltinNNModuleSource.guard_sourceNr   r   r   r   r   r   s  r   r   c                   @   r   )FSDPNNModuleSourcec                 C   r   r   )_GUARD_SOURCE_FSDP_MODULEr   r   r/   r   r   r   r   {  rA   zFSDPNNModuleSource.guard_sourceNr   r   r   r   r   r   y  r   r   c                   @   r   )GlobalStateSourcec                 C   r   Nr   r   r/   r   r   r   r4     r   zGlobalStateSource.namec                 C   r-   r   rW   r/   r   r   r   r     r0   zGlobalStateSource.guard_sourceNr6   r7   r8   r4   r   r   r   r   r   r         r   c                   @   rq   )TorchFunctionModeStackSourceindc                 C   s   d|    dS )Nz$___get_torch_function_mode_stack_at(r   )
_get_indexr/   r   r   r   r4     rk   z!TorchFunctionModeStackSource.namec                 C   s   ddl m} || jS )Nr   )TorchFunctionModeStackVariable)variables.torch_functionr   get_mode_indexr   )r,   r   r   r   r   r     s   z'TorchFunctionModeStackSource._get_indexc                    s<      fdd   |  g  tdd d S )Nc                      r   )N get_torch_function_mode_stack_atr   r   r   r   r   r^     s    z:TorchFunctionModeStackSource.reconstruct.<locals>.<lambda>r   F)r`   ra   r   r   r
   r+   r   r   r   r     s
   
z(TorchFunctionModeStackSource.reconstructc                 C   r-   r   rW   r/   r   r   r   r     r0   z)TorchFunctionModeStackSource.guard_sourceN)	r6   r7   r8   rM   r:   r4   r   r   r   r   r   r   r   r     s   
 	r   c                   @   rq   )r   source_namec                 C   rP   )NFrR   )r   rU   r  r+   r   r   r   r     rV   zConstantSource.reconstructc                 C   r-   r   )r   r   r/   r   r   r   r     r0   zConstantSource.guard_sourcec                 C   r   r   )r  r/   r   r   r   r4     r0   zConstantSource.namec                 C   r   r   r   r   r   r   r   r     r   zConstantSource.make_guardN)	r6   r7   r8   r9   r:   r   r   r4   r   r   r   r   r   r     s   
 r   c                   @   s*   e Zd ZdefddZdd Zdd ZdS )	NumpyTensorSourcereturnc                 C   r   )Nz___from_numpy(r   rj   r/   r   r   r   r4     r5   zNumpyTensorSource.namec                 C   rf   r   rg   r/   r   r   r   r     rh   zNumpyTensorSource.guard_sourcec                    r   )Nc                      r   )Ntorch	as_tensorr   r   r   r   r   r^     re   z/NumpyTensorSource.reconstruct.<locals>.<lambda>r   Fr   r+   r   r   r   r     r   zNumpyTensorSource.reconstructN)r6   r7   r8   r9   r4   r   r   r   r   r   r   r    s    r  c                   @   "   e Zd ZdefddZdd ZdS )SubclassAttrListSourcer  c                 C   ri   )Nz.__tensor_flatten__()[0]rj   r/   r   r   r   r4     rk   zSubclassAttrListSource.namec                 C   rf   r   rg   r/   r   r   r   r     rh   z#SubclassAttrListSource.guard_sourceNr6   r7   r8   r9   r4   r   r   r   r   r   r        r  c                   @   r  )FloatTensorSourcer  c                 C   r   )Nz___as_tensor(r   rj   r/   r   r   r   r4     r5   zFloatTensorSource.namec                 C   rf   r   rg   r/   r   r   r   r     rh   zFloatTensorSource.guard_sourceNr	  r   r   r   r   r    r
  r  c                   @   r  )CallMethodItemSourcer  c                 C   ri   )Nz.item()rj   r/   r   r   r   r4     rk   zCallMethodItemSource.namec                 C   rf   r   rg   r/   r   r   r   r     rh   z!CallMethodItemSource.guard_sourceNr	  r   r   r   r   r    r
  r  c                   @   r   )ShapeEnvSourcec                 C   r   r   r   r/   r   r   r   r4     r   zShapeEnvSource.namec                 C   r-   r   )r   	SHAPE_ENVr/   r   r   r   r     r0   zShapeEnvSource.guard_sourceNr   r   r   r   r   r    r   r  c                   @   r   )BackwardStateSourcec                 C   r   r   r   r/   r   r   r   r4     r   zBackwardStateSource.namec                 C   r-   r   )r   BACKWARD_STATEr/   r   r   r   r     r0   z BackwardStateSource.guard_sourceNr   r   r   r   r   r    r   r  Fonly_allow_inputc                C   s8   t | trt| j|dS t | tsdS |r| jsdS dS )Nr  FT)r   r   is_from_local_sourcer   r%   r'   )r   r  r   r   r   r    s   


r  c                 C   &   t | trdS t | trt| jS dS r   )r   r   r   )is_from_unspecialized_param_buffer_sourcer   r   r   r   r   r    
   


r  c                 C   r  r   )r   r   r   $is_from_flatten_script_object_sourcer   r   r   r   r   r    r  r  c                 C   r  r   )r   r   r   is_from_optimizer_sourcer   r   r   r   r   r    r  r  c                 C   r  r   )r   r   r   is_from_defaultsr   r   r   r   r   r    r  r  )Pr   r   r   typingr   r   r   torch._guardsr   r   r   r   r	   bytecode_transformationr
   r   r   r.   LOCAL_SPECIALIZED_NN_MODULErX   GLOBAL_SPECIALIZED_NN_MODULELOCAL_UNSPECIALIZED_NN_MODULEGLOBAL_UNSPECIALIZED_NN_MODULE%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULE&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULELOCAL_FSDP_MODULEGLOBAL_FSDP_MODULEr   r   r   r   r   r#   	dataclassr%   r=   rD   rN   r[   rc   rn   rr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s  















(




$
+



















