
    shl                       S r SSKJr  SSKrSSKJrJrJrJr  SSK	J
r
Jr  SSKJr  / SQr\" S	5      r\" S
5      r\" S5      r\
" S5      r\" S5      r\" S5      r\" S5      r\
" S5      r\SS j5       r\        SS j5       r\" \R.                  SS9SS j5       r\SS j5       r\        SS j5       r\" \R0                  SS9SS j5       r\" \R2                  SS9S S j5       rg)!z
Python polyfills for operator
    )annotationsN)AnyCallableoverloadTypeVar)TypeVarTupleUnpack   )substitute_in_graph)
attrgetter
itemgettermethodcaller_T_T1_T2_Ts_U_U1_U2_Usc                   g N )attrs    t/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/_dynamo/polyfills/operator.pyr   r      s    58    c                   g r   r   )attr1attr2attrss      r   r   r            58r   T)is_embedded_typec                    ^ ^^ [        T 5      S:X  a  [        S5      e[        S T  5       5      (       a  [        S5      eS	S jm[        T 5      S:X  a  T S   mS
UU4S jjnU$ SU U4S jjnU$ )Nr   z%attrgetter expected 1 argument, got 0c              3  L   #    U  H  n[        U[        5      (       + v   M     g 7fr   )
isinstancestr).0r   s     r   	<genexpr>attrgetter.<locals>.<genexpr>,   s     
7z$$$$s   "$zattribute name must be a stringc                L    UR                  S5       H  n[        X5      n M     U $ )N.)splitgetattr)objr   names      r   resolve_attr attrgetter.<locals>.resolve_attr/   s#    JJsOD#$C $
r      c                   > T" U T5      $ r   r   )r.   r   r0   s    r   getterattrgetter.<locals>.getter7   s    T**r   c                2   >^  [        U U4S jT 5       5      $ )Nc              3  6   >#    U  H  nT" TU5      v   M     g 7fr   r   )r'   r   r.   r0   s     r   r(   -attrgetter.<locals>.getter.<locals>.<genexpr>=   s     CUTc400Us   tuple)r.   r    r0   s   `r   r4   r5   <   s    CUCCCr   )r.   r   r   r&   returnr   r.   r   r;   r   r.   r   r;   ztuple[Any, ...])len	TypeErrorany)r    r4   r   r0   s   ` @@r   r   r   '   sv    
5zQ?@@

7
7779::
 5zQQx	+ 	+ M	D 	D Mr   c                   g r   r   )items    r   r   r   B   s    47r   c                   g r   r   )item1item2itemss      r   r   r   F   r!   r   c                    ^ ^ [        T 5      S:X  a  [        S5      e[        T 5      S:X  a  T S   mSU4S jjnU$ SU 4S jjnU$ )Nr   z%itemgetter expected 1 argument, got 0r2   c                   > U T   $ r   r   )r.   rB   s    r   r4   itemgetter.<locals>.getterU   s    t9r   c                0   >^  [        U 4S jT 5       5      $ )Nc              3  .   >#    U  H
  nTU   v   M     g 7fr   r   )r'   rB   r.   s     r   r(   -itemgetter.<locals>.getter.<locals>.<genexpr>[   s     5utTus   r9   )r.   rF   s   `r   r4   rI   Z   s    5u555r   r<   r=   )r>   r?   )rF   r4   rB   s   ` @r   r   r   M   sF    
5zQ?@@
5zQQx	 M	6 Mr   c               `   ^ ^^ [        T [        5      (       d  [        S5      eSUUU 4S jjnU$ )Nzmethod name must be a stringc                (   > [        U T5      " T0 TD6$ r   )r-   )r.   argskwargsr/   s    r   callermethodcaller.<locals>.callerf   s    sD!42622r   r<   )r%   r&   r?   )r/   rO   rP   rQ   s   ``` r   r   r   a   s-    dC  6773 3 Mr   )r   r&   r;   Callable[[Any], _U])r   r&   r   r&   r    r&   r;   -Callable[[Any], tuple[_U1, _U2, Unpack[_Us]]])r    r&   r;   &Callable[[Any], Any | tuple[Any, ...]])rB   r   r;   rS   )rD   r   rE   r   rF   zUnpack[_Ts]r;   rT   )rF   r   r;   rU   )r/   r&   rO   r   rP   r   r;   zCallable[[Any], Any])__doc__
__future__r   operatortypingr   r   r   r   typing_extensionsr   r	   
decoratorsr   __all__r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r]      s_   #  3 3 2 , 7 T]enen5T]enen5 
 8 
 8 
888'*828 
8 X((4@ A4 
 7 
 7 
888'2828 
8 X((4@ A& X**TB Cr   