Ë
    ìmxiV  ã                   óÄ  — d dl Z d dlmZ d dlZd dlZd dlZd dlmZ ej                  j                  Z ej                  d«      Zd„ Zd„ Zd„ Zeej                  j#                  d ej$                  «       d	f ej&                  «       d
f ej(                  «       df ej*                  «       df ej,                  «       df ej.                  «       df ej0                  «       df ej2                  «       df ej4                  «       df ej6                  «       df ej8                  «       dfg«      d„ «       «       Zeej                  j#                  dej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  g«      d„ «       «       Zd„ Zd„ Z y)é    N©Úwraps)ÚVersionÚnumpyc                 ón   — t         j                  j                  t        j                  | «      |«      dk(  S )Né   )ÚctypesÚ	pythonapiÚPyCapsule_IsValidÚ	py_object)ÚcapsuleÚnames     úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_dlpack.pyr   r       s,   € Ü×Ñ×-Ñ-¬f×.>Ñ.>¸wÓ.GÈÓNÐRSÑSÐSó    c                 óÜ   — | j                  «       }t        |d«      du sJ ‚t        j                  | «      }t        j                  j                  ||d¬«       | j                  «       dk(  sJ ‚y )Ns   dltensorT)Ústrict)r   r   )Ú
__dlpack__r   ÚnpÚfrom_dlpackÚtestingÚassert_array_equalÚ__dlpack_device__)ÚarrÚexpected_arrÚDLTensorÚresults       r   Úcheck_dlpack_exportr   $   sa   € Ø�~‰~Ó€HÜ˜X {Ó3°tÑ;Ð;Ð;ä�^‰^˜CÓ €FÜ‡J�J×!Ñ! &¨,¸tÐ!ÔDà× Ñ Ó" fÒ,Ð,Ñ,r   c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                  óÔ   •— t        j                  «        t        j                  «       }	  ‰| i |¤Žt        j                  «       |k(  sJ ‚S # t        j                  «       |k(  sJ ‚w xY w)N)ÚgcÚcollectÚpaÚtotal_allocated_bytes)ÚargsÚkwargsÚallocated_bytesÚfs      €r   Úwrapperz&check_bytes_allocated.<locals>.wrapper/   s\   ø€ ä
�
‰
ŒÜ×2Ñ2Ó4ˆð	AÙ�dÐ%˜fÑ%ä×+Ñ+Ó-°Ò@Ð@Ñ@ø”2×+Ñ+Ó-°Ò@Ð@Ñ@ús   «A ÁA'r   )r'   r(   s   ` r   Úcheck_bytes_allocatedr)   .   s"   ø€ Ü
ˆ1ƒXóAó ðAð €Nr   )Ú
value_typeÚnp_type_strÚuint8Úuint16Úuint32Úuint64Úint8Úint16Úint32Úint64Úfloat16Úfloat32Úfloat64c                 ó  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j                  g d¢t        j                  |«      ¬«      }t        j
                  || ¬«      }t        ||«       t        j                  j                  |«      }t        ||«       |j                  dd«      }t        j                  dgt        j                  |«      ¬«      }t        ||«       |j                  dd«      }t        j                  dgt        j                  |«      ¬«      }t        ||«       |j                  d«      }t        j                  dd	gt        j                  |«      ¬«      }t        ||«       t        j
                  g | ¬«      }t        j                  g t        j                  |«      ¬«      }t        ||«       t        j                  j                  |«      }t        ||«       y )
Nú1.24.0úyNo dlpack support in numpy versions older than 1.22.0, strict keyword in assert_array_equal added in numpy version 1.24.0©r   é   é   ©Údtype©Útyper   r;   r   r<   )r   r   Ú__version__ÚpytestÚskipÚarrayr>   r"   r   ÚTensorÚ
from_numpyÚslice)r*   r+   Úexpectedr   ÚtÚ
arr_slicedÚarr_zeros          r   Útest_dlpackrL   :   su  € ô$ Œr�~‰~Ó¤¨Ó!2Ò2Ü�‰ð ô 	ô �x‰xš	¬¯©°+Ó)>ˆxÓ?€HÜ
�(‰(�8 *Ô
-€CÜ˜˜XÔ&ä
�	‰	×Ñ˜XÓ&€AÜ˜˜8Ô$à—‘˜1˜a“€JÜ�x‰x˜˜¤2§8¡8¨KÓ#8ˆxÓ9€HÜ˜
 HÔ-à—‘˜1˜a“€JÜ�x‰x˜˜¤2§8¡8¨KÓ#8ˆxÓ9€HÜ˜
 HÔ-à—‘˜1“€JÜ�x‰x˜˜A˜¤b§h¡h¨{Ó&;ˆxÓ<€HÜ˜
 HÔ-ä�x‰x˜ Ô,€HÜ�x‰x˜¤"§(¡(¨;Ó"7ˆxÓ8€HÜ˜ (Ô+ä
�	‰	×Ñ˜XÓ&€AÜ˜˜8Õ$r   Únp_typec                 óò  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j                  g d¢«      }t        j                  || ¬«      j                  dd¬«      }t        j                  j                  |«      }t        ||«       t        j                  || ¬«      j                  dd¬«      }t        j                  j                  |«      }t        ||«       y )	Nr8   r9   )r   r;   r<   é   é   é   r   r   r=   )r;   r;   r;   ÚC)ÚorderÚF)r   r   rA   rB   rC   rD   Úreshaper"   rE   rF   r   )rM   r   rH   rI   s       r   Útest_tensor_dlpackrV   l   s¼   € ô Œr�~‰~Ó¤¨Ó!2Ò2Ü�‰ð ô 	ô �(‰(Ò+Ó
,€CÜ�x‰x˜ 7ˆxÓ+×3Ñ3°IÀSÐ3ÓI€HÜ
�	‰	×Ñ˜XÓ&€AÜ˜˜8Ô$ä�x‰x˜ 7ˆxÓ+×3Ñ3°IÀSÐ3ÓI€HÜ
�	‰	×Ñ˜XÓ&€AÜ˜˜8Õ$r   c                  ó¬  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j                  g d¢«      } t        j                  t        d¬«      5  t        j                  | «       d d d «       t        j                  ddgdd	ggt        j                  t        j                  «       «      ¬
«      } t        j                  t        d¬«      5  t        j                  | «       d d d «       t        j                  g «      } t        j                  t        d¬«      5  t        j                  | «       d d d «       t        j                  g d¢«      } t        j                  t        d¬«      5  t        j                  | «       d d d «       y # 1 sw Y   �Œ$xY w# 1 sw Y   ŒµxY w# 1 sw Y   ŒsxY w# 1 sw Y   y xY w)Nz1.22.0z6No dlpack support in numpy versions older than 1.22.0.)r   Nr<   z,Can only use DLPack on arrays with no nulls.©Úmatchr   r   r<   rO   r?   z+DataType is not compatible with DLPack spec)TFTz5Bit-packed boolean data type not supported by DLPack.)r   r   rA   rB   rC   r"   rD   ÚraisesÚ	TypeErrorr   Úlist_r2   )r   s    r   Útest_dlpack_not_supportedr]   �   sT  € ÜŒr�~‰~Ó¤¨Ó!2Ò2Ü�‰ÐLÔMä
�(‰(’<Ó
 €CÜ	�‰”yð )2ô 
3ñ ä
�‰�sÔ÷ô �(‰(Ø
ˆQˆ�!�Q�ÐÜ�X‰X”b—h‘h“jÓ!ô€Cô 
�‰”yÐ(UÔ	Vñ Ü
�‰�sÔ÷ô �(‰(�2‹,€CÜ	�‰”yÐ(UÔ	Vñ Ü
�‰�sÔ÷ô �(‰(Ò&Ó
'€CÜ	�‰”yð )2ô 
3ñ ä
�‰�sÔ÷ð ÷#ñ ú÷ð ú÷ð ú÷
ð ús0   Á-F%Ã(F2Ä6F>ÆG
Æ%F/Æ2F;Æ>GÇ
Gc                  óº  — t        j                  d«      } t        j                  t        j                  dt        j
                  «       «      g«      }t        j                  g d¢t        j
                  «       ¬«      }t        j                  |g|¬«      }| j                  || j                  d«      «      }| j                  ||j                  «      }|d   }t        j                  t        d¬«      5  t        j                  |«       d d d «       t        j                  t        d¬«      5  |j                  «        d d d «       y # 1 sw Y   Œ>xY w# 1 sw Y   y xY w)	Nzpyarrow.cudaÚf0r:   r?   )Úschemar   z=DLPack support is implemented only for buffers on CPU device.rX   )rB   Úimportorskipr"   r`   Úfieldr1   rD   Úrecord_batchÚserialize_record_batchÚContextÚread_record_batchrZ   ÚNotImplementedErrorr   r   r   )Úcudar`   Úa0ÚbatchÚcbufÚcbatchÚcarrs          r   Útest_dlpack_cuda_not_supportedrn   œ   s  € Ü×Ñ˜~Ó.€Dä�Y‰YœŸ™ ¤r§x¡x£zÓ2Ð3Ó4€FÜ	�‰’)¤"§(¡(£*Ô	-€BÜ�O‰O˜R˜D¨Ô0€Eà×&Ñ& u¨d¯l©l¸1«oÓ>€DØ×#Ñ# D¨%¯,©,Ó7€FØ�$‰<€Dô 
�‰Ô*ð 39ô 
:ñ ä
�‰�tÔ÷ô 
�‰Ô*ð 39ô 
:ñ !à×ÑÔ ÷!ð !÷	ð ú÷!ð !ús   Ã2EÄ+EÅEÅE)!r	   Ú	functoolsr   r    rB   Úpyarrowr"   Úpyarrow.vendored.versionr   Úmarkr   Ú
pytestmarkra   r   r   r   r)   Úparametrizer,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   rL   rV   r]   rn   © r   r   ú<module>rv      s³  ðó$ Ý Û 	Û ã Ý ,ð �[‰[×Ñ€
Ø€V×Ñ˜Ó!€òTò-ò	ð Ø‡�×ÑØ!à	ˆ�‰‹�WÐØ	ˆ�‰‹�hÐØ	ˆ�‰‹�hÐØ	ˆ�‰‹�hÐØ	ˆ�‰‹�FÐØ	ˆ�‰‹�WÐØ	ˆ�‰‹�WÐØ	ˆ�‰‹�WÐØ	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!ðóñ %ó!ó ð"%ðB Ø‡�×Ñ˜ØŸ(™( B§I¡I¨r¯y©y¸"¿)¹)ØŸ'™' 2§8¡8¨R¯X©X°r·x±xØŸ*™* b§j¡j°"·*±*ð?ó@ñ%ó	@ó ð
%ò ó6!r   