
    7hZ                     j   S r SSKrSSKrSSKrSSKJrJr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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\5      r " S S\5      r  " S S\ 5      r! " S S\ 5      r" " S S\ 5      r# " S S\ 5      r$ " S S\$5      r% " S S\ 5      r&g)a  
This module provides iterator-related variable tracking functionality for Dynamo.
It implements variable classes for handling Python iterators and itertools functions
during symbolic execution and tracing.

The module includes:
- Base iterator variable classes for tracking iterator state
- Implementations of built-in iterators (zip, map, filter)
- Support for itertools functions (product, accumulate, combinations, etc.)
- Mutation tracking and reconstruction capabilities for iterator operations

These classes integrate with Dynamo's variable tracking system to enable proper
handling of iterator operations during code transformation and optimization.
    N)OptionalTYPE_CHECKINGUnion   )graph_break_hints	polyfills	variables)create_call_functioncreate_instruction)handle_observed_exceptionObservedUserStopIterationraise_observed_exceptionunimplemented_v2	UserError   )ValueMutationNewVariableTracker)ConstantVariable)	PyCodegen)InstructionTranslatori  c                   `   ^  \ rS rSrSU 4S jjrS\4S jrS r        S	U 4S jjrSr	U =r
$ )
ItertoolsVariable,   returnc                 2   > [         TU ]  " S0 UD6  Xl        g N )super__init__value)selfr    kwargs	__class__s      V/var/www/fran/franai/venv/lib/python3.13/site-packages/torch/_dynamo/variables/iter.pyr   ItertoolsVariable.__init__-   s    "6"
    c                 "    SU R                    S3$ )NzItertoolsVariable()r    r!   s    r$   __repr__ItertoolsVariable.__repr__1   s    #DJJ<q11r&   c                     U R                   $ Nr)   r*   s    r$   as_python_constant$ItertoolsVariable.as_python_constant4   s    zzr&   c                   >^ ^^^^ T R                   [        R                  L a  T(       d  [        U4S jT 5       5      (       a}  T Vs/ s H  oDR	                  T5      PM     nn[        R                  " U6  Vs/ s H"  n[
        R                  " [        U5      5      PM$     nn[
        R                  " U[        5       S9$ T R                   [        R                  L Ga  SSKJn  [        S TR                  5        5       5      (       aS  [        SST  ST ST 3S	S
R!                  [#        TR                  5       5      SS1-
  5       3/ [$        R&                  QS9  [)        T5      S;   a  TS   R+                  T5      (       a  TS   R	                  T5      n	ST;   a  [)        T5      S:X  a  TS   R,                  n
O[)        T5      S:X  a  TS   R,                  n
O[)        T5      S:X  a!  U" [.        R0                  5      R,                  n
OS[        SST  ST ST 3S/ [$        R&                  QS9  O-[        SST  ST ST 3ST ST S3S/[$        R2                  QS9  / nTR5                  S5      nUb  UR7                  U5        W	 H&  nUc  UnO W
" TX/0 5      nUR7                  U5        M(     [
        R                  " U[        5       S9$ T R                   [        R<                  L a  T(       d  [)        T5      S:X  a  TS   R+                  T5      (       a  TS   R?                  5       (       a  TS   R	                  T5      nTS   RA                  5       n/ n[        R<                  " X5       H1  nUR7                  [
        R                  " [        U5      5      5        M3     [
        R                  " U[        5       S9$ T R                   [        RB                  L Ga  [        S TR                  5        5       5      (       aR  [        SST  ST ST 3SS
R!                  [#        TR                  5       5      S 1-
  5       3/ [$        R&                  QS9  UUU 4S! jm[)        T5      S:X  a.  TS   R+                  T5      (       a  TS   R	                  T5      n	O-[        S"ST  ST ST 3S#T ST S$3S%/[$        R2                  QS9  S T;   a	  UUU4S& jnOU4S' jn/ n [        RB                  " W	US(9 H  u  nnUR7                  [
        R                  " [
        RD                  RG                  U5      (       a  [
        RD                  RI                  U5      OU[
        R                  " [        U5      [        5       S9/[        5       S95        M     [
        R                  " U[        5       S9$ T R                   [        RJ                  L ac  [)        T5      S:  a  [
        RL                  " TS+[        5       06$ TRO                  [P        RR                  " T[T        RJ                  5      TT5      $ T R                   [        RV                  L a  [
        RX                  " TS+[        5       06$ T R                   [        RZ                  L a  [
        R\                  " TS+[        5       06$ [^        TT ]Y  TTT5      $ s  snf s  snf ! [8         a:  n[        SST  ST ST 3SW
 SU U S3/ [$        R:                  QUS9   S nAGNgS nAff = f! [8         a1  n[        S)ST  ST ST 3S*/ [$        R2                  QUS9   S nAGNS nAff = f),Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr.   )has_unpack_var_sequence).0argtxs     r$   	<genexpr>2ItertoolsVariable.call_function.<locals>.<genexpr>B   s     Dt//33ts    )mutation_typer   )BuiltinVariablec              3   *   #    U  H	  oS ;  v   M     g7f))initialfuncNr   )r4   keys     r$   r7   r8   N   s     K]c11]   z+Unsupported kwargs for itertools.accumulatecall_function  z,Expected kwargs: 'initial', 'func', but got ,r<   r=   gb_typecontextexplanationhints)r   r   r   r   z*Unsupported `func` in itertools.accumulatezDynamo does not know how to get the function to use for itertools.accumulate. itertools.accumulate expects the `func` as the second argument or as a keyword argument.z.Unsupported arguments for itertools.accumulatezBDynamo does not know how to trace itertools.accumulate with args: z and kwargs: z. itertools.accumulate expects an iterable, an optional binary function for accumulation, and an optional initial value to set the starting state.z<Make sure the arguments to itertools.accumulate are correct.z:Unexpected failure during itertools.accumulate() iterationzOUnexpected failure in invoking function during accumulate. Failed running func (r(   )rD   rE   rF   rG   from_excc              3   *   #    U  H	  oS :g  v   M     g7f)r>   Nr   )r4   kws     r$   r7   r8      s     72;r?   z(Unsupported kwargs for itertools.groupbyz Expected kwargs: 'key', but got r>   c           
      8  > [        U [        R                  5      (       a  U R                  5       $ [        U [        R                  5      (       a  U R                  5       $ [        SST ST ST 3S[        [        U 5      5       S3/ [        R                  QS9  g )Nz*Unsupported key type for itertools.groupbyr@   rA   zCDynamo does not know how to trace itertools.groupby with key type: zJ. We only support grouping keys that are constants (int, float, str, etc.)rC   )
isinstancer	   SymNodeVariableevaluate_exprr   r/   r   strtyper   SUPPORTABLE)r>   argsr"   r!   s    r$   retrieve_const_key;ItertoolsVariable.call_function.<locals>.retrieve_const_key   s    c9#<#<==,,..Y%?%?@@1133$ L"0avQvh G%<<?S	N;K Lc%c ? 1 = =>r&   z+Unsupported arguments for itertools.groupbyz?Dynamo does not know how to trace itertools.groupby with args: ze. itertools.groupby expects an iterable to group and an optional key function to determine groupings.z9Make sure the arguments to itertools.groupby are correct.c                 V   > T" TR                  S5      R                  TU /0 5      5      $ )Nr>   )getcall_function)xr"   rT   r6   s    r$   keyfunc0ItertoolsVariable.call_function.<locals>.keyfunc   s-    -

5)77QCD r&   c                    > T" U 5      $ r.   r   )rY   rT   s    r$   rZ   r[      s    -a00r&   )r>   z7Unexpected failure during itertools.groupby() iterationz6Unexpected failure in invoking function during groupbyr9   )0r    	itertoolsproductallunpack_var_sequencer	   TupleVariablelistListIteratorVariabler   
accumulatebuiltinr:   anykeysr   joinsetr   
USER_ERRORlenr3   rX   operatoraddrR   rW   append	Exception	DIFFICULTcombinationsis_python_constantr/   groupbyr   
is_literalcreaterepeatRepeatIteratorVariableinline_user_function_returnr   buildr   countCountIteratorVariablecycleCycleIteratorVariabler   )r!   r6   rS   r"   r5   seqsitemitemsr:   seqr=   acceiterablerrZ   resultkvrT   r#   s   ````               @r$   rX   ItertoolsVariable.call_function7   s    JJ)+++DtDDD;?@4C++B/4D@@I@Q@QSW@X@X	''T
3@X   11%5%7  ZZ9///0KV[[]KKK I,TF!D66(C"NxxFKKM 2i5H HIJ!L9-889 4yF"tAw'F'Fr'J'J1g11"5V#D	Q!&>77DY!^700DY!^*8<<8FFD$ L"0avQvh G%= > 1 < <= !L,TF!D66(C!77;fM& R7!7 W*66 E**Y'CS!;C
"2{B7 S! " 11%5%7  JJ)000D	QQ//33Q**,,Aw2226HQ**,AE!..x;Y44T$Z@A <11%5%7  ZZ9,,,7777 F,TF!D66(C"BxxFKKM 2eW <=>!@9-889 4yA~$q'"A"A""E"E1g11"5 I,TF!D66(C!4486vh OD!D
 T*66  1 F%--cw?DAqMM!// $-#=#=#H#H#K#K !* : : A A! D%& ) > >$(G;K;M!"	 +;*<
 @, 11&6&8  ZZ9+++4y1} 77)9);  11%%b)*:*:;T6  ZZ9??*22%5%7  ZZ9??*22%5%7  7(T6::A A~ % ($`&4TF!D66($K)337&$uA)G"@$5$?$?"@%& F   U,TF!D66(C X:-99: s=   	Z=:)[[%B4\ 
\/\\
]	&]]	r)   r   N)r6   r   rS   zlist[VariableTracker]r"   zdict[str, VariableTracker]r   r   )__name__
__module____qualname____firstlineno__r   rP   r+   r/   rX   __static_attributes____classcell__r#   s   @r$   r   r   ,   sO    2# 2M;#M; &M; -	M;
 
M; M;r&   r   c                   ^   ^  \ rS rSrS	U 4S jjrS rS\\   4S jrS	S jr	S\
4S jrSrU =r$ )
IteratorVariablei  r   c                 &   > [         TU ]  " S0 UD6  g r   )r   r   )r!   r"   r#   s     r$   r   IteratorVariable.__init__  s    "6"r&   c                 D    [        SSU  S3S/ [        R                  QS9  g )NzUnimplemented next() callnext(r(   z(This abstract method must be implementedrC   )r   r   
DYNAMO_BUGr!   r6   s     r$   next_variableIteratorVariable.next_variable  s*    /D6OB1%001		
r&   c                 @    / nU R                  XR                  5        U$ r.   )force_apply_to_var_sequencern   )r!   r6   r   s      r$   force_unpack_var_sequence*IteratorVariable.force_unpack_var_sequence  s    ((]];r&   c                 n      U" U R                  U5      5        M  ! [         a    [        U5         g f = fr.   )r   r   r   )r!   r6   fns      r$   r   ,IteratorVariable.force_apply_to_var_sequence  s>    4%%b)*  - )"-s    44c                     g)NTr   r   s     r$   has_force_unpack_var_sequence.IteratorVariable.has_force_unpack_var_sequence&  s    r&   r   r   )r   r   r   r   r   r   rb   r   r   r   boolr   r   r   r   s   @r$   r   r     s4    #
tO/D 
4  r&   r   c                   D   ^  \ rS rSrS\SS4U 4S jjrS rS	S jrSrU =r	$ )
rw   i*  r   r   Nc                 2   > [         TU ]  " S0 UD6  Xl        g r   )r   r   r   )r!   r   r"   r#   s      r$   r   RepeatIteratorVariable.__init__+  s    "6"	r&   c                     U R                   $ r.   r   r   s     r$   r   $RepeatIteratorVariable.next_variable0  s    yyr&   c                    ^ TR                  U4S j5        T" U R                  5        TR                  [        SS5      5        g )Nc                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )Nrv   extend_outputcreate_load_python_moduler]   create_load_attrcodegens   r$   <lambda>4RepeatIteratorVariable.reconstruct.<locals>.<lambda>5  s1    G))55i@,,X6r&   r   F)add_push_nullr   r   r
   r!   r   s    `r$   reconstruct"RepeatIteratorVariable.reconstruct3  s:    	
 			21e<=r&   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   s   @r$   rw   rw   *  s%    _ 4 

> 
>r&   rw   c                   L   ^  \ rS rSrS
S\S\SS4U 4S jjjrS rSS jrS	rU =r	$ )r{   i@  r   stepr   Nc                    > [         TU ]  " S0 UD6  [        U[        5      (       d  [        R
                  " U5      n[        U[        5      (       d  [        R
                  " U5      nXl        X l        g r   )r   r   rM   r   r   ru   r   r   )r!   r   r   r"   r#   s       r$   r   CountIteratorVariable.__init__A  sW    "6"$00#**40D$00#**40D		r&   c                     U R                  5       (       d   eU R                  nUR                  R                  R	                  U 5        U R                  R                  USU R                  /0 5      U l        U$ )N__add__)
is_mutabler   outputside_effectsmutationcall_methodr   )r!   r6   old_items      r$   r   #CountIteratorVariable.next_variableJ  s]        99
		''-II))"i$))bI	r&   c                    ^ TR                  U4S j5        T" U R                  5        T" U R                  5        TR                  [	        SS5      5        g )Nc                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )Nrz   r   r   s   r$   r   3CountIteratorVariable.reconstruct.<locals>.<lambda>S  s1    G))55i@,,W5r&   r   F)r   r   r   r   r
   r   s    `r$   r   !CountIteratorVariable.reconstructQ  sF    	
 					21e<=r&   )r   r   )r   r   r   )
r   r   r   r   intr   r   r   r   r   r   s   @r$   r{   r{   @  s1    S C $  > >r&   r{   c                   b   ^  \ rS rSr   SS\S\\\      S\S\\   SS4
U 4S jjjr	S	 r
S
rU =r$ )r}   i_  Niteratorsavedsaved_indexr   r   c                 `   > Uc  / n[         TU ]  " S0 UD6  Xl        X l        X0l        X@l        g r   )r   r   r   r   r   r   )r!   r   r   r   r   r"   r#   s         r$   r   CycleIteratorVariable.__init__`  s4     =E"6" 
&	r&   c                 :   U R                  5       (       d   eU R                  b   U R                  R                  U5      n[        U R                  5      [
        :  a  [        SSU  S3S[
         3/ S9  UR                  R                  R                  U 5        U R                  R                  U5        X l        U R                  c  U R                  U5      $ U R                  $ [        U R                  5      S:  a[  UR                  R                  R                  U 5        U R                  S-   [        U R                  5      -  U l        U R                  $ [        [         U5        g ! [         a&    [        U5        S U l        U R                  U5      s $ f = f)Nz4input iterator to itertools.cycle has too many itemsr   r(   z0Has reached internal Dynamo max iterator limit: rC   r   r   )r   r   r   rk   r   MAX_ITERATOR_LIMITr   r   r   r   rn   r   r   r   r   r   StopIteration)r!   r6   new_items      r$   r   #CycleIteratorVariable.next_variablep  sS       ==$.==66r:tzz?%77$ V"'vQ&VWiVj$k 	 		&&//5

!!(+$	99$--b11yy 
 _q II""++D1 $ 0 01 4DJJGD99$]B7 - .)"- $))"--.s   B2E* E* *-FF)r   r   r   r   )Nr   N)r   r   r   r   r   r   rb   r   r   r   r   r   r   r   s   @r$   r}   r}   _  sa     26*." _-. 	
 ' 
  8 8r&   r}   c                      ^  \ rS rSrSrSS1\R                  kr SS\\\\	   \	4      S\
SS4U 4S jjjrS	 rS\
4S
 jrS\S   4S jrS rSS jrSS jrSrU =r$ )ZipVariablei  z
Represents zip(*iterables)
indexstrict	iterablesr   Nc                 z   > [         TU ]  " S0 UD6  [        U[        5      (       d   eXl        SU l        X l        g Nr   r   )r   r   rM   rb   r   r   r   )r!   r   r   r"   r#   s       r$   r   ZipVariable.__init__  s9     	"6")T****"
r&   c                     [         $ r.   )zipr*   s    r$   python_typeZipVariable.python_type      
r&   c                 B   ^ [        U4S jU R                   5       5      $ )Nc              3   t   >#    U  H-  n[        U[        5      =(       d    UR                  T5      v   M/     g 7fr.   )rM   rb   r3   )r4   itr6   s     r$   r7   6ZipVariable.has_unpack_var_sequence.<locals>.<genexpr>  s2      
$ r4 BB$>$>r$BB$s   58)r_   r   r   s    `r$   r3   #ZipVariable.has_unpack_var_sequence  s!     
nn
 
 	
r&   r   c                    U R                  U5      (       d   e/ nU R                   HW  n[        U[        5      (       a  UR	                  X0R
                  S  5        M7  UR	                  UR                  U5      5        MY     U R                  (       a  SU R                  0O0 n[        U0 UD6nU Vs/ s H"  n[        R                  " [        U5      5      PM$     sn$ s  snf )Nr   )r3   r   rM   rb   rn   r   r`   r   r   r	   ra   )r!   r6   r   r   r"   zippedvars          r$   r`   ZipVariable.unpack_var_sequence  s    ++B////	..B"d##  JJL!12  !7!7!;<	 !
 -1KK(DKK(Ri*6*>DEfs	''S	2fEEEs   2)Cc                 b  ^^ U R                  5       (       d   eU R                  m/ nUU4S jn [        U R                  5       H  u  pEUR	                  U" U5      5        M     TR                  R                  R                  U 5        U =R                  S-  sl        [        R                  " U5      $ ! [
         ao    U R                  (       a\  WS:X  a:  U R                   H)  n U" U5        O! [
         a    [        T5         M%  f = f  O   e [        T5        [        [        S5      S ee f = f)Nc                    > [        U [        5      (       a$  T[        U 5      :  a  [        [        T5        U T   $ U R                  T5      $ r.   )rM   rb   rk   r   r   r   )r   	old_indexr6   s    r$   get_item+ZipVariable.next_variable.<locals>.get_item  sA    "d##B',]B?)}$''++r&   r   z3zip() has one argument of len differing from othersr   )r   r   	enumerater   rn   r   r   r   r   
ValueErrorr   r   r   r	   ra   )r!   r6   rS   r   idxr   r   s    `    @r$   r   ZipVariable.next_variable  s       JJ		,	$T^^4HRL) 50 			''-

a
&&t,,1 ) 	{{!8"nn%$RL8 %5b9$%  - )"-I  )	s/   5B5 50D.&C/.D./DD.D&D.c           	          U R                    Hc  n[        U[        5      (       aC  X R                  S  nUR	                  U5        UR                  [        S[        U5      S95        M[  U" U5        Me     g NBUILD_TUPLEr5   )r   rM   rb   r   foreachappend_outputr   rk   )r!   r   r   remaining_itemss       r$   reconstruct_itemsZipVariable.reconstruct_items  s]    ..B"d##"$ZZ\"20%%&}#o:NO  !r&   c           
        ^ TR                  U4S jSS9  U R                  T5        TR                  [        S[	        U R
                  5      S95        [        R                  S:  aN  TR                  TR                  S5      TR                  U R                  5      [        SS	S9[        S
S	S9/5        g TR                  [        S
SS95        g )Nc                  (   > T R                  SS5      $ )Nbuiltinsr   load_import_fromr   s   r$   r   )ZipVariable.reconstruct.<locals>.<lambda>      G,,Z?r&   Tcall_function_exr   r   )   
   r   	BUILD_MAPr   CALL_FUNCTION_EXr   )r   r   r   r   rk   r   sysversion_infor   create_load_constr   r   s    `r$   r   ZipVariable.reconstruct  s    ?RV 	 	
 	w'}#dnn2EF	
 w&!!--h7--dkk:&{:&'9qA	 !!"45GQ"OPr&   )r   r   r   )Fr   )r   r   r   r   __doc__r   _nonvar_fieldsrb   r   r   r   r   r   r3   r`   r   r   r   r   r   r   s   @r$   r   r     s    
 	 
	(	(N d?3_DEF 
 
 
T 

F.?)@ 
F(-T	Q Qr&   r   c                   |   ^  \ rS rSrSrS\S\\\\   \4      SS4U 4S jjrS r	S\
4S	 jrU 4S
 jrSS jrSrU =r$ )MapVariablei  z 
Represents map(fn, *iterables)
r   r   r   Nc                 4   > [         TU ]  " U40 UD6  Xl        g r.   )r   r   r   )r!   r   r   r"   r#   s       r$   r   MapVariable.__init__  s     	-f-r&   c                     [         $ r.   )mapr*   s    r$   r   MapVariable.python_type  r   r&   c                     g)NFr   r   s     r$   r3   #MapVariable.has_unpack_var_sequence  s    r&   c                 n   > [         TU ]  U5      nU R                  R                  XR                  0 5      $ r.   )r   r   r   rX   r   )r!   r6   rS   r#   s      r$   r   MapVariable.next_variable  s-    w$R(ww$$RR88r&   c                    ^ TR                  U4S jSS9  T" U R                  5        U R                  T5        TR                  [	        S[        U R                  5      S-   S9[	        SSS9/5        g )	Nc                  (   > T R                  SS5      $ )Nr  r  r  r   s   r$   r   )MapVariable.reconstruct.<locals>.<lambda>   r  r&   Tr  r   r   r   r  r   )r   r   r   r   r   rk   r   r   s    `r$   r   MapVariable.reconstruct  sn    ?RV 	 	
 	w'"=c$..6IA6MN"#51=	
r&   )r   r   )r   r   r   r   r  r   rb   r   r   r   r   r3   r   r   r   r   r   s   @r$   r  r    s]     d?3_DEF
 
T 9
 
r&   r  c                      ^  \ rS rSrSrS1\R                  krS\S\\	\   \4   SS4U 4S jjr
S	 rS\4S
 jrS\	S   4S jrS rSS jrSS jrSrU =r$ )FilterVariablei,  z!
Represents filter(fn, iterable)
r   r   r   r   Nc                 L   > [         TU ]  " S0 UD6  Xl        X l        SU l        g r   )r   r   r   r   r   )r!   r   r   r"   r#   s       r$   r   FilterVariable.__init__6  s&     	"6" 
r&   c                     [         $ r.   )filterr*   s    r$   r   FilterVariable.python_typeA  s    r&   c                 z    [        U R                  [        5      =(       d    U R                  R                  U5      $ r.   )rM   r   rb   r3   r   s     r$   r3   &FilterVariable.has_unpack_var_sequenceD  s.    $--. 
$--2W2W3
 	
r&   r   c                 F   U R                  U5      (       d   eS n[        U R                  [        5      (       a  U R                  U R                  S  nOU R                  R                  U5      nU R                  R                  X0 5      n[        R                  " U/5      /$ r.   )
r3   rM   r   rb   r   r`   r   rX   r	   ra   )r!   r6   r   filtereds       r$   r`   "FilterVariable.unpack_var_sequenceI  s    ++B////dmmT**tzz|,B2226B77((4''
344r&   c                 (  ^ ^ U U4S jn U" 5       nT =R                   S-  sl         T R                  R                  TU/0 5      n[        R                  " [
        R                  5      R                  TU/0 5      nUR                  5       (       a  U$ M  )Nc                     > TR                   n [        TR                  [        5      (       a8  U [	        TR                  5      :  a  [        [        T5        TR                  U    $ TR                  R                  T5      $ r.   )r   rM   r   rb   rk   r   r   r   )r   r!   r6   s    r$   _next+FilterVariable.next_variable.<locals>._nextT  s\    

I$--..DMM 22,]B?}}Y//}}22266r&   r   )r   r   rX   r	   UserFunctionVariabler   	predicater/   )r!   r6   r1  r   respred_ress   ``    r$   r   FilterVariable.next_variableS  s    	7 7DJJ!OJ''''TFB7C 55##mBr*  **,, r&   c                     [        U R                  [        5      (       aM  U R                  U R                  S  nUR	                  U5        UR                  [        S[        U5      S95        g U" U R                  5        g r   )rM   r   rb   r   r   r   r   rk   )r!   r   r   s      r$   r    FilterVariable.reconstruct_itemsh  s^    dmmT**"mmDJJL9OOOO,!!"=c/6JK DMM"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                  (   > T R                  SS5      $ )Nr  r(  r  r   s   r$   r   ,FilterVariable.reconstruct.<locals>.<lambda>s  s    g&>&>z8&Tr&   r   F)r   r   r   r   r
   r   s    `r$   r   FilterVariable.reconstructr  sB    TUw'21e<=r&   )r   r   r   r   )r   r   r   r   r  r   r  r   r   rb   r   r   r   r3   r`   r   r   r   r   r   r   s   @r$   r$  r$  ,  s    
 			(	(N
		 _->?	
 
	
T 

5.?)@ 5*#> >r&   r$  )'r  r]   rl   r  typingr   r   r    r   r   r	   bytecode_transformationr
   r   excr   r   r   r   r   baser   r   constantr   torch._dynamo.codegenr   torch._dynamo.symbolic_convertr   r   r   r   rw   r{   r}   r   r  r$  r   r&   r$   <module>rF     s      
 1 1 6 6 N  4 & /D   X; X;v   F>- >,>, >>-8, -8`tQ" tQn#
+ #
LJ>% J>r&   