o
    Zhl                     @  s  d Z ddlmZ ddlZddlmZmZmZmZ ddl	m
Z
mZ 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d0ddZed1ddZeejddd2ddZed3d!d"Zed4d'd"Zeejddd5d)d"Zeejddd6d.d/ZdS )7z
Python polyfills for operator
    )annotationsN)AnyCallableoverloadTypeVar)TypeVarTupleUnpack   )substitute_in_graph)
attrgetter
itemgettermethodcaller_T_T1_T2_Ts_U_U1_U2_UsattrstrreturnCallable[[Any], _U]c                C     d S N )r   r   r   O/var/www/auris/lib/python3.10/site-packages/torch/_dynamo/polyfills/operator.pyr         r   attr1attr2attrs-Callable[[Any], tuple[_U1, _U2, Unpack[_Us]]]c                G  r   r   r   )r   r    r!   r   r   r   r          T)Zis_embedded_type&Callable[[Any], Any | tuple[Any, ...]]c                    st   t dkr
tdtdd D rtddddt dkr0d  d fdd}|S dfdd}|S )Nr   z%attrgetter expected 1 argument, got 0c                 s  s    | ]	}t |t V  qd S r   )
isinstancer   .0r   r   r   r   	<genexpr>,   s    zattrgetter.<locals>.<genexpr>zattribute name must be a stringobjr   r   r   r   c                 S  s   | dD ]}t| |} q| S )N.)splitgetattr)r)   r   namer   r   r   resolve_attr/   s   z attrgetter.<locals>.resolve_attr   c                   s
   |  S r   r   r)   )r   r.   r   r   getter7   s   
zattrgetter.<locals>.gettertuple[Any, ...]c                   s   t  fddD S )Nc                 3  s    | ]} |V  qd S r   r   r&   )r)   r.   r   r   r(   =   s    z-attrgetter.<locals>.getter.<locals>.<genexpr>tupler0   )r!   r.   r0   r   r1   <   s   )r)   r   r   r   r   r   r)   r   r   r   r)   r   r   r2   )len	TypeErrorany)r!   r1   r   )r   r!   r.   r   r   '   s   
itemc                C  r   r   r   r:   r   r   r   r   B   r   r   item1item2itemsUnpack[_Ts]c                G  r   r   r   )r<   r=   r>   r   r   r   r   F   r#   r   c                    sL   t dkr
tdt dkrd  d fdd}|S dfd
d}|S )Nr   z%itemgetter expected 1 argument, got 0r/   r)   r   r   c                   s   |   S r   r   r0   r;   r   r   r1   U   s   zitemgetter.<locals>.getterr2   c                   s   t  fddD S )Nc                 3  s    | ]} | V  qd S r   r   )r'   r:   r0   r   r   r(   [   s    z-itemgetter.<locals>.getter.<locals>.<genexpr>r3   r0   )r>   r0   r   r1   Z   s   r5   r6   )r7   r8   )r>   r1   r   )r:   r>   r   r   M   s   r-   argskwargsCallable[[Any], Any]c                  s(   t ts	tdd fdd}|S )Nzmethod name must be a stringr)   r   r   c                   s   t |  i S r   )r,   r0   r@   rA   r-   r   r   callerf   s   zmethodcaller.<locals>.callerr5   )r%   r   r8   )r-   r@   rA   rD   r   rC   r   r   a   s   
r   )r   r   r   r   )r   r   r    r   r!   r   r   r"   )r!   r   r   r$   )r:   r   r   r   )r<   r   r=   r   r>   r?   r   r"   )r>   r   r   r$   )r-   r   r@   r   rA   r   r   rB   )__doc__
__future__r   operatortypingr   r   r   r   Ztyping_extensionsr   r   Z
decoratorsr
   __all__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s:    