~L idZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z m Z mZddlmZddlmZmZerddlmZe j,e j.e j0e j2e j.e j.e j2e j2e j4e j4e j6e j6e j8e j8e j:e j:e j<e j<e j>e j>i Z e j,e j4e j0e j6e j4e j4e j6e j6e j.e j4e j2e j6e j8e j8e j:e j:e j<e j<e j>e j>i Z!e j,e j8e j0e j:e j4e j8e j6e j:e j.e j8e j2e j:e j8e j8e j:e j:e j<e j<e j>e j>i Z"e j,e j<e j0e j>e j.e j<e j2e j>e j<e j<e j>e j>e j4e j<e j6e j>e j8e j<e j:e j>i Z#d ed e$fd Z%d ed e&fd Z'ejPd GddeZ)ejPd GddeZ*ejPd GddeZ+ejPd GddeZ,ejPd GddeZ-ejPd Gdde Z.ejPd Gdde.Z/ejPd Gdde Z0ejPd Gdd e Z1ejPd Gd!d"e Z2ejPd Gd#d$e Z3ejPd Gd%d&eZ4ejPd Gd'd(e Z5ejPd Gd)d*e Z6ejPd Gd+d,e Z7ejPd Gd-d.e0Z8ejPd Gd/d0e0Z9ejPd Gd1d2eZ:ejPd Gd3d4e Z;Gd5d6ejxZ=ejPd Gd7d8e Z>ejPd Gd9d:e Z?ejPd Gd;de ZAejPd Gd?d@e ZBejPd GdAdBe ZCGdCdDe ZDejPd GdEdFe ZEejPd GdGdHe ZFejPd GdIdJe ZGejPd GdKdLe ZHejPd GdMdNe ZIejPd GdOdPe ZJejPd GdQdReFZKejPd GdSdTeFZLejPd GdUdVe ZMejPd GdWdXe ZNejPd GdYdZe ZOejPd Gd[d\e ZPejPd Gd]d^e ZQejPd Gd_d`eQZRejPd GdadbeRZSejPd GdcddeQZTejPd GdedfeZUejPd GdgdheZVejPd GdidjeZWejPd GdkdleZXejPd Gdmdne ZYejPd Gdodpe ZZejPd Gdqdre Z[ejPd Gdsdte Z\ejPd GdudveZ]ejPd GdwdxeZ^dydzd ed{e$d ee&fd|Z_dydzd ed{e$d e$fd}Z`d ed e$fd~Zad ed ee&fdZbd ed e$fdZcd ed e$fdZdd eded e$fdZeejd ed e$fdZgejd ed e$fdZhejd ed e$fdZiejd ed e$fdZjejd ed e$fdZkejd ed e$fdZlejd ed e$fdZmy)a This module provides Source classes that track the origins of values in PyTorch Dynamo. Sources represent where values come from (e.g. local variables, globals, attributes) and are used for guard generation and code reconstruction during compilation. The module includes specialized sources for: - Local variables and synthetic locals - Global variables and constants - Object attributes and method calls - NN module specialization (specialized vs unspecialized) - Random values and tensor properties - Default argument handling - FSDP (Fully Sharded Data Parallel) modules Sources play a key role in Dynamo's guard system by tracking value origins for guard generation, and in code reconstruction by providing methods to rebuild the code needed to recreate values. N)AnyCallableOptional TYPE_CHECKINGUnion) ChainedSourceGuard GuardSourceSource)utils)create_call_functioncreate_instruction) PyCodegensourcereturnct|try |jtjk(ry y#t $rYywxYwNTF) isinstanceConstantSource guard_sourcer CONSTANTNotImplementedErrorrs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/_dynamo/source.pyis_constant_sourcerasO&.)    K$8$8 8 9     s!7 AAcB |jS#t$rYywxYw)Nz)namerrs r_get_source_debug_namerms%"{{} "!"s  T)frozencneZdZUeed<dZeed<dZee eed<dZ eed<d dZ de fd Z defd Zy) LocalSource local_nameFis_inputNdynamismis_derefed_cell_contentsrc|jr|j|jy|j|j |jyN)r& load_derefr# append_output create_loadselfcodegens r reconstructzLocalSource.reconstructs:  ( (   t /  ! !'"5"5doo"F Gc"tjSr()r LOCALr-s rrzLocalSource.guard_sources   r0c4dt|jdS)NzL[])reprr#r3s rrzLocalSource.namesD)*!,,r0r.rrN)__name__ __module__ __qualname__str__annotations__r$boolr%r frozensetr&r/r rrr0rr"r"tsSOHd*.Hhy~&- &+d*H !k!-c-r0r"c8eZdZUeed<ddZdefdZdefdZy)SyntheticLocalSourcer#rNcX|j|j|jyr()r*r+r#r,s rr/z SyntheticLocalSource.reconstructsg11$//BCr0c"tjSr()r SYNTHETIC_LOCALr3s rrz!SyntheticLocalSource.guard_sources***r0c"d|jdS)NzSYNTHETIC_LOCAL[r5)r#r3s rrzSyntheticLocalSource.names!$//!4A66r0r7 r8r9r:r;r<r/r rrr?r0rrArAs%OD+k+7c7r0rAc8eZdZUeed<defdZddZdefdZ y)RandomValueSourcerandom_call_indexrc"tjSr()r RANDOM_VALUEr3s rrzRandomValueSource.guard_sources'''r0Nc|j|j|jjj|j|j |j |jtdyN BINARY_SUBSCR)r*r+txoutputrandom_values_varcreate_load_constrIrr,s rr/zRandomValueSource.reconstructs^g11'**2C2C2U2UVWg778N8NOP0ABr0c d|jS)N random_value_)rIr3s rrzRandomValueSource.namest55677r0r7) r8r9r:intr<r rr/r;rr?r0rrHrHs&(k(C 8c8r0rHc8eZdZUeed<ddZdefdZdefdZy) GlobalSource global_namerNc\|j|j|jdyNTaddr*create_load_globalrXr,s rr/zGlobalSource.reconstructs&g889I9It8TUr0c"tjSr(r GLOBALr3s rrzGlobalSource.guard_source!!!r0c4dt|jdS)NG[r5r6rXr3s rrzGlobalSource.namesD))*+1--r0r7rFr?r0rrWrWs&V"k".c.r0rWc8eZdZUeed<ddZdefdZdefdZy)GlobalWeakRefSourcerXrNchjfdjtddy)Nc\jjjdSrZr]r.r-srz1GlobalWeakRefSource.reconstruct..s+G))**4+;+;*Fr0rF add_push_null extend_outputrr,s``rr/zGlobalWeakRefSource.reconstructs.  21e<=r0c"tjSr(r`r3s rrz GlobalWeakRefSource.guard_sourcerbr0c4dt|jdS)Nrdz]()rer3s rrzGlobalWeakRefSource.namesD))*+3//r0r7rFr?r0rrgrgs%>"k"0c0r0rgc,eZdZddZdefdZdefdZy)WeakRefCallSourcerNchjfdjtddy)Nc(jSr(baserjsrrkz/WeakRefCallSource.reconstruct..sgdii&8r0rFrlr,s``rr/zWeakRefCallSource.reconstructs(8921e<=r0c6|jjSr(rvrr3s rrzWeakRefCallSource.guard_sourceyy%%''r0c<|jjdS)Nz()rvrr3s rrzWeakRefCallSource.names)).."#2&&r0r7r8r9r:r/r rr;rr?r0rrrrrs>(k('c'r0rrc eZdZy)CallFunctionNoArgsSourceNr8r9r:r?r0rr~r~r0r~c@eZdZUeed<ddZd dZdefdZdefdZ y) AttrSourcememberrNc ,|jsJdd|jvrs|jjd}tj |dt |jdj |ddtj |d|dyyNz9Can't construct an AttrSource without a valid base source.rvrrvrsplitobject __setattr__rjoinr- member_partss r __post_init__zAttrSource.__post_init__yyUUUy $++ ;;,,S1L   fjCHH\#2=N4OP    tX|B/? @ r0c|||j|j|j|jyr(rvrncreate_load_attrsrr,s rr/zAttrSource.reconstruct+ g77 DEr0c6|jjSr(rxr3s rrzAttrSource.guard_sourceryr0c|jjs+d|jjd|jdS|jjd|jS)Nzgetattr(, )r)r isidentifierrvrr3s rrzAttrSource.namesX{{'')diinn./r$++B B)).."#1T[[M22r0rNr7 r8r9r:r;r<rr/r rrr?r0rrrs+ KAF(k(3c3r0rc@eZdZUeed<ddZd dZdefdZdefdZ y) GenericAttrSourcerrNc ,|jsJdd|jvrs|jjd}tj |dt |jdj |ddtj |d|dyyrrrs rrzGenericAttrSource.__post_init__rr0c|||j|j|j|jyr(rr,s rr/zGenericAttrSource.reconstruct rr0c6|jjSr(rxr3s rrzGenericAttrSource.guard_source ryr0cXd|jjd|jdS)Nzobject.__getattribute__(rrrvrrr3s rrzGenericAttrSource.names')$))..*:);2dkk_ANNr0rr7rr?r0rrrs- KAF(k(OcOr0rc,eZdZddZdefdZdefdZy)TypeDictSourcerNch||j|j|jdy)N__dict__rvrnrr,s rr/zTypeDictSource.reconstruct' g77 CDr0c6|jjSr(rxr3s rrzTypeDictSource.guard_sourceryr0c>d|jjdS)Nzdict(z .__dict__)r{r3s rrzTypeDictSource.names tyy~~'( 33r0r7r|r?r0rrrs E(k(4c4r0rc,eZdZddZdefdZdefdZy) TypeMROSourcerNch||j|j|jdy)N__mro__rr,s rr/zTypeMROSource.reconstruct)' g77 BCr0c6|jjSr(rxr3s rrzTypeMROSource.guard_source-ryr0c<|jjdS)Nz.__mro__r{r3s rrzTypeMROSource.name0s)).."#8,,r0r7r|r?r0rrr's D(k(-c-r0rc$eZdZUdZeed<ddZy)LocalCellSourcez Conceptually, this class is `LocalSource` for cell objects implicitly generated by Python (e.g., captured variables). r#NcX|j|j|jyr()r*create_load_closurer#r,s rr/zLocalCellSource.reconstruct=s! g99$//JKr0r7)r8r9r:__doc__r;r<r/r?r0rrr4s OLr0rc,eZdZddZdefdZdefdZy) CodeSourcerNch||j|j|jdy)N__code__rr,s rr/zCodeSource.reconstructJrr0c6|jjSr(rxr3s rrzCodeSource.guard_sourceNryr0c<|jjdS)Nz .__code__r{r3s rrzCodeSource.nameQs)).."#9--r0r7r|r?r0rrrHs E(k(.c.r0rc,eZdZddZdefdZdefdZy) ClosureSourcerNch||j|j|jdy)N __closure__rr,s rr/zClosureSource.reconstructXs' g77 FGr0c6|jjSr(rxr3s rrzClosureSource.guard_source\ryr0c<|jjdS)Nz .__closure__r{r3s rrzClosureSource.name_s)).."#<00r0r7r|r?r0rrrVs H(k(1c1r0rc<eZdZUdZeed<ddZdefdZdefdZ y) GradSourcegradrrNc|||j|j|j|jyr(rr,s rr/zGradSource.reconstructkrr0c6|jjSr(rxr3s rrzGradSource.guard_sourceoryr0cT|jjd|jS)Nrrr3s rrzGradSource.namers#)).."#1T[[M22r0r7) r8r9r:rr;r<r/r rrr?r0rrrgs*FCF(k(3c3r0rceZdZdefdZy)ParamBufferSourcercDt|jjSr(#_GUARD_SOURCE_SPECIALIZED_NN_MODULErvrr3s rrzParamBufferSource.guard_sourcex24993I3I3KLLr0Nr8r9r:r rr?r0rrrvsMkMr0rc eZdZy)UnspecializedParamBufferSourceNrr?r0rrr}rr0rc`eZdZUdZeeed<defdZdefdZ de de fde fdZ defd Zy) EphemeralSourceNdescrc"tjSr()r EPHEMERALr3s rrzEphemeralSource.guard_source$$$r0cJd|jd|jzdSddS)Nz )rr3s rrzEphemeralSource.names1 0ED499,NaPP2NaPPr0fn.ctr(rr-rs r make_guardzEphemeralSource.make_guard!!r0cyNTr?r3s r is_ephemeralzEphemeralSource.is_ephemeralr0)r8r9r:rrr;r<r rrrrr rr=rr?r0rrrsRD(3-%k%QcQ"Xc3h/"E"dr0rc,eZdZddZdefdZdefdZy)SkipGuardSourcerNc:|jj|yr()rvr/r,s rr/zSkipGuardSource.reconstructs g&r0c6|jjSr(rxr3s rrzSkipGuardSource.guard_sourceryr0c6|jjSr(r{r3s rrzSkipGuardSource.nameyy~~r0r7r|r?r0rrrs'(k( c r0rc$eZdZdZdZdZdefdZy)TensorPropertyrr rc|tjury|tjury|tjuryt d|)Nsizestridestorage_offset unhandled )rSIZESTRIDESTORAGE_OFFSETAssertionErrorr3s r method_namezTensorProperty.method_namesG >&& & ^** * ^22 2# :dV!45 5r0N)r8r9r:rrrr;rr?r0rrrs D FN6S6r0rcTeZdZUeed<dZeeed<d dZd dZ de fdZ de fdZ y) TensorPropertySourcepropNidxrc|jJ|jtjur|jJy|jJyr()rvrrrrr3s rrz"TensorPropertySource.__post_init__sDyy$$$ 9955 588# ##88' ''r0cjfdjj*jj jj t jdnddy)Nczjtjdjj S)Ncall_)load_import_fromr r8rrrjsrrkz2TensorPropertySource.reconstruct..s0G,,% (=(=(?'@ Ar0rr F)rmrvrr*rRrnrr,s``rr/z TensorPropertySource.reconstructsn    88   ! !'";";DHH"E F dhh&:5 I r0c6|jjSr(rxr3s rrz!TensorPropertySource.guard_sourceryr0c|jtjur*|jj d|j dS|jtj ur*|jj d|j dS|jtjur+|j J|jj dStd|j)Nz.size()[r5z .stride()[z.storage_offset()r) rrrrvrrrrrr3s rrzTensorPropertySource.names 99++ +iinn&'xz; ; YY.// /iinn&'z$((1= = YY.77 788# ##iinn&''89 9 :dii[!9: :r0rr7)r8r9r:rr<rrrUrr/r rr;rr?r0rrrs8 C#(  (k( ;c ;r0rc@eZdZUeed<ddZd dZdefdZde fdZ y) IndexedSourcerrNc |jJyr(rur3s rrzIndexedSource.__post_init__yy$$$r0ctr(rr,s rr/zIndexedSource.reconstructrr0c6|jjSr(rxr3s rrzIndexedSource.guard_sourceryr0cXd|jd|jjdS)N(rr)rrvrr3s rrzIndexedSource.names'488*Btyy~~/022r0rr7) r8r9r:rUr<rr/r rr;rr?r0rrrs) H%"(k(3c3r0rc4eZdZddZddZdefdZdefdZy) NegateSourcerNc |jJyr(rur3s rrzNegateSource.__post_init__rr0ctr(rr,s rr/zNegateSource.reconstructrr0c6|jjSr(rxr3s rrzNegateSource.guard_sourceryr0c<|jjdS)Nz .__neg__()r{r3s rrzNegateSource.names)).."#:..r0rr7 r8r9r:rr/r rr;rr?r0rr r s$%"(k(/c/r0r c4eZdZddZddZdefdZdefdZy) ConvertIntSourcerNc |jJyr(rur3s rrzConvertIntSource.__post_init__rr0c(||jyr(rur,s rr/zConvertIntSource.reconstruct r0c6|jjSr(rxr3s rrzConvertIntSource.guard_source ryr0c>d|jjdS)Nz!cast_symbool_to_symint_guardless(rr{r3s rrzConvertIntSource.name s2499>>3C2DAFFr0rr7rr?r0rrrs&%(k(GcGr0rc4eZdZddZddZdefdZdefdZy) FlattenScriptObjectSourcerNc |jJyr(rur3s rrz'FlattenScriptObjectSource.__post_init__rr0c(||jyr(rur,s rr/z%FlattenScriptObjectSource.reconstructrr0c6|jjSr(rxr3s rrz&FlattenScriptObjectSource.guard_sourceryr0c<|jjdS)Nz.__obj_flatten__()r{r3s rrzFlattenScriptObjectSource.names)).."##566r0rr7rr?r0rrrs$%(k(7c7r0rc4eZdZddZddZdefdZdefdZy) ScriptObjectQualifiedNameSourcerNc |jJyr(rur3s rrz-ScriptObjectQualifiedNameSource.__post_init__"rr0c(||jyr(rur,s rr/z+ScriptObjectQualifiedNameSource.reconstruct%rr0c6|jjSr(rxr3s rrz,ScriptObjectQualifiedNameSource.guard_source(ryr0c<|jjdS)Nz._type().qualified_name()r{r3s rrz$ScriptObjectQualifiedNameSource.name+s)).."##<==r0rr7rr?r0rr r  s$%(k(>c>r0r c,eZdZddZdefdZdefdZy)AttrProxySourcerNc(||jyr(rur,s rr/zAttrProxySource.reconstruct0rr0c6|jjSr(rxr3s rrzAttrProxySource.guard_source3ryr0c<|jjdS)Nz .get_base()r{r3s rrzAttrProxySource.name6s)).."#;//r0r7r|r?r0rr&r&/s(k(0c0r0r&ceZdZUeeefed<dZeed<e jdddZ eed<e jdddZ eed<d d Z dd Z defd Zdefd Zy)DefaultsSourceidx_keyFis_kw)initr6comparefield_namerNc @|jsJd|jrt|jtsJt j |ddt j |d|jjd|jd|jdyt|jtsJt j |ddt j |d|jjd|jd |jd y) Nz]Base must be a valid source in order to properly track and guard this Defaults to its origin.r0__kwdefaults__r1rz['z'] __defaults__[r5) rvr-rr,r;rrrr0rUr3s rrzDefaultsSource.__post_init__Asyy k y ::dllC0 00   tW.> ?   g$)).."2!31TZZL4<<.PRS dllC0 00   tWn =   g$)).."2!31TZZL$,,qQ r0c||j|j|j|j|j |j |j |j tdyrM)rvrnrr0r*rRr,rr,s rr/zDefaultsSource.reconstructRs\ g77 CDg77 EF0ABr0c6|jjSr(rxr3s rrzDefaultsSource.guard_sourceXryr0c|jSr()r1r3s rrzDefaultsSource.name[s zzr0rr7)r8r9r:rrUr;r<r-r= dataclassesr0r1rr/r rrr?r0rr+r+:ss 38_E4"""E5IE3I"""E5IE3I"C (k(cr0r+cfeZdZUeed<dZeed<d fd Zd dZde fdZ de fdZ de fd ZxZS) GetItemSourceindexFindex_is_slicerc|jJt|jtr9t|d|jj t|ddyy)Nr<r=T)rvrr<slicesuperr __reduce__)r- __class__s rrzGetItemSource.__post_init__dsRyy$$$ djj% ( G )>)>)@ A G  0$ 7 )r0c&||j|jr/|j|j|j n*|j|j|j |jt dyrM)rvr=r*rR unpack_slicer<rr,s rr/zGetItemSource.reconstructksj      ! !'";";D.sG,,U^^=PQr0rFrmrvr*rRr<rnrr,s `rr/zConstDictKeySource.reconstructsU Q   g77 CD21e<=r0cXd|jjd|jdS)Nzlist(dict.keys(z))[r5rvrr<r3s rrzConstDictKeySource.names' !1 2#djj^1EEr0cyrr?r3s r is_dict_keyzConstDictKeySource.is_dict_keyrr0r7) r8r9r:rr<r rr/r;rr=rYr?r0rrNrNs2 J(k(>FcFTr0rNcLeZdZUeed<d dZdefdZd dZde fdZ de fdZ y) NonSerializableSetGetItemSourcer<rNcJddlm}|j|jsJyNr )ConstantVariable) variablesr^ is_literalr<r-r^s rrz-NonSerializableSetGetItemSource.__post_init__s/**4::666r0c6|jjSr(rxr3s rrz,NonSerializableSetGetItemSource.guard_sourceryr0cjfd|jjj|jj t ddy)NcDjtjdS)N set_getitemrSrTsrrkz=NonSerializableSetGetItemSource.reconstruct..sG,,U^^]Kr0rFrUr,s `rr/z+NonSerializableSetGetItemSource.reconstructsU K   g77 CD21e<=r0cXd|jjd|jdS)Nzlist(z)[r5rWr3s rrz$NonSerializableSetGetItemSource.names'tyy~~'(4::.::r0cy)NFr?r3s rrYz+NonSerializableSetGetItemSource.is_dict_keysr0rr7) r8r9r:rUr<rr rr/r;rr=rYr?r0rr[r[s5 J7 (k(>;c;Tr0r[c@eZdZUeed<ddZdefdZd dZde fdZ y) DictGetItemSourcer<rNcddlm}t|jts|j |jsJyyr]r_r^rr<rNr`ras rrzDictGetItemSource.__post_init__;/ JJ*  ( ( 4 55 4 r0c6|jjSr(rxr3s rrzDictGetItemSource.guard_sourceryr0c ||jt|jtr||jn*|j |j |j|j t dyrM)rvrr<r r*rRrr,s rr/zDictGetItemSource.reconstructs[  djj& ) DJJ   ! !'";";DJJ"G H0ABr0ct|jtr8|jj d|jj dS|jj d|jdSrJrr<rNrvrr3s rrzDictGetItemSource.names_ djj"4 5iinn&'q):(;1= =iinn&'qa8 8r0rr7 r8r9r:rr<rr rr/r;rr?r0rriris, J5(k( C9c9r0ric@eZdZUeed<ddZdefdZd dZde fdZ y) DictSubclassGetItemSourcer<rNcddlm}t|jts|j |jsJyyr]rkras rrz'DictSubclassGetItemSource.__post_init__rlr0c6|jjSr(rxr3s rrz&DictSubclassGetItemSource.guard_sourceryr0c6jfd|jt|jtr|jn*j j |jjtddy)NcDjtjdS)N dict_getitemrSrTsrrkz7DictSubclassGetItemSource.reconstruct..G,,U^^^Lr0rF) rmrvrr<r r*rRrnrr,s `rr/z%DictSubclassGetItemSource.reconstructss  L   djj& ) DJJ   ! !'";";DJJ"G H21e<=r0ct|jtr9d|jj d|jj dS|jj d|jdS)Nzdict.__getitem__(rrr5r5rpr3s rrzDictSubclassGetItemSource.namesa djj"4 5&tyy~~'7&84::??;L:MQO Oiinn&'qa8 8r0rr7rqr?r0rrsrss+ J5(k(>&9c9r0rsc$eZdZdZddZdefdZy)ListGetItemSourcezY Same as GetItemSource with reconstruct and name overridden to be list specific. rNc jfd|j|jr tdj j |j jtddy)NcDjtjdS)N list_getitemrSrTsrrkz/ListGetItemSource.reconstruct..ryr0>List[slice] is a temporary object and should not have a sourcerF) rmrvr= RuntimeErrorr*rRr<rnrr,s `rr/zListGetItemSource.reconstructst  L     P   ! !'";";DJJ"G H21e<=r0ct|jtrJ|jr t dd|j j d|jdS)Nrzlist.__getitem__(rr)rr<r r=rrvrr3s rrzListGetItemSource.name&sXdjj&111   P 'tyy~~'7&84::.J Jr0r7)r8r9r:rr/r;rr?r0rr|r| s>, Kc Kr0r|c eZdZddZdefdZy)TupleIteratorGetItemSourcerNcjfd|jjj|jj t ddy)NcDjtjdS)Ntuple_iterator_getitemrSrTsrrkz8TupleIteratorGetItemSource.reconstruct..7sG,,U^^=UVr0rFrUr,s `rr/z&TupleIteratorGetItemSource.reconstruct5sU V   g77 CD21e<=r0cXd|jjd|jdS)Nz___tuple_iterator_getitem(rrrWr3s rrzTupleIteratorGetItemSource.name=s'+DIINN,<+=R ~QOOr0r7)r8r9r:r/r;rr?r0rrr3s>PcPr0rc,eZdZddZdefdZdefdZy)NamedTupleFieldsSourcerNch||j|j|jdy)N_fieldsrr,s rr/z"NamedTupleFieldsSource.reconstructCrr0c6|jjSr(rxr3s rrz#NamedTupleFieldsSource.guard_sourceGryr0c>d|jjdS)Nz___namedtuple_fields(rr{r3s rrzNamedTupleFieldsSource.nameJs&tyy~~'7&8::r0r7r|r?r0rrrAs D(k(;c;r0rc,eZdZddZdefdZdefdZy)DataclassFieldsSourcerNcjfd|jjtddy)NcDjtjdS)Ndataclass_fieldsrSrTsrrkz3DataclassFieldsSource.reconstruct..RsG,,U^^=OPr0r Frmrvrnrr,s `rr/z!DataclassFieldsSource.reconstructPs8 P   21e<=r0c6|jjSr(rxr3s rrz"DataclassFieldsSource.guard_sourceWryr0c>d|jjdS)Nz___dataclass_fields(rr{r3s rrzDataclassFieldsSource.nameZs%diinn&6%7q99r0r7r|r?r0rrrNs>(k(:c:r0rc4eZdZddZddZdefdZdefdZy) TypeSourcerNc |jJyr(rur3s rrzTypeSource.__post_init__`rr0cjfd|jjtddy)Nc(jddS)NbuiltinstyperrTsrrkz(TypeSource.reconstruct..dsg&>&>z6&Rr0r Frr,s `rr/zTypeSource.reconstructcs4RS 21e<=r0c6|jjSr(rxr3s rrzTypeSource.guard_sourcehryr0c>d|jjdS)Nztype(rr{r3s rrzTypeSource.namekstyy~~'(**r0rr7rr?r0rrr^s$%> (k(+c+r0rc,eZdZddZdefdZdefdZy)OptimizerSourcerNc(||jyr(rur,s rr/zOptimizerSource.reconstructqrr0c6|jjSr(rxr3s rrzOptimizerSource.guard_sourcetryr0c6|jjSr(r{r3s rrzOptimizerSource.namewrr0r7r|r?r0rrros(k( c r0rc,eZdZddZdefdZdefdZy)NNModuleSourcerNc(||jyr(rur,s rr/zNNModuleSource.reconstruct}rr0cDt|jjSr(rr3s rrzNNModuleSource.guard_sourcerr0c6|jjSr(r{r3s rrzNNModuleSource.namerr0r7r|r?r0rrr{s!MkM c r0rceZdZdefdZy)UnspecializedNNModuleSourcercDt|jjSr()%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULErvrr3s rrz(UnspecializedNNModuleSource.guard_sources4TYY5K5K5MNNr0Nrr?r0rrrsOkOr0rceZdZdefdZy)"UnspecializedBuiltinNNModuleSourcercDt|jjSr()-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULErvrr3s rrz/UnspecializedBuiltinNNModuleSource.guard_sourcesc>S>T> %c% "k"r0rcDeZdZUeed<defdZdefdZddZde fdZ y) TorchFunctionModeStackSourceindrc*d|jdS)Nz$___get_torch_function_mode_stack_at(r) _get_indexr3s rrz!TorchFunctionModeStackSource.names5doo6G5HJJr0cDddlm}|j|jS)Nr )TorchFunctionModeStackVariable)variables.torch_functionrget_mode_indexr)r-rs rrz'TorchFunctionModeStackSource._get_indexsL-<.sG,, Br0r F)rmrnrRrrr,s `rr/z(TorchFunctionModeStackSource.reconstructsQ  w889JKLM21e<=r0c"tjSr(r`r3s rrz)TorchFunctionModeStackSource.guard_sourcerbr0r7) r8r9r:rUr<r;rrr/r rr?r0rrrs4 HKcKGCG >"k"r0rcHeZdZUeed<d dZdefdZdefdZde de fdZ y) r source_namerNc\|j|j|jdy)NFr[)r*r^rr,s rr/zConstantSource.reconstructs&g889I9Iu8UVr0c"tjSr()r rr3s rrzConstantSource.guard_sources###r0c|jSr()rr3s rrzConstantSource.namesr0rctr(rrs rrzConstantSource.make_guardrr0r7) r8r9r:r;r<r/r rrrrr?r0rrrs9W$k$ c "S"S"r0rc,eZdZdefdZdefdZddZy)NumpyTensorSourcerc>d|jjdS)Nz___from_numpy(rr{r3s rrzNumpyTensorSource.names  0133r0c6|jjSr(rxr3s rrzNumpyTensorSource.guard_sourceryr0Ncjfd|jjtddy)Nc(jddS)Nr as_tensorrrTsrrkz/NumpyTensorSource.reconstruct..sg&>&>w &Tr0r Frr,s `rr/zNumpyTensorSource.reconstructs4TU 21e<=r0r7)r8r9r:r;rr rr/r?r0rrrs4c4(k(>r0rc$eZdZdefdZdefdZy)SubclassAttrListSourcerc<|jjdS)Nz.__tensor_flatten__()[0]r{r3s rrzSubclassAttrListSource.names)).."##;<d|jjdS)Nz ___as_tensor(rr{r3s rrzFloatTensorSource.namestyy~~/022r0c6|jjSr(rxr3s rrzFloatTensorSource.guard_sourceryr0Nrr?r0rrrs3c3(k(r0rc$eZdZdefdZdefdZy)CallMethodItemSourcerc<|jjdS)Nz.item()r{r3s rrzCallMethodItemSource.name s)).."#7++r0c6|jjSr(rxr3s rrz!CallMethodItemSource.guard_sourceryr0Nrr?r0rrr s,c,(k(r0rc$eZdZdefdZdefdZy)ShapeEnvSourcercyrr?r3s rrzShapeEnvSource.namerr0c"tjSr()r SHAPE_ENVr3s rrzShapeEnvSource.guard_sourcerr0Nrr?r0rrrsc%k%r0rc$eZdZdefdZdefdZy)BackwardStateSourcercyrr?r3s rrzBackwardStateSource.name rr0c"tjSr()r BACKWARD_STATEr3s rrz BackwardStateSource.guard_source#s)))r0Nrr?r0rrrsc*k*r0rFonly_allow_inputrct|trt|j|St|tsy|r |j sy|j SNr)rrget_local_source_namervr"r$r#rrs rrr'sE&-($V[[CSTT fk *   r0c t||duSr)rrs ris_from_local_sourcer3s :J KSW WWr0ct|duSr()get_global_source_namers ris_from_global_sourcer 7s !& ) 55r0ct|trt|jSt|tsy|j Sr()rrrrvrWrXrs rrr;s4&-(%fkk22 fl +   r0ct|trt|jSt|txr|j xr |j Sr()rris_from_nonlocal_sourcervr"r&r$rs rr r CsG&-(&v{{336;'  + +  r0cpt|tryt|trt|jSyr)rrris_from_closure_sourcervrs rrrMs+&-(&-(%fkk22 r0targetcXt|trt|j|S||k(Sr()rris_from_sourcerv)rrs rrrUs(&-(fkk622 V r0cpt|tryt|trt|jSyr)rrr&is_from_unspecialized_nn_module_sourcervrs rrr[s,&56&-(5fkkBB r0cpt|tryt|trt|jSyr)rrr.is_from_unspecialized_builtin_nn_module_sourcervrs rrrds,&<=&-(=fkkJJ r0cpt|tryt|trt|jSyr)rrr)is_from_unspecialized_param_buffer_sourcervrs rrrms,&89&-(8EE r0cpt|tryt|trt|jSyr)rrr$is_from_flatten_script_object_sourcervrs rrrvs,&34 FM *3FKK@@ r0cpt|tryt|trt|jSyr)rrris_from_optimizer_sourcervrs rrrs+&/*&-(' 44 r0ct|tryt|tr4t|jtr|jj dk(ryt|t r4t|jtr|jj dk(ryt|trt|jSy)NTr3r4F) rr+rirvrrr;ris_from_defaultsrs rrrs&.) 6,- v{{J / KK  "2 2 6=) v{{J / KK  . 0&-( ,, r0cpt|tryt|trt|jSyr)rrris_from_skip_guard_sourcervrs rrrs+&/*&-((55 r0)nrr9enum functoolstypingrrrrr torch._guardsrr r r rr bytecode_transformationrrr.rr2LOCAL_SPECIALIZED_NN_MODULEraGLOBAL_SPECIALIZED_NN_MODULELOCAL_UNSPECIALIZED_NN_MODULEGLOBAL_UNSPECIALIZED_NN_MODULE%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULE&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULELOCAL_FSDP_MODULEGLOBAL_FSDP_MODULErrrrr=rr;r dataclassr"rArHrWrgrrr~rrrrrrrrrrrrEnumrrrr rrr r&r+r;rNr[rirsr|rrrrrrrrrrrrrrrrrrrrrr rr rr lru_cacherrrrrrrr?r0rr0s) & @@CCM"{>> @@++[-T-T,,k.V.V--{/X/X.. 0Z0Z55{7h7h66 8j8j!!;#@#@""K$B$B '# {@@ BB--{/X/X.. 0Z0Z++[-V-V,,k.X.X55{7h7h66 8j8j!!;#@#@""K$B$B )%"{HH JJ--{/`/`.. 0b0b++[-^-^,,k.`.`55{7h7h66 8j8j!!;#@#@""K$B$B 1-{44 66++[-J-J,,k.L.L!!;#@#@""K$B$B--{/L/L.. 0N0N55{7T7T66 8V8V  v $ "6"c"d#-&-$-8d# 76 7$ 7d# 8 8$ 8d# .6 .$ .d#0&0$0$d# ' '$ 'd# 0 $ d#33$32d#O O$O0d# 4] 4$ 4"d# -M -$ -d# Lf L$ L&d# . .$ .d# 1M 1$ 1 d# 3 3$ 3d#M M$M d# Z $ d# f $  d# m $  6TYY 6 d#%;=%;$%;Pd# 3M 3$ 3 d# /= /$ /d# G} G$ Gd# 7 7$ 7d# >m >$ >0m0d#!]!$!Hd##9M#9$#9Ld#$,d#m$8d#9 9$9Hd#'9 '9$'9Td#%K %K$%KPd# P P$ Pd# ;] ;$ ;d# :M :$ :d# + +$ + d# m $ d# ] $ d#O.O$O d#W)DW$W d#CC$C d#""$"d#"&"$"4d#"6"$"0d# "V "$ " d# > >$ >d#(]($(d#( ($(d#(=($(d#%V%$%d#*&*$*16   )-  c] FKXXdXtX6&6T66hsmFt6d66d  6d 6d f D V V2 fr0