
    pi                    ,   d Z ddlmZ ddlZddlmZmZmZmZm	Z	 ddl
mZmZ ddlmZ erddlmZ g d	Z e	d
      Z e	d      Z e	d      Z ed      Z e	d      Z e	d      Z e	d      Z ed      Zedd       Ze	 	 	 	 	 	 	 	 dd       Z eej4                  d      dd       Zed d       Ze	 	 	 	 	 	 	 	 d!d       Z eej6                  d      d"d       Z eej8                  d      d#d       Z eej:                  d      d$d       Zy)%z
Python polyfills for operator
    )annotationsN)AnyCallableoverloadTYPE_CHECKINGTypeVar)TypeVarTupleUnpack   )substitute_in_graph)Iterable)
attrgetter
itemgettermethodcallercountOf_T_T1_T2_Ts_U_U1_U2_Usc                    y N )attrs    b/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/_dynamo/polyfills/operator.pyr   r       s    58    c                    y r   r   )attr1attr2attrss      r   r   r   $        58r   T)is_embedded_typec                      t               dk(  rt        d      t        d  D              rt        d      d	dt               dk(  r d   d
fd}|S d fd}|S )Nr   z%attrgetter expected 1 argument, got 0c              3  >   K   | ]  }t        |t                 y wr   )
isinstancestr).0r   s     r   	<genexpr>zattrgetter.<locals>.<genexpr>0   s     
7z$$$
7s   zattribute name must be a stringc                J    |j                  d      D ]  }t        | |      }  | S )N.)splitgetattr)objr   names      r   resolve_attrz attrgetter.<locals>.resolve_attr3   s*    JJsO 	%D#t$C	%
r      c                     |       S r   r   )r0   r   r2   s    r   getterzattrgetter.<locals>.getter;   s    T**r   c                0     t         fdD              S )Nc              3  0   K   | ]  } |        y wr   r   )r*   r   r0   r2   s     r   r+   z-attrgetter.<locals>.getter.<locals>.<genexpr>A   s     CTc40Cs   tuple)r0   r#   r2   s   `r   r5   zattrgetter.<locals>.getter@   s    CUCCCr   )r0   r   r   r)   returnr   r0   r   r:   r   r0   r   r:   ztuple[Any, ...])len	TypeErrorany)r#   r5   r   r2   s   ` @@r   r   r   +   sh    
5zQ?@@

7
779::
 5zQQx	+ M	D Mr   c                    y r   r   )items    r   r   r   F   s    47r   c                    y r   r   )item1item2itemss      r   r   r   J   r$   r   c                 ~     t               dk(  rt        d      t               dk(  r d   dfd}|S d fd}|S )Nr   z%itemgetter expected 1 argument, got 0r3   c                    |    S r   r   )r0   rA   s    r   r5   zitemgetter.<locals>.getterY   s    t9r   c                .     t         fdD              S )Nc              3  (   K   | ]	  }|     y wr   r   )r*   rA   r0   s     r   r+   z-itemgetter.<locals>.getter.<locals>.<genexpr>_   s     5tT5s   r8   )r0   rE   s   `r   r5   zitemgetter.<locals>.getter^   s    5u555r   r;   r<   )r=   r>   )rE   r5   rA   s   ` @r   r   r   Q   sF    
5zQ?@@
5zQQx	 M	6 Mr   c               R     t         t              st        d      d fd}|S )Nzmethod name must be a stringc                (     t        |       i S r   )r/   )r0   argskwargsr1   s    r   callerzmethodcaller.<locals>.callerj   s    !wsD!42622r   r;   )r(   r)   r>   )r1   rL   rM   rN   s   ``` r   r   r   e   s%    dC 6773 Mr   )can_constant_fold_throughc               ,    t        fd| D              S )Nc              3  4   K   | ]  }|u xs |k(    y wr   r   )r*   itbs     r   r+   zcountOf.<locals>.<genexpr>s   s!     .brQw!"'!.s   )sum)arS   s    `r   r   r   q   s    .A...r   )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, ...]])rA   r   r:   rV   )rC   r   rD   r   rE   zUnpack[_Ts]r:   rW   )rE   r   r:   rX   )r1   r)   rL   r   rM   r   r:   zCallable[[Any], Any])rU   zIterable[_T]rS   r   r:   int)__doc__
__future__r   operatortypingr   r   r   r   r   typing_extensionsr	   r
   
decoratorsr   collections.abcr   __all__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>rb      s   #  B B 2 , ( B 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 X%%F/ G/r   