§
    Ì²Åj^  ã            
      ó‚  — d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZ d dlmZmZmZ erd dlmZ  e	deeee
eef         e
eef         ¦  «        Z e	deeee         ee¦  «        Z e	d	eeef         ee         ¦  «        Zej         dd„¦   «         Z!dd„Z"dd„Z#dd„Z$d d„Z%d!d„Z&d"d„Z'dS )#é    )ÚannotationsN)ÚAnyÚCallableÚOptionalÚTYPE_CHECKINGÚTypeVarÚUnion)ÚBackendIndexÚDispatchKeyÚNativeFunctionÚNativeFunctionsGroupÚNativeFunctionsViewGroup)ÚcontextÚSÚT)ÚIteratorÚFÚF2ÚF3Úgú@NativeFunctionsGroup | NativeFunctionsViewGroup | NativeFunctionÚreturnúIterator[None]c              #  óR  ‡K  — t          | t          ¦  «        r| j        Šnt          | t          ¦  «        r| j        Šn| Št          ˆfd„¦  «        5  t          j        ‰j        ‰j	        ¬¦  «        5  d V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó(   •— d‰ j         › d‰ j        › �S )Nzin native_functions.yaml line z:
  )ÚlocÚfunc)Úfs   €úAC:\Projects\Historical\venv\Lib\site-packages\torchgen/context.pyú<lambda>z)native_function_manager.<locals>.<lambda><   s   ø€ ÐN¸!¼%ÐNÐNÀaÄfÐNÐN€ ó    )Ú!use_const_ref_for_mutable_tensorsÚuse_ilistref_for_tensor_lists)
Ú
isinstancer   Úoutr   Úviewr   ÚlocalÚparametrizer"   Úpart_of_structured_group)r   r   s    @r   Únative_function_managerr*   -   sH  øè è € õ �!Õ)Ñ*Ô*ð 
ð
 ŒEˆˆÝ	�AÕ/Ñ	0Ô	0ð àŒFˆˆàˆÝ	ÐNÐNÐNÐNÑ	OÔ	Oð ð ÝÔØ./Ô.QØ*+Ô*Dð
ñ 
ô 
ð 	ð 	ð ˆEˆEˆEð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s6   Á!BÁ3BÁ8BÂB	ÂBÂB	ÂBÂB Â#B r   úCallable[[F], T]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )Nr   r   r   r   c                ól   •— t          | ¦  «        5   ‰| ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S ©N©r*   )r   r   s    €r   Úwrapperz%with_native_function.<locals>.wrapperJ   s€   ø€ å$ QÑ'Ô'ð 	ð 	Ø�4˜‘7”7ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ‘)©-°-)r   r   r   r   ©Ú	functoolsÚwraps©r   r0   s   ` r   Úwith_native_functionr5   I   s=   ø€ Ý„_�TÑÔðð ð ð ð ñ Ôðð €Nr!   úCallable[[F, F2], T]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	Nr   r   Úf2r   r   r   c                ón   •— t          | ¦  «        5   ‰| |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r.   r/   )r   r8   r   s     €r   r0   z)with_native_function_and.<locals>.wrapperS   s„   ø€ õ % QÑ'Ô'ð 	ð 	Ø�4˜˜2‘;”;ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   ‘*ª.±.)r   r   r8   r   r   r   r1   r4   s   ` r   Úwith_native_function_andr;   R   s=   ø€ Ý„_�TÑÔðð ð ð ð ñ Ôðð
 €Nr!   úCallable[[S, F], T]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	NÚslfr   r   r   r   r   c                ón   •— t          |¦  «        5   ‰| |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r.   r/   ©r>   r   r   s     €r   r0   z,method_with_native_function.<locals>.wrapper]   s‚   ø€ å$ QÑ'Ô'ð 	 ð 	 Ø�4˜˜Q‘<”<ð	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 r:   )r>   r   r   r   r   r   r1   r4   s   ` r   Úmethod_with_native_functionrA   \   s=   ø€ Ý„_�TÑÔð ð  ð  ð  ð  ñ Ôð ð €Nr!   úCallable[[S, F3], T]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	Nr>   r   r   r   r   r   c                óz   •— t          |d         ¦  «        5   ‰| |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr   r/   r@   s     €r   r0   z3method_with_nested_native_function.<locals>.wrapperh   s†   ø€ å$ Q q¤TÑ*Ô*ð 	 ð 	 Ø�4˜˜Q‘<”<ð	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   —0°4·4)r>   r   r   r   r   r   r1   r4   s   ` r   Ú"method_with_nested_native_functionrE   e   s?   ø€ õ „_�TÑÔð ð  ð  ð  ð  ñ Ôð ð €Nr!   úCallable[[F, BackendIndex], T]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	Nr   r   Úbackend_indexr
   r   r   c                ón   •— t          | ¦  «        5   ‰| |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r.   r/   )r   rH   r   s     €r   r0   z/with_native_function_and_index.<locals>.wrapperu   s„   ø€ å$ QÑ'Ô'ð 	*ð 	*Ø�4˜˜=Ñ)Ô)ð	*ð 	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*r:   )r   r   rH   r
   r   r   r1   r4   s   ` r   Úwith_native_function_and_indexrJ   r   s?   ø€ õ „_�TÑÔð*ð *ð *ð *ð *ñ Ôð*ð €Nr!   ú1Callable[[F, dict[DispatchKey, BackendIndex]], T]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	Nr   r   Úbackend_indicesúdict[DispatchKey, BackendIndex]r   r   c                ón   •— t          | ¦  «        5   ‰| |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r.   r/   )r   rM   r   s     €r   r0   z1with_native_function_and_indices.<locals>.wrapper�   s„   ø€ å$ QÑ'Ô'ð 	,ð 	,Ø�4˜˜?Ñ+Ô+ð	,ð 	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,r:   )r   r   rM   rN   r   r   r1   r4   s   ` r   Ú with_native_function_and_indicesrP   ~   s?   ø€ õ „_�TÑÔð,ð ,ð ,ð ,ð ,ñ Ôð,ð €Nr!   )r   r   r   r   )r   r+   r   r+   )r   r6   r   r6   )r   r<   r   r<   )r   rB   r   rB   )r   rF   r   rF   )r   rK   r   rK   )(Ú
__future__r   Ú
contextlibr2   Útypingr   r   r   r   r   r	   Útorchgen.localr'   Útorchgen.modelr
   r   r   r   r   Útorchgen.utilsr   r   r   Úcollections.abcr   r   ÚboolÚstrr   ÚtupleÚlistr   Úcontextmanagerr*   r5   r;   rA   rE   rJ   rP   © r!   r   ú<module>r^      s"  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ià Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð )Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ð ð )Ø(Ð(Ð(Ð(Ð(Ð(ð
 €GØØØØØ	ˆ.Ð.Ð
.Ô/Ø	ˆ.Ð2Ð
2Ô3ñô €ð €WØØØØˆ^ÔØØñô €ð €WˆT�5˜¨Ð,Ô-¨t°NÔ/CÑDÔD€ð Ôðð ð ñ Ôðð6ð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r!   