
    9i                        S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSK	J
r
Jr  SSKJr  SSKJrJrJr  SSKJrJr  SS	KJrJr  SS
KJrJr  SSKJr  SSKJrJrJ r J!r!J"r"J#r#J$r$  SSK%J&r&J'r'  SSK(J)r)  \(       a  SSK*J+r+  SSK,J-r-  S r.S+S jr/S r0 " S S\'5      r1 " S S\'5      r2 " S S\15      r3 " S S\15      r4 " S S\15      r5 " S S \55      r6 " S! S"\55      r7 " S# S$\'5      r8 " S% S&\85      r9 " S' S(\85      r: " S) S*\85      r;g),a  
Dictionary-related variable tracking classes for PyTorch Dynamo.

This module implements variable tracking for different types of dictionary-like objects:
- Regular Python dictionaries (dict)
- Ordered dictionaries (collections.OrderedDict)
- Default dictionaries (collections.defaultdict)
- Dictionary views (keys and values)
- Sets and frozensets (implemented internally using dictionaries)

These classes are responsible for tracking dictionary operations during graph compilation,
maintaining proper guards for dictionary mutations and key existence checks. They handle
dictionary creation, modification, key/value access, and view operations while ensuring
correct behavior in the compiled code through appropriate guard installation.

The implementation uses a special _HashableTracker wrapper to handle dictionary keys
while preserving proper aliasing semantics. Sets are implemented as dictionaries with
None values for efficiency and code reuse.
    N)Hashable)OptionalTYPE_CHECKING)is_fake   )graph_break_hints	polyfills	variables)create_call_functioncreate_instruction)raise_observed_exceptionunimplemented_v2)GuardBuilderinstall_guard)is_from_local_source)cmp_name_to_op_mapping
dict_items	dict_keysdict_valuesistyperaise_args_mismatchspecialize_symnode   )ValueMutationNewVariableTrackerConstantVariable)	PyCodegenInstructionTranslatorc                 L    [        U 5      R                  R                  SS5      $ )N__instancecheck__F)type__dict__get)objs    ]/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torch/_dynamo/variables/dicts.pywas_instancecheck_overrider(   =   s     9!!"5u==    c           
          Uc  SSK Jn  UR                  " 5       n[        [        U[        S[        U 5       35      /S9  g )Nr   r   zunhashable type: args)torch._dynamo.symbolic_convertr    
current_txr   	TypeErrorr   r#   )argtxr    s      r'   raise_unhashabler2   A   s<    	zH"--/2-0A$s).MNOr)   c                    [        U [        R                  5      (       a+  U R                  5       (       d  U R	                  5       (       a  g[        U [        R
                  5      (       a5  U R                  5       R                  R                  R                  S5      S L$ [        U [        R                  5      (       a  [        S U R                   5       5      $ [        U [        R                  5      (       a*  [        S U R                  R                  5        5       5      $ [        U [        R                   5      (       a  [#        U R$                  5      (       dk  [&        R(                  " U R$                  S5      [*        R,                  L a9  [        U R$                  [*        5      (       a  [        U R$                  [.        5      $ [        U [        R0                  [        R2                  [        R4                  [        R6                  [        R8                  [        R:                  [        R<                  [        R>                  [        R@                  RB                  [        RD                  [        RF                  [        RH                  [        RJ                  [        RL                  [        RN                  [        RP                  [        RR                  45      $ )NTexample_valuec              3   8   #    U  H  n[        U5      v   M     g 7fNis_hashable.0es     r'   	<genexpr>is_hashable.<locals>.<genexpr>]   s     37a;q>>7   c              3   8   #    U  H  n[        U5      v   M     g 7fr6   r7   r9   s     r'   r<   r=   _   s     =+<a;q>>+<r>   __hash__)*
isinstancer
   LazyVariableTrackeris_realizedr8   TensorVariableas_proxynodemetar%   TupleVariableallitemsFrozenDataClassVariablefieldsvaluesUserDefinedObjectVariabler(   valueinspectgetattr_staticintr@   py_HashableBuiltinVariableSymNodeVariabler   EnumVariableFrozensetVariableUserDefinedClassVariableUserFunctionVariableSkipFunctionVariablemiscNumpyVariableNNModuleVariableUnspecializedNNModuleVariableMethodWrapperVariableTorchInGraphFunctionVariableTypingVariableFunctoolsPartialVariableWeakRefVariable TorchHigherOrderOperatorVariable)xs    r'   r8   r8   K   s    	1i3344MMOO!Y--.. zz|  %%))/:$FF	Ay..	/	/3177333	Ay88	9	9=188??+<===1i99::*17733""177J73<<Gqww$$!'';//))))**&&++22....,,**77//66((22))::#
 	
r)   c                   r  ^  \ rS rSr\R
                  rS1\R                  kr " S S5      r	\
4S\
\\4   SS4U 4S jjjrS	 rS
 rS rS rS rS rS\4S jrS\4S jrS\4S jrS rS rS#S jrSSS\4S jrSSS\4S jrS\4S jrS\4S jrS rS r      S$U 4S jjr S r!S  r"U 4S! jr#S"r$U =r%$ )%ConstDictVariable   user_clsc                   Z    \ rS rSrSrSS jr\S 5       rS r\	S 5       r
S	S S\4S
 jrSrg)"ConstDictVariable._HashableTracker   a"  
Auxiliary opaque internal class that wraps a VariableTracker and makes it hashable
This should not be seen or touched by anything outside of ConstDictVariable and its children
Note that it's also fine to put VTs into dictionaries and sets, but doing so does not take into account aliasing
returnNc                 \    [        U5      n[        U5      (       d  [        U5        Xl        g r6   )r   r8   r2   vt)selfro   s     r'   __init__+ConstDictVariable._HashableTracker.__init__   s$    #B'B r?? $Gr)   c                   ^ [        U R                  [        R                  5      (       aX  U R                  R	                  5       (       d9  U R                  R                  5       (       a  U R                  R                  5       $ [        U R                  [        R                  5      (       a3  U R                  R                  5       R                  R                  S   nU$ [        U R                  [        R                  5      (       a;  [        R                  m[        U4S jU R                  R                   5       5      nU$ [        U R                  [        R                   5      (       a  U R                  R"                  $ [        U R                  [        R$                  5      (       a  U R                  R"                  $ [        U R                  [        R&                  5      (       a  U R                  R)                  5       $ [        U R                  [        R*                  5      (       a6  [        R                  mT" U R                  R,                  5      R.                  $ [        U R                  [        R0                  5      (       a  [        R                  mU R                  R2                  R                  5        VVs0 s H  u  p#UT" U5      R.                  _M     nnn[        R0                  R5                  U R                  R7                  5       U5      $ [        U R                  [        R8                  5      (       a  U R                  R"                  $ U R                  R;                  5       nU$ s  snnf )Nr4   c              3   H   >#    U  H  nT" U5      R                   v   M     g 7fr6   )underlying_value)r:   r;   r   s     r'   r<   FConstDictVariable._HashableTracker.underlying_value.<locals>.<genexpr>   s     N1(1+66s   ")rA   ro   r
   rB   rC   r8   original_valuerD   rE   rF   rG   rH   rg   _HashableTrackertuplerJ   r]   rO   r^   rY   get_functionrc   referent_vtru   rK   rL   HashWrapperpython_typerN   as_python_constant)rp   re   kvfields_valuesr   s        @r'   ru   3ConstDictVariable._HashableTracker.underlying_value   s_    477I$A$ABB++--GG''))ww--//$''9#;#;<<GG$$&++00A: H9 DGGY%<%<==,==NNN4 H3 DGGY%?%?@@ww}}$DGGY%L%LMMww}}$DGGY%C%CDDww++--DGGY%>%>??,== 3 34EEEDGGY%F%FGG,==@D@T@T@V!@VAx{333@V  ! !88DDGG'')=  DGGY%H%HII ww}}$GG..0H!s   M8c                 ,    [        U R                  5      $ r6   )hashru   rp   s    r'   r@   +ConstDictVariable._HashableTracker.__hash__   s    --..r)   c                 &  ^ [        U 5      [        U5      :w  a  g[        U [        5      (       aL  [        R                  m[        U 5      [        U5      :H  =(       a    [        U4S j[        X5       5       5      $ [        U 5      (       a  XL $ X:H  $ )NFc              3   J   >#    U  H  u  pTR                  X5      v   M     g 7fr6   )_eq_impl)r:   ur   r   s      r'   r<   >ConstDictVariable._HashableTracker._eq_impl.<locals>.<genexpr>   s$      08AH%%a++	s    #)	r#   rA   ry   rg   rx   lenrI   zipr   )abr   s     @r'   r   +ConstDictVariable._HashableTracker._eq_impl   s{     Aw$q'!Au%%,==1vQ' C 08;A	0 -  vvr)   otherc                 <   [         R                  n[        X5      (       d+  [        R                  " U5      (       d   [        U5      5       e[        X5      (       a&  UR                  U R                  UR                  5      $ UR                  U R                  U5      $ r6   )rg   rx   rA   r   
is_literalr#   r   ru   )rp   r   r   s      r'   __eq__)ConstDictVariable._HashableTracker.__eq__   s    (99He..2B2M2Me2T2T UT %**(()>)>@V@VWW $$T%:%:EBBr)   )ro   rm   N)__name__
__module____qualname____firstlineno____doc__rq   propertyru   r@   staticmethodr   boolr   __static_attributes__ r)   r'   rx   rk      sQ    		 
%	 
%	N	/ 
	 
			C D 		C 		Cr)   rx   rJ   rm   Nc           	        >^ SU;   a  UR                  S5        SU;   a  UR                  S5        [        T	U ]  " S0 UD6  [        R                  m[        U4S jUR                  5        5       5      (       d   eU4S jnU R                  U5      nU" UR                  5        VVs0 s H  u  pgU" U5      U_M     snn5      U l        [        U R                  5      (       + U l
        UR                  5       U l        X l        g s  snnf )Noriginal_itemsshould_reconstruct_allc              3   z   >#    U  H0  u  p[        U[        T45      =(       a    [        U[        5      v   M2     g 7fr6   )rA   r   )r:   re   r   r   s      r'   r<   -ConstDictVariable.__init__.<locals>.<genexpr>   s<      
 & q?H56 /1o./%s   8;c                 :   > [        U T5      (       a  U $ T" U 5      $ r6   )rA   )keyr   s    r'   make_hashable1ConstDictVariable.__init__.<locals>.make_hashable   s    $S(333F#Fr)   r   )popsuperrq   rg   rx   rI   rJ   _get_dict_cls_from_user_clsr   sourcer   copyr   ri   )
rp   rJ   ri   kwargsr   dict_clsre   r   r   	__class__s
           @r'   rq   ConstDictVariable.__init__   s     v%JJ'(#v-JJ/0"6"$55  
 
 
 
 	
 
	G 33H=u{{}M}tq}Q/2}MN
 +?t{{*K&K##jjl  Ns   'D
c                    ^ [         [        R                  [        R                  4mUT;   a  UnO[	        U4S jUR
                   5       5      nUT;   d   U5       eU[        R                  L a  [         nU$ )Nc              3   6   >#    U  H  oT;   d  M
  Uv   M     g 7fr6   r   )r:   baseaccepted_dict_typess     r'   r<   @ConstDictVariable._get_dict_cls_from_user_cls.<locals>.<genexpr>  s      !1=P5P!1s   		)dictcollectionsOrderedDictdefaultdictnext__mro__)rp   ri   r   r   s      @r'   r   -ConstDictVariable._get_dict_cls_from_user_cls   s{    #[%<%<k>U>UV **H  !)!1!1 H ..88. {...Hr)   c                     U R                   R                  5        VVs0 s H.  u  pUR                  R                  5       UR                  5       _M0     snn$ s  snnf r6   )rJ   ro   rE   rp   r   r   s      r'   rE   ConstDictVariable.as_proxy  s@    :>**:J:J:LM:L$!-:LMMM   5Ac                 n    SSR                  S U R                  R                  5        5       5      -   S-   $ )N{, c              3      #    U  H4  u  pUR                   R                  5        S UR                  5        3v   M6     g7f)z: Nro   
debug_repr)r:   r   r   s      r'   r<   /ConstDictVariable.debug_repr.<locals>.<genexpr>  s4      EWTQ144??$%R'78EWs   <>})joinrJ   r   s    r'   r   ConstDictVariable.debug_repr  s?    ii EIZZEUEUEW  		
r)   c                     U R                   R                  5        VVs0 s H.  u  pUR                  R                  5       UR                  5       _M0     snn$ s  snnf r6   )rJ   ro   r~   r   s      r'   r~   $ConstDictVariable.as_python_constant  sS     

((*
* DD##%q';';'==*
 	
 
r   c                     U R                  5         U R                  R                  5        VVs0 s H   u  pUR                  R                  5       U_M"     snn$ s  snnf r6   )install_dict_keys_match_guardrJ   ro   r~   r   s      r'   keys_as_python_constant)ConstDictVariable.keys_as_python_constant%  sI    **,9=9I9I9KL9K'')1,9KLLLs   'Ac                     U R                   $ r6   )ri   r   s    r'   r}   ConstDictVariable.python_type)  s    }}r)   c                    [        U[        5      (       d   e[        R                  n[	        U5      =(       aN    U" U5      U R
                  ;   =(       a2    [        U R
                  U" U5         [        R                  5      (       + $ r6   )rA   r   rg   rx   r8   rJ   r
   DeletedVariable)rp   ro   r   s      r'   __contains__ConstDictVariable.__contains__,  sh    "o....$55O T

*Ttzz(2,79R9RSS	
r)   c                 V    [        S U R                  R                  5        5       5      $ )Nc              3   `   #    U  H$  n[        U[        R                  5      (       + v   M&     g 7fr6   )rA   r
   r   )r:   re   s     r'   r<   (ConstDictVariable.len.<locals>.<genexpr>6  s'      
BUQ
1i77888BUs   ,.)sumrJ   rM   r   s    r'   r   ConstDictVariable.len5  s)     
BF**BSBSBU
 
 	
r)   c                    ^  T R                   =(       d-    [        U 4S jT R                  R                  5        5       5      $ )Nc              3      >#    U  H<  u  pTR                  TR                  R                  UR                  5      U5      v   M>     g 7fr6   )is_new_itemr   r%   ro   )r:   r   rO   rp   s      r'   r<   2ConstDictVariable.has_new_items.<locals>.<genexpr>;  s?      2
0
 T0044SVV<eDD0s   AA)r   anyrJ   r   s   `r'   has_new_itemsConstDictVariable.has_new_items:  s7    ** 
c 2
"jj..02
 /
 	
r)   c                     U(       a]  UR                  5       (       aH  UR                  5       (       a3  [        UR                  5       5      [        UR                  5       5      :g  $ [        U5      [        U5      :g  $ r6   )rC   idrealize)rp   rO   r   s      r'   r   ConstDictVariable.is_new_item@  sU    U&&((U->->-@-@emmo&"U]]_*===%yBuI%%r)   c                 Z   SnU R                   R                  5        Hr  u  p4U R                  R                  UR                  5      nU R	                  XT5      (       d  U R
                  (       d  MS  U" UR                  5        U" U5        US-  nMt     UR                  [        SUS95        g )Nr   r   	BUILD_MAPr0   )rJ   r   r%   ro   r   r   append_outputr   )rp   codegennum_argsr   rO   items         r'   reconstruct_kvs_into_new_dict/ConstDictVariable.reconstruct_kvs_into_new_dictF  s    ****,JC&&**3662D,,0K0K0KA - 	0(KLr)   c                    ^ U R                   [        R                  L aB  TR                  U4S j5        U R	                  T5        TR                  [        SS5      5        g U R	                  T5        g )Nc                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )Nr   extend_outputcreate_load_python_moduler   create_load_attrr   s   r'   <lambda>/ConstDictVariable.reconstruct.<locals>.<lambda>V  s1    --99+F00?r)   r   F)ri   r   r   add_push_nullr   r   r   rp   r   s    `r'   reconstructConstDictVariable.reconstructR  s\    ==K333!! ..w7!!"6q%"@A..w7r)   r1   r    r0   c                     [         R                  U5      nX0R                  ;  a  [        [        U5        U R                  U   $ r6   )rg   rx   rJ   r   KeyError)rp   r1   r0   r   s       r'   'getitem_const_raise_exception_if_absent9ConstDictVariable.getitem_const_raise_exception_if_absentb  s6      005jj $Xr2zz#r)   c                     [         R                  U5      nX0R                  ;  a:  SUR                   S3n[	        SSUR                   3US/[
        R                  QS9  U R                  U   $ )NzDictionary key z not found during tracingzkey not found in dictzKey z>Check if the key exists in the dictionary before accessing it.gb_typecontextexplanationhints)rg   rx   rJ   rO   r   r   
USER_ERROR)rp   r1   r0   r   msgs        r'   getitem_constConstDictVariable.getitem_constj  sq    005jj #CII;.GHC/syyk*T&11	 zz#r)   c                 j    [         R                  U5      nX R                  ;  a  g U R                  U   $ r6   )rg   rx   rJ   )rp   r0   r   s      r'   maybe_getitem_const%ConstDictVariable.maybe_getitem_consty  s-    005jj zz#r)   c                 L   X;   d   e[         R                  U5      n[        U R                  R	                  5       5      R                  U5      n[        U R                  R	                  5       5      U   n[        U[        R                  5      (       a  UR                  5         g g r6   )rg   rx   ry   rJ   keysindexr   rA   r
   rB   r   )rp   r0   r   r  original_key_vts        r'   realize_key_vt ConstDictVariable.realize_key_vt  s    {{005djjoo'(..s3 3 3 8 8 :;EBoy'D'DEE##% Fr)   c                 x    U R                   (       a)  [        U R                  [        R                  5      5        g g r6   )r   r   
make_guardr   DICT_KEYS_MATCHr   s    r'   r   /ConstDictVariable.install_dict_keys_match_guard  s%    ;;$//,*F*FGH r)   c           
         SSK Jn  U R                  (       d  g UR                  R                  R                  U 5      (       a  g US   U ;   nUS   R                  ch  [        US   U5      (       aT  [        U R                  [        R                  " [        U 5      R                  US   R                  U(       + S95      5        g US   R                  (       a-  U(       a  U R                  US   5        g U R                  5         g g )Nr   r   r   )r   invert) r   r   outputside_effectsis_modifiedrA   r   r  	functoolspartialr#   CONTAINS_GUARDrO   r  r   )rp   r1   r,   r   containss        r'   install_dict_contains_guard-ConstDictVariable.install_dict_contains_guard  s     	'{{99!!--d337d?7>>!ja:J&K&K%%T
11 GMM#+| !W^^##DG,224	 r)   c           	      "  > SSK JnJn  [        R                  nU=(       a    [        US   5      nUS:X  a  [        R                  " [        5      R                  " U/UQ70 UD6n	UR                  R                  R                  U 5        U R                  R                  U	R                  5        UR                  " S 5      $ US:X  a.  [        U5      S:w  a  [!        X5        U R#                  XS   5      $ US:X  at  U(       d  U(       a  [!        X5        U R%                  5         U R&                  (       a/  UR                  R(                  R+                  U R&                  5        [-        U 5      $ US:X  av  [        U5      (       a  [!        X5        U R%                  5         U R&                  (       a/  UR                  R(                  R+                  U R&                  5        [/        U 5      $ US:X  a  U(       d  U(       a  [!        X5        U R%                  5         U R&                  (       a/  UR                  R(                  R+                  U R&                  5        U(       d  U(       a  [1        [2        U5        [5        U 5      $ US	:X  aZ  U R%                  5         U(       d  U(       a  [!        X5        U R7                  U R                  R9                  5       [;        5       S S
9$ US:X  aN  U(       d  U(       a  [!        X5        U R%                  5         UR                  " [        U R                  5      5      $ US:X  a  U R=                  5       (       a  U(       d  [?        US   5        U R%                  5         U(       d  [        U5      S:X  d   eUR                  R                  R                  U 5        US   U R                  U" US   5      '   UR                  " S 5      $ US:X  a  U(       a  U R=                  5       (       ar  U R%                  5         SU l         UR                  R                  R                  U 5        U R                  RC                  U" US   5      5        UR                  " S 5      $ US:X  a  [        U5      S;  a  [!        X5        U(       d  [?        US   5        US   U ;  a7  U RE                  X5        [        U5      S:X  a  UR                  " S 5      $ US   $ U RG                  XS   5      $ US:X  a  U R=                  5       (       a  [        U5      S;  a  [!        X5        U(       d  [?        US   5        US   U ;  a5  U RE                  X5        [        U5      S:X  a  [1        [H        U5        US   $ SU l         UR                  R                  R                  U 5        U R                  RK                  U" US   5      5      $ US:X  Ga  U R=                  5       (       Ga  [M        U RN                  [        5      (       aD  [M        U RN                  [P        RR                  5      (       d  [        U5      (       a  [!        X5        U R                  (       d!  UR                  " S5      n
[1        [H        X/S9  U RN                  [P        RR                  L a  [        U5      S:X  d  SU;   a  [        U5      S:X  a$  [U        US   U5      (       a  US   RV                  nO@URY                  S5      =n(       a  [U        X5      (       a  URV                  nO[!        X5        U R                  R[                  WS9u  pOU R                  R[                  5       u  pSU l         UR                  R                  R                  U 5        [        R\                  " UR^                  U/5      $ US:X  aq  U(       d  U(       a  [!        X5        SU l         UR                  R                  R                  U 5        U R                  Ra                  5         UR                  " S 5      $ US:X  Gal  U R=                  5       (       GaV  U R%                  5         [        U5      S:H  n[        U5      S:  nU(       d  U(       Ga  UR                  R                  R                  U 5        U(       ap  [U        US   [        5      (       a  US   R%                  5         US   nOURc                  U[        US   5      nU R                  R                  UR                  5        U(       aV  UR                  5        VVs0 s H  u  pU" UR                  " U5      5      U_M      nnnU R                  R                  U5        UR                  " S 5      $ [d        TU ]  XX45      $ US:X  a[  [        U5      (       d  [!        X5        U(       d  [?        US   5        U RE                  X5        US   U ;   nUR                  " U5      $ US:X  a  U R=                  5       (       a  [        U5      S;  a  [!        X5        U(       d  [?        US   5        U R%                  5         U(       a   e[        U5      S::  d   eU Ri                  US   5      nUb  U$ [        U5      S:X  a  UR                  " S 5      nOUS   nUR                  R                  R                  U 5        UU R                  U" US   5      '   U$ US:X  a  U R%                  5         UR                  R                  R                  U 5        US   U ;  a  [1        [H        U5        Sn[        U5      S:X  a#  [U        US   U5      (       a  US   RV                  nU(       a5  SU;   a/  [U        US   U5      (       a  URY                  S5      RV                  nU" US   5      nU R                  Rk                  UUS9  UR                  " S 5      $ US:X  ah  [m        U [        5      (       aS  [        U5      S:w  a  [!        X5        [        Rn                  " [p        Rr                  5      Ru                  XUS   /0 5      $ US:X  a2  UR                  " U Rg                  USX45      RV                  (       + 5      $ US:X  GaG  [        U5      S:X  d   eUS   n[m        U[        [        Rv                  45      (       dH  S U Ry                  5       Rz                   S!URy                  5       Rz                   S"3n
[1        [2        X/S9  U RN                  URN                  1n[}        S# U 5       5      (       a  [P        RR                  O[        nU R%                  5         U R7                  U R                  R9                  5       [;        5       S US$9nUS   R%                  5         UR                  R                  US   R                  5        U$ US%:X  a  U Rg                  USX45        U $ [d        TU ]  XX45      $ s  snnf )&Nr   )rT   r   r   rq   __getitem__rJ   r  rM   r   )rJ   mutation_typer   __len____setitem__r   __delitem__Tr%   )r   r   r   popitemzpopitem(): dictionary is emptyr+   last)r-  clearupdater   
setdefaultmove_to_endr   __ne____or__z$unsupported operand type(s) for |: 'z'and ''c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr6   )
issubclassr   r   )r:   ts     r'   r<   0ConstDictVariable.call_method.<locals>.<genexpr>  s      Jr!z![%<%<==rs   '))rJ   r(  r   ri   __ior__)?r  rT   r   rg   rx   r8   r
   r   	call_dictr  r  mutationrJ   r/  creater   r   r  r   r   guard_on_key_orderaddDictItemsVariableDictKeysVariabler   r/   DictValuesVariablecloner   r   
is_mutabler2   r   r+  r$  r  r   r   r6  ri   r   r   rA   rO   r%   r,  rH   ro   r.  call_custom_dictr   call_methodr  r1  r   rY   r	   dict___eq__call_functionUserDefinedDictVariabler}   r   r   )rp   r1   namer,   r   rT   r   r   arg_hashabletemp_dict_vtr
  r-  r   r   has_arg
has_kwargsdict_vtr#  rO   re   r   r   tsri   new_dict_vtr   s                            r'   rE  ConstDictVariable.call_method  sV    	8$554DG 4:$44T:DD#L II""++D1JJl001#**400]"4yA~#B-??GLLW_v#B-..0{{		,,00=$T**V^4yy#B-..0{{		,,00=#D))Xv#B-..0{{		,,00=v(B7%d++V^..0v#B-::jjoo'7G7IRV    Yv#B-..0#**3tzz?;;]"t'8'8 a)..0#d)q.00II""++D1,0GDJJxQ()#**400]"|8I8I..0*.D'II""++D1JJ""8DG#45#**400U]4y&#B- a)Awd"00:t9>+22488Aw%%bq'22U]t004y&#B- a)Awd"00:t9>,Xr:Aw*.D'II""++D1::>>(47"344Y4??#4#44==$//"4==+2I2IJJII#B-::&--.NO(2EB}} 7 77D	Q&F"2t9>ja:J&K&K7==D!::f--a-:a3R3R77D'1zz))t)41zz))+*.D'II""++D1**ADD!955W_v#B-*.D'II""++D1JJ#**400X$//"3"3 ..0$i1nGVqJ*		&&//5!$q'+<== Q==?"&q'"1"B"B2tTRSW"UJJ%%gmm4 %+LLN$2DA !!1!8!8!;<a?$2   JJ%%f-'..t44w*2TBB^#t99#B- a),,R6Aw$H#**844\!doo&7&74y&#B- a)..0:t9>!>,,T!W5E t9>(//5AQA		&&//501

8DG,-]"..0II""++D1Awd"(26D4yA~*T!W6F"G"GAw}} f$vf~/?@@zz&)//47#CJJ""3T"2#**400X&##
 #
 4yA~#B-11)2G2GHVV47OR  X#**$$R4@FFF  Xt9>!>GE& )9+L+LM  ;4;K;K;M;V;V:W X!--/889<  )BUC --0B JrJJJ ''  ..0**jjoo'.0!	 % K G113$$T!W]]3YR48K7&r>>s   8%xc                     U R                  5         U R                  R                  5        Vs/ s H  o"R                  PM     sn$ s  snf r6   )r   rJ   r  ro   )rp   r1   re   s      r'   unpack_var_sequence%ConstDictVariable.unpack_var_sequence  s5    **,"jjoo/0//000s   Ac                 (   U R                   [        L aE  X R                   R                  ;   a  [        R                  " S5      $ [        R                  " S5      $ SU R                    S3n[        SSU R                    3US/[        R                  QS9  g )	NTFzhasattr on z is not supportedzunsupported hasattr operationzClass z+Consider using a regular dictionary insteadr  )ri   r   r$   r   r<  r   r   SUPPORTABLE)rp   r1   rI  r
  s       r'   call_obj_hasattr"ConstDictVariable.call_obj_hasattr  s     ==D }}---'..t44#**511DMM?*;<3T]]O,="..		
r)   c                 D   > U R                  5         [        TU ]  " S0 UD6$ Nr   )r   r   rB  )rp   r   r   s     r'   rB  ConstDictVariable.clone  s!    **,w}&v&&r)   )rJ   r   r   ri   r   r   r,   zlist[VariableTracker]r   zdict[str, VariableTracker]rm   r   )&r   r   r   r   r   DICT_CONTAINSr"  r   _nonvar_fieldsrx   r   rq   r   rE   r   r~   r   r}   r   r   rR   r   r   r   r   r   r  r  r  r  r   r$  rE  rS  rW  rB  r   __classcell__r   s   @r'   rg   rg      s@   !//N 			'	'N
SC SCp !!O_45!!
 
!! !!F&N

M
$ 

S 


t 
&
M8 )0? 7 o  &/ &I%5Ni? &	i?
 -i? 
i?V	1
&' 'r)   rg   c                   p   ^  \ rS rSrS\SS4U 4S jjrS rS rSS jrS	\	S
   S\
\S
4   SS
4S jrSrU =r$ )MappingProxyVariablei  dv_dictrm   Nc                 `   > [         TU ]  " S0 UD6  [        U[        5      (       d   eXl        g rZ  )r   rq   rA   rg   rd  rp   rd  r   r   s      r'   rq   MappingProxyVariable.__init__  s,    "6"'#45555r)   c                 "    [         R                  $ r6   )typesMappingProxyTyper   s    r'   r}    MappingProxyVariable.python_type  s    %%%r)   c                 8    U R                   R                  U5      $ r6   )rd  rS  rp   r1   s     r'   rS  (MappingProxyVariable.unpack_var_sequence  s    ||//33r)   c                    ^ U R                   (       a:  SU R                    S3n[        SSU R                    3US/[        R                  QS9  TR	                  U4S j5        T" U R
                  5        TR                  [        SS	5      5        g )
Nz*Preexisting MappingProxyVariable (source: zS) cannot be reconstructed because the connection to the original dict will be lost.z%mapping proxy cannot be reconstructedSource: zCUse a mapping proxy constructed in the same `torch.compile` region.r  c                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )Nrj  )r   r   ri  r   r   s   r'   r   2MappingProxyVariable.reconstruct.<locals>.<lambda>  s2    G))55e<,,-?@r)   r   F)r   r   r   rV  r   rd  r   r   )rp   r   r
  s    ` r'   r    MappingProxyVariable.reconstruct  s    ;;<T[[M JL L  ?"4;;-0Y&22	 		
 	21e<=r)   r,   r   r   c                     U R                   (       aG  UR                  R                  R                  5       (       a  Sn[	        SSU R                    S3USS/S9  U R
                  R                  XX45      $ )Na  A dict has been modified while we have an existing mappingproxy object. A mapping proxy object, as the name suggest, proxies a mapping object (usually a dict). If the original dict object mutates, it is reflected in the proxy object as well. For an existing proxy object, we do not know the original dict it points to. Therefore, for correctness we graph break when there is dict mutation and we are trying to access a proxy object.z-mapping proxy affected by dictionary mutationrp  z, Dict mutation detectedzNAvoid modifying dictionaries that might be referenced by mapping proxy objectszROr avoid using the mapping proxy objects after modifying its underlying dictionaryr  )r   r  r  has_existing_dict_mutationr   rd  rE  )rp   r1   rI  r,   r   r
  s         r'   rE   MappingProxyVariable.call_method"  sr     ;;29911LLNN7  G"4;;-/GHdh	 ||''$??r)   rd  r\  )r   r   r   r   rg   rq   r}   rS  r   listr   strrE  r   r`  ra  s   @r'   rc  rc    sd     1  
&4>6@ $%	@
 S++,@ 
@ @r)   rc  c                        \ rS rSrS rS rSrg)NNModuleHooksDictVariablei@  c                     g r6   r   r   s    r'   r   7NNModuleHooksDictVariable.install_dict_keys_match_guardB      r)   c                     g r6   r   rp   r1   r,   s      r'   r$  5NNModuleHooksDictVariable.install_dict_contains_guardE  r~  r)   r   N)r   r   r   r   r   r$  r   r   r)   r'   r{  r{  @  s    r)   r{  c                   z   ^  \ rS rSrS	S
U 4S jjjrU 4S jrU 4S jr\S 5       r      SU 4S jjr	S r
SrU =r$ )DefaultDictVariableiI  c                 ^   > [         TU ]  " X40 UD6  U[        R                  L d   eX0l        g r6   )r   rq   r   r   default_factory)rp   rJ   ri   r  r   r   s        r'   rq   DefaultDictVariable.__init__J  s/    3F3;22222.r)   c                    > U R                   [        [        [        4;  a  U R                  (       d  g[
        TU ]  5       $ )NF)r  rx  ry   r   rJ   r   is_python_constantrp   r   s    r'   r  &DefaultDictVariable.is_python_constantO  s1     eT'::4::w)++r)   c                 ^   > SU R                   R                  5        S[        TU ]  5        S3$ )Nzdefaultdict(r   ))r  r   r   r  s    r'   r   DefaultDictVariable.debug_reprV  s4    4//::<=R@R@T?UUVW	
r)   c                     [        U [        R                  5      (       a#  U R                  [        [
        [        [        4;   $ [        U [        R                  R                  5      $ r6   )
rA   r
   rT   fnrx  ry   r   set	functionsBaseUserFunctionVariabler   s    r'   is_supported_arg$DefaultDictVariable.is_supported_arg[  sF    c9445566dE4555c9#6#6#O#OPPr)   c                 0  > US:X  a  [        U5      S:X  d   eUS   U ;   a  U R                  XS   5      $ U R                  c  [        US    5      eU R                  R	                  U/ 0 5      n[
        TU ]  USUS   U4U5        U$ [
        TU ]  XX45      $ )Nr'  r   r   r*  )r   r  r  r   rG  r   rE  )rp   r1   rI  r,   r   default_varr   s         r'   rE  DefaultDictVariable.call_methodb  s     = t9>!>Aw$))"1g66''/"d1gY00"&"6"6"D"DRR"PKG'MDG[+A6 '&7&r>>r)   c                    ^ TR                  U4S j5        T" U R                  5        U R                  T5        TR                  [	        SS5      5        g )Nc                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )Nr   r   r   s   r'   r   1DefaultDictVariable.reconstruct.<locals>.<lambda>}  s1    G))55kB,,];r)   r   F)r   r  r   r   r   r   s    `r'   r   DefaultDictVariable.reconstructz  sJ    	
 	$$%**7321e<=r)   )r  r6   r   r]  )r   r   r   r   rq   r  r   r   r  rE  r   r   r`  ra  s   @r'   r  r  I  sZ    / /
,

 Q Q? &	?
 -? 
?0> >r)   r  c                      ^  \ rS rSrSr\R                  rS\\	   SS4U 4S jjr
S r\S 5       r\S	 5       rS
 rS rS rSS jrS rS\\	   S\\\	4   SS4U 4S jjrSSS\	4S jrS rU 4S jrSrU =r$ )SetVariablei  z.We model a sets as dictionary with None valuesrJ   rm   Nc                 x   > [         R                  U[        R                  5       5      n[        TU ]  " U40 UD6  g r6   )r   fromkeysr  _default_valuer   rq   rp   rJ   r   r   s      r'   rq   SetVariable.__init__  s0    
 e[%?%?%AB)&)r)   c                     U R                   (       d  gSSR                  S U R                   R                  5        5       5      -   S-   $ )Nzset()r   ,c              3   T   #    U  H  oR                   R                  5       v   M      g 7fr6   r   r:   r   s     r'   r<   )SetVariable.debug_repr.<locals>.<genexpr>       !O=N$$//"3"3=N   &(r   rJ   r   r  r   s    r'   r   SetVariable.debug_repr  s7    zz!OTZZ__=N!OOORUUUr)   c                 H    [        U R                  R                  5       5      $ r6   )r  rJ   r  r   s    r'   	set_itemsSetVariable.set_items  s    4::??$%%r)   c                  .    [         R                  " S 5      $ r6   )r   r<  r   r)   r'   r  SetVariable._default_value  s      &&t,,r)   c                 t    U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r6   )r  ro   rE   rp   r   s     r'   rE   SetVariable.as_proxy  s&    )-8A888   #5c                     [         $ r6   )r  r   s    r'   r}   SetVariable.python_type  s    
r)   c                 t    U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r6   )r  ro   r~   r  s     r'   r~   SetVariable.as_python_constant  s)    37>>B>a'')>BBBr  c                     UR                  U R                   Vs/ s H  o"R                  PM     sn5        UR                  [	        S[        U R                  5      S95        g s  snf )N	BUILD_SETr   )foreachr  ro   r   r   r   rp   r   re   s      r'   r   SetVariable.reconstruct  sG    t~~6~!~670#dnnBUVW 7s   A#c                     U" U /UQ Vs/ s H  oUR                  5       PM     sn0 UR                  5        VVs0 s H  u  pgXgR                  5       _M     snnD6n[        R                  " UW5      $ s  snf s  snnf ! [         aI  n	[        [	        U	5      U[        [        [        R                  U	R                  5      5      S9   S n	A	NpS n	A	ff = f)Nr+   )r~   rJ   	Exceptionr   r#   rx  mapr   r<  r,   r   build)
rp   r1   r  r,   r   re   r   r   resexcs
             r'   _fast_set_methodSetVariable._fast_set_method  s    	37-$-@-Q&&(-@9?H1**,,HC $$R-- AH 	$S	2D-=-D-Dchh)O$P	s2   	A> A3A> A8A> 3A> >
C?CCr,   r   r   c                 (  > SSK Jn  US;   aP  U" X45      (       aC  U R                  5       [        L a,  U R                  5       nU R	                  U[        Xb5      X45      $ US:X  a  [        R                  " [        5      R                  " U/UQUQ76 nUR                  R                  R                  U 5        U R                  R                  5         U R                  R                  UR                  5        [        R                   " S 5      $ US:X  a@  U(       a   e[#        U5      S:w  a  [%        X5        SnUS   [&        R)                  5       4nGOUS	:X  aK  U(       a   eU(       a   e U R*                  R-                  5       R.                  n[:        TU ]y  XW4U5        U$ US:X  a\  [#        U5      S:w  a  [%        X5        U(       a   e[        R>                  " [@        RB                  5      RE                  XUS   /0 5      $ US:X  a@  U(       a   e[        R>                  " [@        RF                  5      RE                  X/UQ0 5      $ US:X  a@  U(       a   e[        R>                  " [@        RH                  5      RE                  X/UQ0 5      $ US:X  a@  U(       a   e[        R>                  " [@        RJ                  5      RE                  X/UQ0 5      $ US:X  a@  U(       a   e[        R>                  " [@        RL                  5      RE                  X/UQ0 5      $ US:X  a@  U(       a   e[        R>                  " [@        RN                  5      RE                  X/UQ0 5      $ US:X  aZ  [#        U5      S:w  a  [%        X5        U(       a   e[        R>                  " [@        RP                  5      RE                  X/UQ0 5      $ US:X  aZ  [#        U5      S:w  a  [%        X5        U(       a   e[        R>                  " [@        RR                  5      RE                  X/UQ0 5      $ US:X  aU  U RU                  5       (       a@  U(       a   e[        R>                  " [@        RV                  5      RE                  X/UQ0 5      $ US:X  aB  U(       a   e[#        U5      S:X  d   eUS   U ;  a  [3        [0        XS
9  [:        TU ]y  US	X45      $ US:X  aH  U(       a   e[#        U5      S:X  d   eUS   U ;   a  [:        TU ]y  US	X45      $ [        R                   " S S9$ US;   a  [#        U5      S:w  a  [%        X5        [X        RZ                  [X        R\                  S.n
US   R_                  5       n[a        U[&        5      (       d+  [        R                  " [        5      RE                  X/0 5      n[        R                  " U
Rc                  U5      5      RE                  XU/0 5      $ US;   a  SSSSS.Rc                  U5      n[e        US   [&        [        Rf                  45      (       dN  [        R                   " SU SU Ri                  5        SUS   Ri                  5        S35      n[3        [j        X/S
9  U R=                  XX45      $ US;   a  [e        US   [&        [        Rf                  45      (       dN  [        R                   " SU SU Ri                  5        SUS   Ri                  5        S35      n[3        [j        X/S
9  SSSSS.Rc                  U5      nU R=                  XX45        U $ US:X  a}  [e        US   [&        [        Rf                  45      (       d  [        R                   " S5      $ U R=                  USX45      n[        R                   " [#        UR*                  5      S:H  5      $ U[l        ;   a}  [e        US   [&        [        Rf                  45      (       d  [        R                   " [n        5      $ [        R                   " [l        U   " U R*                  US   R*                  5      5      $ [:        TU ]y  XX45      $ ! [0         aE  n	[3        [0        U[5        [7        [        R                   U	R8                  5      5      S
9   S n	A	GNS n	A	ff = f) Nr   )check_constant_args)
isdisjointunionintersection
differencesymmetric_differencerq   r>  r   r*  r   r   r+   r  r  intersection_updater  r  difference_updater  symmetric_difference_updater/  removediscard)rO   )issubset
issuperset)__and__r3  __xor____sub__z unsupported operand type(s) for z: 'z' and 'r4  )__iand__r9  __ixor____isub__r   F)8utilsr  r}   r  r  getattrr
   rT   call_setr  r  r;  rJ   r.  r/  r   r<  r   r   r  r  r  r   ro   r   r   rx  r  r,   r   rE  rY   r	   set_isdisjointrG  set_intersectionset_intersection_update	set_unionset_differenceset_difference_updateset_symmetric_differenceset_symmetric_difference_updaterC  
set_updateoperatorleger   r   r%   rA   UserDefinedSetVariablepython_type_namer/   r   NotImplemented)rp   r1   rI  r,   r   r  py_typetemp_set_vtresultr;   opr   mr
  rr   s                  r'   rE  SetVariable.call_method  s    	0  $D11  "c)&&(G((WW-CTRR:#33C8AA"UtUfUKII""++D1JJJJk//0#**400U]:4yA~#B- DG[779:DU]:O8++-00
 G6)V<M\!4yA~#B-:11((mBtAw45 ^#:11**mBr23 **:1111mBr23 W_:11)2E2EFTTMDM2  \!:11((mBr23 ((:11//mBr23 ++4yA~#B-:1122mBr23 224yA~#B-:1199mBr23 X$//"3"3:11)2F2FGUUMDM2  X:t9>!>Awd"(2A7&r5$??Y:t9>!>Aw$w*2udCC'..T:://4yA~#B- %KK&kkB GOO%E%--!11#6DDRRTU,,RVVD\:HH5M2  @@)!1'	
 c$i  d1gY5U5U'VWW&--6tfC@U@U@W?XX_`def`g`x`x`z_{{|} )BUC##B488DDd1gY5U5U'VWW&--6tfC@U@U@W?XX_`def`g`x`x`z_{{|} )BUC1#9/	
 c$i  RD1KXd1gY5U5U'VWW'..u55  %;TJA#**3q{{+;q+@AA++d1gY5U5U'VWW'..~>>#**&t,T^^T!W=N=NO  w"2T::u  (btC0@0G0G,P'Q s   *$a 
b:bbr1   r    r0   c                     [        S5      e)NzIllegal to getitem on a set)RuntimeError)rp   r1   r0   s      r'   r  SetVariable.getitem_consth  s    899r)   c                     g r6   r   r   s    r'   r   )SetVariable.install_dict_keys_match_guardk      r)   c                 $   > [         TU ]  X5        g r6   )r   r$  )rp   r1   r,   r   s      r'   r$  'SetVariable.install_dict_contains_guardo  s    +B5r)   r   r\  )r   r   r   r   r   r   SET_CONTAINSr"  rx  r   rq   r   r   r  r   r  rE   r}   r~   r   r  r   ry  rE  r  r   r$  r   r`  ra  s   @r'   r  r    s    8!..N*O$* 
	*V & & - -9CX
.e; ?#	e;
 S/)*e; 
e;N: 7 :o :6 6r)   r  c                      ^  \ rS rSrS\\   SS4U 4S jjrS r\S 5       r	S r
S	 rSS
 jrS\\   S\\\4   SS4U 4S jjrSrU =r$ )rW   is  rJ   rm   Nc                 (   > [         TU ]  " U40 UD6  g r6   r   rq   r  s      r'   rq   FrozensetVariable.__init__t      
 	)&)r)   c                     U R                   (       d  gSSR                  S U R                   R                  5        5       5      -   S-   $ )Nzfrozenset()r   r  c              3   T   #    U  H  oR                   R                  5       v   M      g 7fr6   r   r  s     r'   r<   /FrozensetVariable.debug_repr.<locals>.<genexpr>  r  r  r   r  r   s    r'   r   FrozensetVariable.debug_repr{  s7    zz !OTZZ__=N!OOORUUUr)   c                 6    U R                   R                  5       $ r6   )rJ   r  r   s    r'   r  FrozensetVariable.set_items  s    zz  r)   c                     [         $ r6   )	frozensetr   s    r'   r}   FrozensetVariable.python_type      r)   c                     [        U R                   Vs1 s H  oR                  R                  5       iM     sn5      $ s  snf r6   )r  r  ro   r~   r  s     r'   r~   $FrozensetVariable.as_python_constant  s.    T^^L^$$113^LMMLs   #>c                    ^ TR                  U R                   Vs/ s H  o"R                  PM     sn5        TR                  U4S j5        TR	                  [        SS5      5        g s  snf )Nc                  F   > T R                  T R                  S5      /5      $ )Nr  )r   create_load_globalr   s   r'   r   /FrozensetVariable.reconstruct.<locals>.<lambda>  s#    G))..{;r)   r   F)r  r  ro   r   r   r   r  s    ` r'   r   FrozensetVariable.reconstruct  sT    t~~6~!~67	
 	21e<= 7s   A(r,   r   r   c                    > US;   a  [        SU S35      eUS:X  a  [        R                  " S 5      $ US;   a%  [        TU ]  XX45      n[        UR                  5      $ [        TU ]  XX45      $ )Nr>  r   r/  r  r  r.  Illegal call_method z on a frozensetrq   )r   r  r  r  )r  r   r<  r   rE  rW   rJ   )rp   r1   rI  r,   r   r  r   s         r'   rE  FrozensetVariable.call_method  s     II!5dV?KLLZ $**400 
 
 #Bd;A$QWW--w"2T::r)   r   r\  )r   r   r   r   rx  r   rq   r   r   r  r}   r~   r   r   ry  rE  r   r`  ra  s   @r'   rW   rW   s  s    *O$* 
	*V ! !N	>; ?#	;
 S/)*; 
; ;r)   rW   c                      ^  \ rS rSrS\\   SS4U 4S jjrS rS rS r	\
S	 5       rS
 rS rS\\   S\\\4   SS4U 4S jjrSrU =r$ )DictKeySetVariablei  rJ   rm   Nc                 (   > [         TU ]  " U40 UD6  g r6   r  r  s      r'   rq   DictKeySetVariable.__init__  r   r)   c                     U R                   (       d  gSSR                  S U R                   R                  5        5       5      -   S-   $ )Nzdict_keys([])zdict_keys([r  c              3   T   #    U  H  oR                   R                  5       v   M      g 7fr6   r   r  s     r'   r<   0DictKeySetVariable.debug_repr.<locals>.<genexpr>  s     H6G44??,,6Gr  z])r  r   s    r'   r   DictKeySetVariable.debug_repr  sA    zz" ((Hdjjoo6GHHIr)   c                     g r6   r   r   s    r'   r   0DictKeySetVariable.install_dict_keys_match_guard  r  r)   c                     g r6   r   r  s      r'   r$  .DictKeySetVariable.install_dict_contains_guard  r  r)   c                     U R                   $ r6   )rJ   r   s    r'   r  DictKeySetVariable.set_items  s    zzr)   c                     [         $ r6   r   r   s    r'   r}   DictKeySetVariable.python_type  r
  r)   c                     [         R                  U R                   Vs1 s H  oR                  R	                  5       iM     snS 5      R                  5       $ s  snf r6   )r   r  r  ro   r~   r  r  s     r'   r~   %DictKeySetVariable.as_python_constant  s@    }}04?1TT$$&?

$&	?s   #Ar,   r   r   c                 N   > US;   a  [        SU S35      e[        TU ]	  XX45      $ )Nr  r  z on a dict_keys)r  r   rE  rp   r1   rI  r,   r   r   s        r'   rE  DictKeySetVariable.call_method  s5     II!5dV?KLLw"2T::r)   r   )r   r   r   r   rx  r   rq   r   r   r$  r   r  r}   r~   r   ry  rE  r   r`  ra  s   @r'   r  r    s    *O$* 
	*  
	; ?#		;
 S/)*	; 
	; 	;r)   r  c                      ^  \ rS rSr% SrSr\\   \S'   S\	SS4U 4S jjr
\S 5       r\S	 5       rS
 rSS jrS rS\S   S\\S4   SS4U 4S jjrSrU =r$ )DictViewVariablei  zi
Models _PyDictViewObject

This is an "abstract" class. Subclasses will override kv and the items method
Nkvrd  rm   c                    > [         TU ]  " S0 UD6  U R                  S;   d   e[        U[        5      (       d   eXl        g )N)r  rM   rJ   r   )r   rq   r.  rA   rg   rd  rf  s      r'   rq   DictViewVariable.__init__  s?    "6"ww5555'#45555r)   c                 `    [        U R                  R                  U R                  5      " 5       $ r6   )r  rd  rJ   r.  r   s    r'   
view_itemsDictViewVariable.view_items  s     t||))477355r)   c                     [         er6   )NotImplementedErrorr   s    r'   view_items_vtDictViewVariable.view_items_vt  s
     "!r)   c                     U R                   $ r6   )r6  rm  s     r'   rS  $DictViewVariable.unpack_var_sequence  s    !!!r)   c                     U" U R                   5        UR                  U R                  5        UR                  S5        g )Nr   )rd  load_methodr.  rE  r   s     r'   r   DictViewVariable.reconstruct  s.    DGG$Ar)   c                     X R                  5       R                  ;   a  [        R                  " S5      $ [        R                  " S5      $ )NTF)r}   r$   r   r<  )rp   r1   rI  s      r'   rW  !DictViewVariable.call_obj_hasattr  s9    ##%...#**400&&u--r)   r,   r   r   c                 h   > US:X  a  U R                   R                  XX45      $ [        TU ]  XX45      $ )Nr)  )rd  rE  r   r*  s        r'   rE  DictViewVariable.call_method  s6     9<<++BdCCw"2T::r)   rw  r\  )r   r   r   r   r   r.  r   ry  __annotations__rg   rq   r   r2  r6  rS  r   rW  rx  r   rE  r   r`  ra  s   @r'   r-  r-    s     B 1   6 6 " "
"
.
	; $%		;
 S++,	; 
	; 	;r)   r-  c                   r   ^  \ rS rSrSr\S 5       r\S 5       rS rS\	S   S\
\S4   S	S4U 4S
 jjrSrU =r$ )r@  i  r  c                 ,    [        U R                  5      $ r6   )r  r2  r   s    r'   r  DictKeysVariable.set_items  s    4??##r)   c                 X    U R                    Vs/ s H  oR                  PM     sn$ s  snf r6   )r2  ro   )rp   re   s     r'   r6  DictKeysVariable.view_items_vt  s"     #oo.oo...s   'c                     [         $ r6   r%  r   s    r'   r}   DictKeysVariable.python_type#  r
  r)   r,   r   r   rm   c                   > US:X  a  U R                   R                  XX45      $ US;   a6  [        U R                  U5      nU" US   R                  5      n[	        U5      $ U[
        ;   as  [        US   [        [        45      (       d  [        R                  " [        5      $ [        R                  " [
        U   " U R                  US   R                  5      5      $ [        TU ]  XX45      $ )Nr   )r  r  r3  r9  r  r  r  r  r   )rd  rE  r  r  r  r   rA   r@  r   r<  r  r   )rp   r1   rI  r,   r   r  r  r   s          r'   rE  DictKeysVariable.call_method&  s     >!<<++BdCC 	
 	
 -A$q'##$Aq>!))d1g5E'FGG'..~>>#**&t,T^^T!W=N=NO  w"2T::r)   r   )r   r   r   r   r.  r   r  r6  r}   rx  r   ry  rE  r   r`  ra  s   @r'   r@  r@    sl    	B$ $ / /; $%	;
 S++,; 
; ;r)   r@  c                   .    \ rS rSrSr\S 5       rS rSrg)rA  iF  rM   c                 ,    [        U R                  5      $ r6   )rx  r2  r   s    r'   r6   DictValuesVariable.view_items_vtJ  s    DOO$$r)   c                     [         $ r6   )r   r   s    r'   r}   DictValuesVariable.python_typeN  s    r)   r   N	r   r   r   r   r.  r   r6  r}   r   r   r)   r'   rA  rA  F  s    	B% %r)   rA  c                   .    \ rS rSrSr\S 5       rS rSrg)r?  iR  rJ   c                     U R                    VVs/ s H'  u  p[        R                  " UR                  U/5      PM)     snn$ s  snnf r6   )r2  r
   rH   ro   r   s      r'   r6  DictItemsVariable.view_items_vtU  s7     @DOtq	''q	2OOOs   .Ac                     [         $ r6   )r   r   s    r'   r}   DictItemsVariable.python_typeZ  s    r)   r   NrP  r   r)   r'   r?  r?  R  s     	BP Pr)   r?  r6   )<r   r   r   rP   r  ri  collections.abcr   rS   typingr   r   torch._subclasses.fake_tensorr   r  r   r	   r
   bytecode_transformationr   r   r  r   r   guardsr   r   r   r   r  r   r   r   r   r   r   r   r   r   r   constantr   torch._dynamo.codegenr   r-   r    r(   r2   r8   rg   rc  r{  r  r  rW   r  r-  r@  rA  r?  r   r)   r'   <module>r]     s  (      3 * 1 6 6 N < 0 )   4 & /D>2
jw	' w	'tC@? C@L 1 =>+ =>Fd6# d6N=; =;@/; /;d/; /;d,;' ,;^	) 		( 	r)   