Ë
    [^(h¢/  ã                   óü  — d dl Z d dlmZ d dlmZ d dlmc mZ d dlm	Z	  G d„ de j                  «      Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de j                  «      Z G d„ d«      Zd„ Ze j                   ede j&                  ¬«      e edd„ ¬«      e	 edd„ ¬«      e edd„ ¬«      e edd„ d¬«      e ed d!„ d¬«      e ed"d#„ d¬«      iZ G d$„ d%e j                  «      Zy)&é    N)Údeepcopy)Útree_map)ÚLoggingTensorc                   ó2   — e Zd Zed„ «       Zed„ «       Zd„ Zy)ÚWrapperTensorc                 óP  —  | j                   |i |¤Ž\  }}d|vr|j                  «       }n|d   }|d= d|vr|j                  |d<   d|vr|j                  |d<   d|vr|j                  |d<   d|vrd|d<   t        j                  j                  | |fi |¤Ž}|j                  «        |S )NÚsizeÚdtypeÚlayoutÚdeviceÚrequires_gradF)	Úget_wrapper_propertiesr	   r
   r   r   ÚtorchÚTensorÚ_make_wrapper_subclassÚ_validate_methods)ÚclsÚargsÚkwargsÚtr	   Úwrappers         úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/testing/_internal/common_subclass.pyÚ__new__zWrapperTensor.__new__   sÁ   € à.�C×.Ñ.°Ð?¸Ñ?‰	ˆˆ6Ø˜ÑØ—6‘6“8‰Dà˜&‘>ˆDØ�v�Ø˜&Ñ ØŸg™gˆF�7‰OØ˜6Ñ!Ø Ÿx™xˆF�8ÑØ˜6Ñ!Ø Ÿx™xˆF�8ÑØ &Ñ(Ø&+ˆF�?Ñ#ô —,‘,×5Ñ5°c¸4ÑJÀ6ÑJˆØ×!Ñ!Ô#Øˆó    c                 ó   — t        d«      ‚)Nz,You need to implement get_wrapper_properties)ÚNotImplementedError)r   r   r   s      r   r   z$WrapperTensor.get_wrapper_properties&   s   € ô
 "Ð"PÓQÐQr   c                 óÆ   — g d¢}|D ]X  }t        | j                  |«      t        t        j                  |«      usŒ4t	        d| j                  j
                  › d|› d�«      ‚ y )N)r	   Ústrider
   r   r   r   z	Subclass z is overwriting the property zN but this is not allowed as such change would not be reflected to c++ callers.)ÚgetattrÚ	__class__r   r   ÚRuntimeErrorÚ__name__)ÚselfÚforbidden_overridesÚels      r   r   zWrapperTensor._validate_methods-   sq   € ò
 _ÐØ%ò 	GˆBÜ�t—~‘~ rÓ*´'¼%¿,¹,ÈÓ2KÒKÜ" Y¨t¯~©~×/FÑ/FÐ.Gð H/Ø/1¨dð 3Fð$Fó Gð Gñ	Gr   N)r"   Ú
__module__Ú__qualname__Ústaticmethodr   Úclassmethodr   r   © r   r   r   r      s0   „ Øñó ðð, ñRó ðRó
Gr   r   c                   óJ   ‡ — e Zd Zedd„«       Zdd„Zedd„«       Zˆ fd„Zˆ xZS )ÚWrapperTensorWithCustomSizesc                 ó   — ||ddœfS )NÚsizes©r   Údispatch_sizes_strides_policyr*   ©r   r   r   s      r   r   z3WrapperTensorWithCustomSizes.get_wrapper_properties;   s   € à MÐT[Ñ\Ð\Ð\r   c                 ó   — || _         y ©N©r   ©r#   r   r   s      r   Ú__init__z%WrapperTensorWithCustomSizes.__init__?   ó	   € Øˆ�r   c                 ó¤   ‡ — t        ˆ fd„|D «       «      st        S |€i }d„ }d„ }t        | |t        ||«      i t        ||xs i «      ¤Ž«      }|S )Nc              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr3   ©Ú
issubclass©Ú.0r   r   s     €r   ú	<genexpr>zBWrapperTensorWithCustomSizes.__torch_dispatch__.<locals>.<genexpr>D   ó   øè ø€ Ò5¨!”:˜c 1×%Ñ5ùó   ƒc                 ó>   — t        | t        «      r| j                  S | S r3   )Ú
isinstancer,   r   ©Úes    r   Úunwrapz?WrapperTensorWithCustomSizes.__torch_dispatch__.<locals>.unwrapJ   s   € Ü$ QÔ(DÔE�1—3‘3ÐLÈ1ÐLr   c                 óP   — t        | t        j                  «      rt        | «      S | S r3   )rB   r   r   r,   rC   s    r   Úwrapz=WrapperTensorWithCustomSizes.__torch_dispatch__.<locals>.wrapM   s!   € Ü6@ÀÄEÇLÁLÔ6QÔ/°Ó2ÐXÐWXÐXr   ©ÚallÚNotImplementedr   ©r   ÚfuncÚtypesr   r   rE   rG   Úrss   `       r   Ú__torch_dispatch__z/WrapperTensorWithCustomSizes.__torch_dispatch__B   s]   ø€ äÓ5¨uÔ5Ô5Ü!Ð!àˆ>ØˆFò	Mò	Yô �d™D¤(¨6°4Ó"8Ð[¼HÀVÈVÊ\ÐWYÓ<ZÑ[Ó\ˆØˆ	r   c                 ó>   •— t         ‰| �  d| j                  › �¬«      S ©Nzt=©Útensor_contents©ÚsuperÚ__repr__r   ©r#   r    s    €r   rV   z%WrapperTensorWithCustomSizes.__repr__S   ó    ø€ Ü‰wÑ°"°T·V±V°H°ÐÓ>Ð>r   ©F©r*   N©	r"   r&   r'   r)   r   r6   rO   rV   Ú__classcell__©r    s   @r   r,   r,   :   s:   ø„ Øò]ó ð]óð òó ð÷ ?ð ?r   r,   c                   óJ   ‡ — e Zd Zedd„«       Zdd„Zedd„«       Zˆ fd„Zˆ xZS )ÚWrapperTensorWithCustomStridesc                 ó   — ||ddœfS )NÚstridesr/   r*   r1   s      r   r   z5WrapperTensorWithCustomStrides.get_wrapper_propertiesX   s   € à MÐT]Ñ^Ð^Ð^r   c                 ó   — || _         y r3   r4   r5   s      r   r6   z'WrapperTensorWithCustomStrides.__init__\   r7   r   c                 ó¤   ‡ — t        ˆ fd„|D «       «      st        S |€i }d„ }d„ }t        | |t        ||«      i t        ||xs i «      ¤Ž«      }|S )Nc              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr3   r:   r<   s     €r   r>   zDWrapperTensorWithCustomStrides.__torch_dispatch__.<locals>.<genexpr>a   r?   r@   c                 ó>   — t        | t        «      r| j                  S | S r3   )rB   r_   r   rC   s    r   rE   zAWrapperTensorWithCustomStrides.__torch_dispatch__.<locals>.unwrapg   s   € Ü$ QÔ(FÔG�1—3‘3ÐNÈQÐNr   c                 óP   — t        | t        j                  «      rt        | «      S | S r3   )rB   r   r   r_   rC   s    r   rG   z?WrapperTensorWithCustomStrides.__torch_dispatch__.<locals>.wrapj   s!   € Ü8BÀ1ÄeÇlÁlÔ8SÔ1°!Ó4ÐZÐYZÐZr   rH   rK   s   `       r   rO   z1WrapperTensorWithCustomStrides.__torch_dispatch___   s]   ø€ äÓ5¨uÔ5Ô5Ü!Ð!àˆ>ØˆFò	Oò	[ô �d™D¤(¨6°4Ó"8Ð[¼HÀVÈVÊ\ÐWYÓ<ZÑ[Ó\ˆØˆ	r   c                 ó>   •— t         ‰| �  d| j                  › �¬«      S rQ   rT   rW   s    €r   rV   z'WrapperTensorWithCustomStrides.__repr__p   rX   r   rY   rZ   r[   r]   s   @r   r_   r_   W   s:   ø„ Øò_ó ð_óð òó ð÷ ?ð ?r   r_   c                   óN   ‡ — e Zd Zedd„«       Zdd„Zi Zedd„«       Zˆ fd„Zˆ xZ	S )ÚDiagTensorBelowc                 óp   — |j                   dk(  sJ ‚||j                  «       |j                  «       z   |dœfS )Né   ©r	   r   )Úndimr	   )r   Údiagr   s      r   r   z&DiagTensorBelow.get_wrapper_propertiesu   s3   € à�y‰y˜AŠ~Ðˆ~Ø˜dŸi™i›k¨D¯I©I«KÑ7È-ÑXÐXÐXr   c                 ó   — || _         y r3   )rn   )r#   rn   r   s      r   r6   zDiagTensorBelow.__init__z   s	   € Øˆ�	r   c                 ó  ‡ — t        ˆ fd„|D «       «      st        S ‰ j                  j                  |j                  d «      }|r ||i |xs i ¤ŽS d„ }d„ }t        | |t        ||«      i t        ||xs i «      ¤Ž«      }|S )Nc              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr3   r:   r<   s     €r   r>   z5DiagTensorBelow.__torch_dispatch__.<locals>.<genexpr>�   r?   r@   c                 óZ   — t        | t        «      r| j                  j                  «       S | S r3   )rB   ri   rn   rC   s    r   rE   z2DiagTensorBelow.__torch_dispatch__.<locals>.unwrap�   s    € Ü(2°1´oÔ(F�q—v‘v—{‘{“}ÐMÈAÐMr   c                 óP  — t        | t        j                  «      r| j                  dk(  rt	        | «      S t        | t        j                  «      rW| j                  dk(  rH| j                  «       | j                  «       j                  «       k(  rt	        | j                  «       «      S | S )Nrk   é   )rB   r   r   rm   ri   Úcount_nonzerorn   rC   s    r   rG   z0DiagTensorBelow.__torch_dispatch__.<locals>.wrap�   st   € Ü˜a¤§¡Ô.°1·6±6¸Q²;Ü*¨1Ó-Ð-Ü˜a¤§¡Ô.°1·6±6¸Q²;À1Ç?Á?ÓCTÐXY×X^ÑX^ÓX`×XnÑXnÓXpÒCpÜ*¨1¯6©6«8Ó4Ð4Ø�r   )rI   rJ   Úhandled_opsÚgetr"   r   )	r   rL   rM   r   r   ÚfnrE   rG   rN   s	   `        r   rO   z"DiagTensorBelow.__torch_dispatch__   s‡   ø€ äÓ5¨uÔ5Ô5Ü!Ð!ð �_‰_× Ñ  §¡°Ó5ˆÙÙ�tÐ. ¢¨"Ñ.Ð.òNòô ˜$¡¤h¨v°tÓ&<Ð _ÄÈÐQWÒQ]Ð[]Ó@^Ñ _Ó`ˆBØˆIr   c                 ó>   •— t         ‰| �  d| j                  › �¬«      S )Nzdiag=rR   )rU   rV   rn   rW   s    €r   rV   zDiagTensorBelow.__repr__š   s!   ø€ Ü‰wÑ°%¸¿	¹	°{Ð0CÐÓDÐDr   rY   rZ   )
r"   r&   r'   r)   r   r6   rv   rO   rV   r\   r]   s   @r   ri   ri   t   sA   ø„ ØòYó ðYóð €Kàòó ð÷4Eð Er   ri   c                   ó~   ‡ — e Zd Zed	d„«       Zd	d„Zˆ fd„Zd„ Zed„ «       Z	ed
d„«       Z
ˆ fd„Zi Zed„ «       Zˆ xZS )ÚSparseTensorc                 óF   — |j                   |j                   k(  sJ ‚|||dœfS )Nrl   )r   )r   r	   ÚvaluesÚindicesr   s        r   r   z#SparseTensor.get_wrapper_propertiesŸ   s(   € à�}‰} §¡Ò.Ð.Ð.Ø °}ÑEÐEÐEr   c                 ó    — || _         || _        y r3   )r}   r~   )r#   r	   r}   r~   r   s        r   r6   zSparseTensor.__init__¤   s   € ØˆŒØˆ�r   c                 óX   •— t         ‰| �  d| j                  › d| j                  › �¬«      S )Nzvalues=z
, indices=rR   )rU   rV   r}   r~   rW   s    €r   rV   zSparseTensor.__repr__¨   s/   ø€ Ü‰wÑ°'¸$¿+¹+¸ÀjÐQU×Q]ÑQ]ÐP^Ð0_ÐÓ`Ð`r   c                 óÈ   — t        j                  | j                  «       | j                  j                  ¬«      }| j                  || j
                  j                  d«      <   |S )N)r
   rk   )r   Úzerosr	   r}   r
   r~   Úunbind)r#   Úress     r   Úsparse_to_densezSparseTensor.sparse_to_dense«   sD   € Ü�k‰k˜$Ÿ)™)›+¨T¯[©[×->Ñ->Ô?ˆØ&*§k¡kˆˆD�L‰L×Ñ Ó"Ñ#Øˆ
r   c                 ó€   — | j                  «       }| |j                  d«         }t        | j                  «       ||«      S )Nrk   )Únonzerorƒ   r{   r	   )r   r~   r}   s      r   Ú
from_densezSparseTensor.from_dense°   s5   € à—)‘)“+ˆØ�7—>‘> !Ó$Ñ%ˆÜ˜AŸF™F›H f¨gÓ6Ð6r   c                 óÖ   — |j                   › d|j                  › �}| j                  |||«      }|t        ur|S d„ }d„ }t	        | |t	        ||«      i t	        ||xs i «      ¤Ž«      }	|	S )Nú.c                 óF   — t        | t        «      r| j                  «       S | S r3   )rB   r{   r…   rC   s    r   rE   z/SparseTensor.__torch_dispatch__.<locals>.unwrapÀ   s   € Ü*4°Q¼Ô*E�1×$Ñ$Ó&ÐLÈ1ÐLr   c                 ód   — t        | t        j                  «      rt        j	                  | «      S | S r3   )rB   r   r   r{   rˆ   rC   s    r   rG   z-SparseTensor.__torch_dispatch__.<locals>.wrapÄ   s&   € ä1;¸A¼u¿|¹|Ô1L”<×*Ñ*¨1Ó-ÐSÐRSÐSr   )r&   r"   Ú_try_call_special_implrJ   r   )
r   rL   rM   r   r   Ú	func_namer„   rE   rG   rN   s
             r   rO   zSparseTensor.__torch_dispatch__¶   sx   € à—‘Ð' q¨¯©¨Ð8ˆ	à×(Ñ(¨°D¸&ÓAˆØ”nÑ$ØˆJò	Mò	Tô �d™D¤(¨6°4Ó"8Ð[¼HÀVÈVÊ\ÐWYÓ<ZÑ[Ó\ˆØˆ	r   c                 ó"   •— t         ‰| �  |«      S r3   )rU   Ú__rmul__)r#   Úotherr    s     €r   r�   zSparseTensor.__rmul__Ì   s   ø€ Ü‰wÑ Ó&Ð&r   c                 óV   — || j                   vrt        S  | j                   |   ||«      S r3   )Ú_SPECIAL_IMPLSrJ   )r   rL   r   r   s       r   r�   z#SparseTensor._try_call_special_implÑ   s0   € à�s×)Ñ)Ñ)Ü!Ð!Ø'ˆs×!Ñ! $Ñ'¨¨fÓ5Ð5r   rY   rZ   )r"   r&   r'   r)   r   r6   rV   r…   r(   rˆ   rO   r�   r“   r�   r\   r]   s   @r   r{   r{   ž   sm   ø„ ØòFó ðFóôaòð
 ñ7ó ð7ð
 òó ðô*'ð €Nàñ6ó ô6r   r{   c                   ó6   ‡ — e Zd Zd„ Zedˆ fd„	«       Zd„ Zˆ xZS )ÚNonWrapperTensorc                 óX   — t         j                  j                  | |«      }dd i|_        |S )NÚlast_func_called)r   r   Ú_make_subclassÚextra_state)r   Údatar   s      r   r   zNonWrapperTensor.__new__Ú   s-   € Ü�L‰L×'Ñ'¨¨TÓ2ˆà ð
ˆŒð ˆr   c                 óà   •— t         ‰| �  ||||«      }t        || «      rN|t        j                  j
                  u rt        |d   j                  «      |_        |S d|j                  i|_        |S )Nr   r—   )	rU   Ú__torch_function__rB   r   r   Ú__deepcopy__r   r™   r"   )r   rL   rM   r   r   Úresultr    s         €r   rœ   z#NonWrapperTensor.__torch_function__á   sp   ø€ ä‘Ñ+¨D°%¸¸vÓFˆä�f˜cÔ"ð ”u—|‘|×0Ñ0Ñ0Ü%-¨d°1©g×.AÑ.AÓ%B�Ô"ð ˆð '¨¯©ð&�Ô"ð ˆr   c                 óJ   —  t        | «      t        j                  |«      «      S r3   )Útyper   Úempty)r#   Úshapes     r   Ú	new_emptyzNonWrapperTensor.new_emptyò   s   € ØŒt�D‹zœ%Ÿ+™+ eÓ,Ó-Ð-r   rZ   )r"   r&   r'   r   r)   rœ   r£   r\   r]   s   @r   r•   r•   Ù   s!   ø„ òð ôó ðö .r   r•   c                   ó   — e Zd Zg d¢Zdd„Zy)ÚSubclassInfo©ÚnameÚ	create_fnÚclosed_under_opsc                 ó.   — || _         || _        || _        y r3   r¦   )r#   r§   r¨   r©   s       r   r6   zSubclassInfo.__init__û   s   € ØˆŒ	Ø"ˆŒØ 0ˆÕr   N)T)r"   r&   r'   Ú	__slots__r6   r*   r   r   r¥   r¥   ÷   s   „ â9€Iô1r   r¥   c                 ó|   —  | t        j                  |«      «      }|j                  «        |j                  «        |S r3   )r   Úrandnr	   r   )r   r¢   Úsubs      r   Ú_create_and_access_shaper¯     s.   € Ù
Œe�k‰k˜%Ó Ó
!€Cð
 ‡H�H„JØ‡J�J„LØ€Jr   Úbase_tensor)r¨   Únon_wrapper_tensorc                 ó>   — t        t        j                  | «      «      S r3   )r•   r   r­   ©r¢   s    r   ú<lambda>r´     s   € Ô 0´·±¸UÓ1CÓ D€ r   Úlogging_tensorc                 ó>   — t        t        j                  | «      «      S r3   )r   r   r­   r³   s    r   r´   r´     s   € ¤¬e¯k©k¸%Ó.@Ó A€ r   Úsparse_tensorc                 ón   — t         j                  t        j                  | «      j	                  «       «      S r3   )r{   rˆ   r   r­   Úrelur³   s    r   r´   r´     s#   € ¤× 7Ñ 7¼¿¹ÀEÓ8J×8OÑ8OÓ8QÓ R€ r   Údiag_tensor_belowc                 ó>   — t        t        j                  | «      «      S r3   )ri   r   r­   r³   s    r   r´   r´     s   € ¤´·±¸EÓ0BÓ C€ r   F)r¨   r©   Úwrapper_with_custom_sizesc                 ó"   — t        t        | «      S r3   )r¯   r,   r³   s    r   r´   r´   $  s   € Ô 8Ô9UÐW\Ó ]€ r   Úwrapper_with_custom_stridesc                 ó"   — t        t        | «      S r3   )r¯   r_   r³   s    r   r´   r´   )  s   € Ô 8Ô9WÐY^Ó _€ r   c                   óN   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zed„ «       Z	ed„ «       Z
y)ÚSubclassWithTensorFactoryc                 ó(  — |j                   }i }|j                  «       |d<   |j                  «       |d<   |j                  |d<   |j                  |d<   |j
                  |d<   |j                  |d<   t        j                  j                  | |fi |¤Ž}|S )Nra   Ústorage_offsetr   r   r   r
   )
r¢   r   rÃ   r   r   r   r
   r   r   r   )r   Úsrcr¢   r   Úouts        r   r   z!SubclassWithTensorFactory.__new__/  s�   € à—	‘	ˆØˆØŸJ™J›LˆˆyÑØ#&×#5Ñ#5Ó#7ˆÐÑ ØŸ:™:ˆˆxÑØŸ:™:ˆˆxÑØ"%×"3Ñ"3ˆˆÑØŸ)™)ˆˆw‰Ü�l‰l×1Ñ1°#°uÑGÀÑGˆØˆ
r   c                 ó   — || _         y r3   )rÄ   )r#   rÄ   s     r   r6   z"SubclassWithTensorFactory.__init__<  s	   € Øˆ�r   c                 ó0   — | j                   j                  › S r3   )r    r"   ©r#   s    r   rV   z"SubclassWithTensorFactory.__repr__?  s   € Ø—.‘.×)Ñ)Ð*Ð+r   c                 ó   — dgd fS ©NrÄ   r*   rÈ   s    r   Ú__tensor_flatten__z,SubclassWithTensorFactory.__tensor_flatten__B  s   € Øˆw˜ˆ}Ðr   c                 ó   — |d   } | |«      S rÊ   r*   )r   Úinner_tensorsÚmetaÚ
outer_sizeÚouter_striderÄ   s         r   Ú__tensor_unflatten__z.SubclassWithTensorFactory.__tensor_unflatten__E  s   € à˜EÑ"ˆÙ�3‹xˆr   c                 óD  — |€i }d„ }t        j                  | ||«      }t        j                  | ||«      } ||i |¤Ž}t        j                  |«      \  }	}
|	D �cg c]&  }t        |t        j
                  «      r | |«      n|‘Œ( }}t        j                  ||
«      S c c}w )Nc                 óÔ   — | j                   j                  t        j                  k(  r6| j                   t        j                  | j                   j
                  «      z  S | j                   S r3   )rÄ   r
   r   Úfloat32Úonesr¢   )Úxs    r   Ú_fnz9SubclassWithTensorFactory.__torch_dispatch__.<locals>._fnO  sA   € Ø67·e±e·k±kÄUÇ]Á]Ò6R�1—5‘5œ5Ÿ:™: a§e¡e§k¡kÓ2Ñ2Ð]ÐXY×X]ÑX]Ð]r   )ÚpytreeÚtree_map_onlyÚtree_flattenrB   r   r   Útree_unflatten)r   rL   rM   r   r   r×   Ú_argsÚ_kwargsÚ_outÚ	_out_flatÚ	_out_specÚoÚout_flats                r   rO   z,SubclassWithTensorFactory.__torch_dispatch__J  s¢   € àˆ>ØˆFò	^ô ×$Ñ$ S¨#¨tÓ4ˆÜ×&Ñ& s¨C°Ó8ˆá�UÐ&˜gÑ&ˆä%×2Ñ2°4Ó8Ñˆ	�9àJSÖTÀQœj¨¬E¯L©LÔ9‘C˜”F¸qÑ@ÐTˆÐTÜ×$Ñ$ X¨yÓ9Ð9ùò Us   Á+BN)r"   r&   r'   r(   r   r6   rV   rË   r)   rÑ   rO   r*   r   r   rÁ   rÁ   .  sK   „ Øñ
ó ð
òò,òð ñó ðð ñ:ó ñ:r   rÁ   )r   Úcopyr   Útorch.utils._pytreer   ÚutilsÚ_pytreerØ   Ú&torch.testing._internal.logging_tensorr   r   r   r,   r_   ri   r{   r•   r¥   r¯   r­   Úsubclass_dbrÁ   r*   r   r   ú<module>ré      s(  ðó Ý Ý (ß $Ð $õ Aô)G�E—L‘Lô )GôX? =ô ?ô:? ]ô ?ô:'E�mô 'EôT76�=ô 76ôv.�u—|‘|ô .÷<1ñ 1òð 
‡L�L‘,Ø §¡ôð ‘lØÙDôð ‘<ØÙAôð ‘,ØÙRôð ‘\ØÙCØôð
 !¡,Ø#Ù]Øô#ð
 #¡LØ%Ù_Øô%ð5€ôB,: §¡õ ,:r   