Ë
    _QêjþG  ã                   ó0  — 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 G d„ 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j0                  «       df ej2                  «       df ej4                  «       df ej6                  «       df ej8                  «       df ej:                  «       df ej<                  «       dfg«      d„ «       «       Zeej                  j'                  dej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  g«      d„ «       «       Z d„ Z! ed«      eej                  j'                  d e!«       «      d„ «       «       «       Z" ed«      ed„ «       «       Z# ed«      ed„ «       «       Z$d „ Z% ed«      eej                  j'                  d e%«       «      d!„ «       «       «       Z&d"„ Z'eej                  j'                  d# e'«       «      ej                  j'                  d$dd%g«      d&„ «       «       «       Z(d'„ Z)eej                  j'                  d$dd%g«      d(„ «       «       Z*eej                  j'                  d$g d)¢«      ej                  j'                  d*g d+¢«      d,„ «       «       «       Z+eej                  j'                  d# e'«       «      ej                  j'                  d$dd%g«      ej                  j'                  d*d-d.g«      d/„ «       «       «       «       Z,eej                  j'                  d# e'«       «      ej                  j'                  d$g d)¢«      ej                  j'                  d*g d+¢«      d0„ «       «       «       «       Z- ed«      eej                  j'                  d# e'«       «      d1„ «       «       «       Z. ed2«      ed3„ «       «       Z/d4„ Z0d5„ Z1 ed«      eej                  j'                  dej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  g«      d6„ «       «       «       Z2 ed«      eej                  j'                  dej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  g«      d7„ «       «       «       Z3 ed«      eej                  j'                  dej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  g«      d8„ «       «       «       Z4 ed«      eej                  j'                  dej(                  ej4                  ej<                  g«      d9„ «       «       «       Z5 ed«      ed:„ «       «       Z6 ed«      ed;„ «       «       Z7 ed«      ed<„ «       «       Z8d=„ Z9 ed«      ed>„ «       «       Z:y)?é    N©Úwraps)ÚVersionÚnumpyc                 ó’   — t         j                  j                  t        t        j
                  «      t        | «      k  d| › d�¬«      S )NzTest requires numpy z	 or later)Úreason)ÚpytestÚmarkÚskipifr   ÚnpÚ__version__)Úmin_versions    ú^/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pyarrow/tests/test_dlpack.pyÚrequires_numpy_versionr       s@   € Ü�;‰;×ÑÜ”—‘Ó¤'¨+Ó"6Ñ6Ø% k ]°)Ð<ð ó ð ó    c                 ón   — t         j                  j                  t        j                  | «      |«      dk(  S )Né   )ÚctypesÚ	pythonapiÚPyCapsule_IsValidÚ	py_object)ÚcapsuleÚnames     r   r   r   '   s,   € Ü×Ñ×-Ñ-¬f×.>Ñ.>¸wÓ.GÈÓNÐRSÑSÐSr   c                 ó<  — t        j                  t        d¬«      5  | j                  «       }d d d «       t	        d«      du sJ ‚t
        j                  | «      }t
        j                  j                  ||d¬«       | j                  «       dk(  sJ ‚y # 1 sw Y   ŒfxY w)Núunversioned DLPack capsule©Úmatchó   dltensorT©Ústrict©r   r   )
r	   ÚwarnsÚDeprecationWarningÚ
__dlpack__r   r   Úfrom_dlpackÚtestingÚassert_array_equalÚ__dlpack_device__)ÚarrÚexpected_arrÚDLTensorÚresults       r   Úcheck_dlpack_exportr-   +   s†   € Ü	�‰Ô(Ð0LÔ	Mñ $Ø—>‘>Ó#ˆ÷$ä˜X {Ó3°tÑ;Ð;Ð;ä�^‰^˜CÓ €FÜ‡J�J×!Ñ! &¨,¸tÐ!ÔDà× Ñ Ó" fÒ,Ð,Ñ,÷$ð $ús   œBÂBc                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚDLPackForwarderzæForward ``__dlpack__`` to a wrapped object with forced keyword arguments.

    Consumers such as ``np.from_dlpack`` do not expose every ``__dlpack__``
    keyword, so this makes them reachable from a consumer's point of view.
    c                 ó    — || _         || _        y ©N)Ú_objÚ_forced)ÚselfÚobjÚforceds      r   Ú__init__zDLPackForwarder.__init__=   s   € ØˆŒ	Øˆ�r   c                 óV   —  | j                   j                  di i |¥| j                  ¥¤ŽS )N© )r2   r$   r3   )r4   Úkwargss     r   r$   zDLPackForwarder.__dlpack__A   s+   € Ø#ˆt�y‰y×#Ñ#ÑAÐ&@¨Ð&@°4·<±<Ð&@ÑAÐAr   c                 ó6   — | j                   j                  «       S r1   )r2   r(   )r4   s    r   r(   z!DLPackForwarder.__dlpack_device__D   s   € Ø�y‰y×*Ñ*Ó,Ð,r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r7   r$   r(   r9   r   r   r/   r/   6   s   „ ñòòBó-r   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r1   )ÚgcÚcollectÚpaÚtotal_allocated_bytes)Úargsr:   Úallocated_bytesÚfs      €r   Úwrapperz&check_bytes_allocated.<locals>.wrapperI   s\   ø€ ä
�
‰
ŒÜ×2Ñ2Ó4ˆð	AÙ�dÐ%˜fÑ%ä×+Ñ+Ó-°Ò@Ð@Ñ@ø”2×+Ñ+Ó-°Ò@Ð@Ñ@ús   «A ÁA'r   )rH   rI   s   ` r   Úcheck_bytes_allocatedrJ   H   s"   ø€ Ü
ˆ1ƒXóAó ðAð €Nr   )Ú
value_typeÚnp_type_strÚuint8Úuint16Úuint32Úuint64Úint8Úint16Úint32Úint64Úfloat16Úfloat32Úfloat64c                 óž  — 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©r   é   é   ©Údtype©Útyper   rZ   r   r[   )r   Úarrayr]   rD   r-   ÚTensorÚ
from_numpyÚslice)rK   rL   Úexpectedr)   ÚtÚ
arr_slicedÚarr_zeros          r   Útest_dlpackrh   T   sL  € ô$ �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         j                  g d¢«      }t         j                  || ¬«      j                  dd¬«      }t        j                  j                  |«      }t        ||«       t         j                  || ¬«      j                  dd¬«      }t        j                  j                  |«      }t        ||«       y )N)r   rZ   r[   é   é   é   r   r   r\   )rZ   rZ   rZ   ÚC)ÚorderÚF)r   r`   ÚreshaperD   ra   rb   r-   )ri   r)   rd   re   s       r   Útest_tensor_dlpackrr   �   s“   € ô �(‰(Ò+Ó
,€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         j                  dt         j                  ¬«      j                  ddd«      } t	        j
                  | j                  «       t	        j                  «       ¬«      }t        j                  j                  t        j                  j                  |d«      d«      }t        j                  || d¬«      t        j                  t        j                  j                  | «      | d¬«      gS )	Né   r\   r[   rZ   r^   Únested_fixed_size_list©ÚidÚfixed_shape_tensor)r   ÚarangerS   rq   rD   r`   ÚravelÚFixedSizeListArrayÚfrom_arraysr	   ÚparamÚFixedShapeTensorArrayÚfrom_numpy_ndarray)Únp_arrÚvaluesÚnested_lists      r   Úmultidim_arraysrƒ   ‘   s´   € Ü�Y‰Y�r¤§¡ˆYÓ*×2Ñ2°1°a¸Ó;€FÜ�X‰X�f—l‘l“n¬2¯8©8«:Ô6€FÜ×'Ñ'×3Ñ3Ü
×Ñ×)Ñ)¨&°!Ó4°aó9€Kô 	�‰�[ &Ð-EÔFÜ�‰Ü×$Ñ$×7Ñ7¸Ó?ØØ#ô	
ðð r   z2.1.0)r)   rd   c                 óî   — | j                  «       }|j                  rJ ‚t        j                  t	        |d¬«      «      }t        j
                  j                  ||d¬«       |j                  «       dk(  sJ ‚y )Nr!   ©Úmax_versionTr   )Ú	to_tensorÚ
is_mutabler   r%   r/   r&   r'   r(   ©r)   rd   Útensorr,   s       r   Útest_array_to_tensor_dlpackr‹       se   € ð �]‰]‹_€Fð × Ò Ð Ð Ü�^‰^œO¨FÀÔGÓH€FÜ‡J�J×!Ñ! &¨(¸4Ð!Ô@Ø×#Ñ#Ó%¨Ò/Ð/Ñ/r   c                  óÖ  — t         j                  j                  t        j                  t	        d«      t        j
                  «       ¬«      d«      } t         j                  j                  t        j                  t        j
                  «       ddgddg¬«      | «      }|j                  «       }|j                  d	k(  sJ ‚|j                  rJ ‚t        j                  dt        j
                  ¬
«      j                  ddd«      j                  ddd«      }t        j!                  t#        |d¬«      «      }t        j$                  j'                  ||d¬«       |j)                  «       dk(  sJ ‚y )Né   r^   rm   r[   rZ   r   r   ©Úpermutation)rk   rZ   r[   r\   rk   r!   r…   Tr   )rD   r{   r|   r`   ÚrangerS   ÚExtensionArrayÚfrom_storagerx   r‡   ÚshapeÚis_contiguousr   ry   rq   Ú	transposer%   r/   r&   r'   r(   )Ústorager)   rŠ   rd   r,   s        r   Ú-test_fixed_shape_tensor_array_dlpack_permutedr—   ­   s  € ô
 ×#Ñ#×/Ñ/Ü
�‰”�r“¤§¡£Ô,¨aó1€Gä
×
Ñ
×
(Ñ
(Ü
×ÑœbŸh™h›j¨1¨a¨&¸qÀ!¸fÔEÀwóP€Cð �]‰]‹_€FØ�<‰<˜9Ò$Ð$Ð$Ø×#Ò#Ð#Ð#ô �y‰y˜¤2§8¡8ˆyÓ,×4Ñ4°Q¸¸1Ó=×GÑGÈÈ1ÈaÓP€HÜ�^‰^œO¨C¸VÔDÓE€FÜ‡J�J×!Ñ! &¨(¸4Ð!Ô@Ø× Ñ Ó" fÒ,Ð,Ñ,r   c                  ó¤  — t         j                  dt         j                  ¬«      j                  ddd«      } t        j
                  j                  | «      }|d   }t        |t        j                  «      sJ ‚|j                  «       dk(  sJ ‚t         j                  t        |d¬«      «      }t         j                  j                  || d   d¬	«       y )
Nrt   r\   r[   rZ   r   r!   r…   Tr   )r   ry   rS   rq   rD   r~   r   Ú
isinstanceÚFixedShapeTensorScalarr(   r%   r/   r&   r'   )r€   r)   Úscalarr,   s       r   Ú%test_fixed_shape_tensor_scalar_dlpackrœ   Â   s§   € ô �Y‰Y�r¤§¡ˆYÓ*×2Ñ2°1°a¸Ó;€FÜ
×
"Ñ
"×
5Ñ
5°fÓ
=€Cà�‰V€FÜ�fœb×7Ñ7Ô8Ð8Ð8à×#Ñ#Ó%¨Ò/Ð/Ð/ä�^‰^œO¨FÀÔGÓH€FÜ‡J�J×!Ñ! &¨&°©)¸DÐ!ÕAr   c            	      ó.  — t         j                  dt         j                  ¬«      j                  dd«      } t        j
                  j                  t	        j                  | j                  «       t	        j                  «       ¬«      dt	        j                  g d¢«      ¬«      }t        j                  || d¬	«      t        j                  t        j                  j                  t	        j                  t	        j                  «       dg«      |«      | d
¬	«      gS )Nrm   r\   r[   rZ   r^   )FTF)ÚmaskÚfixed_size_listrv   rx   )r   ry   rS   rq   rD   r{   r|   r`   rz   r	   r}   r‘   r’   rx   )r€   r‚   s     r   Úmultidim_arrays_with_nullsr    Ñ   sÉ   € Ü�Y‰Y�q¤§¡ˆYÓ)×1Ñ1°!°QÓ7€Fô ×'Ñ'×3Ñ3Ü
�‰�—‘“¤b§h¡h£jÔ1°1Ü�X‰XÒ*Ó+ð 4ó -€Kô 	�‰�[ &Ð->Ô?Ü�‰Ü×Ñ×*Ñ*Ü×%Ñ%¤b§h¡h£j°1°#Ó6¸óEàØ#ô		
ðð r   c                 ó@  — t        j                  t        j                  d¬«      5  | j	                  «        d d d «       | j	                  d¬«      }t
        j                  t        |d¬«      «      }t
        j                  j                  ||d¬«       y # 1 sw Y   Œ^xY w)NzArray contains nullsr   T)Úallow_nullsr!   r…   r   )
r	   ÚraisesrD   ÚArrowInvalidr‡   r   r%   r/   r&   r'   r‰   s       r   Ú!test_array_to_tensor_dlpack_nullsr¥   ã   su   € ô 
�‰”r—‘Ð.DÔ	Eñ Ø�‰Œ÷ð �]‰] tˆ]Ó,€FÜ�^‰^œO¨FÀÔGÓH€FÜ‡J�J×!Ñ! &¨(¸4Ð!Õ@÷ð ús   ¦BÂBc                  ó  — t        j                  g d¢t        j                  «       ¬«      } t        j                  | d¬«      t        j                  | j                  d«      d¬«      t        j                  t        j                  g t        j                  «       ¬«      d¬«      t        j                  t         j                  j                  t        j                  ddgd	d
ggt        j                  ¬«      «      d¬«      gS )NrY   r^   r`   rv   r   Úsliced_arrayÚempty_arrayrZ   r[   rk   r\   rŠ   )	rD   r`   rS   r	   r}   rc   ra   rb   r   ©r)   s    r   Údlpack_objectsrª   ï   s¤   € Ü
�(‰(’9¤2§8¡8£:Ô
.€Cä�‰�S˜WÔ%Ü�‰�S—Y‘Y˜q“\ nÔ5Ü�‰”R—X‘X˜b¤r§x¡x£zÔ2°}ÔEÜ�‰Ü�I‰I× Ñ ¤§¡¨A¨q¨6°A°q°6Ð*:Ä"Ç(Á( Ó!KÓLØô	
ð	ð r   r5   r†   )r   é   c                 ó¨   — t        j                  t        d¬«      5  | j                  |¬«      }d d d «       t	        d«      du sJ ‚y # 1 sw Y   ŒxY w)Nr   r   r…   r   T)r	   r"   r#   r$   r   )r5   r†   r   s      r   Útest_dlpack_legacy_capsuler­   ü   sN   € ô 
�‰Ô(Ð0LÔ	Mñ :Ø—.‘.¨[�.Ó9ˆ÷:ä˜W kÓ2°dÑ:Ð:Ñ:÷:ð :ús   œAÁAc                  óØ   — t         j                  ddgddggt         j                  ¬«      } d| j                  _        t
        j                  j                  | «      }|j                  rJ ‚|S )Nr   rZ   r[   rk   r\   F)	r   r`   rS   ÚflagsÚ	writeablerD   ra   rb   rˆ   )r€   rŠ   s     r   Úimmutable_tensorr±     sY   € Ü�X‰X˜˜1�v  1˜vÐ&¬b¯h©hˆXÓ7€FØ"€F‡L�LÔÜ�Y‰Y×!Ñ! &Ó)€FØ× Ò Ð Ð Ø€Mr   c                 óœ   — t        «       }t        j                  t        d¬«      5  |j	                  | ¬«       d d d «       y # 1 sw Y   y xY w)Nz>Legacy DLPack support is not implemented for immutable tensorsr   r…   )r±   r	   r£   ÚNotImplementedErrorr$   )r†   rŠ   s     r   Ú+test_dlpack_legacy_capsule_immutable_tensorr´     sH   € ô Ó€FÜ	�‰Ô*ð5ô
6ñ 3ð 	×Ñ kÐÔ2÷3÷ 3ñ 3ús   ¦AÁA)r!   ©r   r[   )rZ   r   Úcopy©NFTc                 ó^   — t        «       }|j                  | |¬«      }t        |d«      du sJ ‚y ©N©r†   r¶   s   dltensor_versionedT)r±   r$   r   )r†   r¶   rŠ   r   s       r   Ú.test_dlpack_versioned_capsule_immutable_tensorr»     s7   € ô Ó€FØ×Ñ¨K¸dÐÓC€GÜ˜WÐ&;Ó<ÀÑDÐDÑDr   FTc                 óŠ   — t        j                  t        d¬«      5  | j                  ||¬«       d d d «       y # 1 sw Y   y xY w)Nzcopy argument is not supportedr   rº   )r	   r£   ÚBufferErrorr$   )r5   r†   r¶   s      r   Ú-test_dlpack_legacy_capsule_copy_not_supportedr¾      s8   € ô
 
�‰”{Ð*JÔ	Kñ ;Ø�‰ ;°TˆÔ:÷;÷ ;ñ ;ús	   œ9¹Ac                 óJ   — | j                  ||¬«      }t        |d«      du sJ ‚y r¹   )r$   r   )r5   r†   r¶   r   s       r   Útest_dlpack_versioned_capsulerÀ   )  s,   € ð
 �n‰n¨¸4ˆnÓ@€GÜ˜WÐ&;Ó<ÀÑDÐDÑDr   c                 óØ   — t         j                  t        | d ¬«      «      }dD ]E  }t         j                  t        | d|¬«      «      }t         j                  j	                  ||d¬«       ŒG y )Nr…   r·   r!   rº   Tr   )r   r%   r/   r&   r'   )r5   rd   r¶   r,   s       r   Útest_dlpack_versioned_roundtriprÂ   2  s^   € ô �~‰~œo¨c¸tÔDÓE€HØ#ò EˆÜ—‘Ü˜C¨V¸$Ô?óAˆä
�
‰
×%Ñ% f¨h¸tÐ%ÕDñEr   z2.2.5c                  ót  — t        j                  g d¢t        j                  «       ¬«      } t        j	                  t        | d¬«      «      }|j                  j                  rJ ‚t        j	                  t        | dd¬«      «      }|j                  j                  sJ ‚d|d<   | j                  «       g d¢k(  sJ ‚y )	NrY   r^   rµ   r…   Trº   éd   r   )	rD   r`   rS   r   r%   r/   r¯   r°   Ú	to_pylist)r)   ÚsharedÚcopieds      r   Útest_dlpack_copy_is_writeablerÈ   =  s�   € ô �(‰(’9¤2§8¡8£:Ô
.€Cô �^‰^œO¨C¸VÔDÓE€FØ�|‰|×%Ò%Ð%Ð%ô �^‰^œO¨C¸VÈ$ÔOÓP€FØ�<‰<×!Ò!Ð!Ð!Ø€Fˆ1�IØ�=‰=‹?šiÒ'Ð'Ñ'r   c                  ó8  — 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)N)r   Nr[   z,Can only use DLPack on arrays with no nulls.r   r   r   r[   rk   r^   z+DataType is not compatible with DLPack spec)TFTz5Bit-packed boolean data type not supported by DLPack.)	rD   r`   r	   r£   Ú	TypeErrorr   r%   Úlist_rS   r©   s    r   Útest_dlpack_not_supportedrÌ   N  s1  € Ü
�(‰(’<Ó
 €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Ô÷ð ÷#ñ ú÷ð ú÷ð ú÷
ð ús/   ³E+Â.E8Ã<FÅFÅ+E5Å8FÆFÆFc                  óÆ  — t        j                  dt        ¬«      } 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)Úexc_typeÚf0rY   r^   )Úschemar   z=DLPack support is implemented only for buffers on CPU device.r   )r	   ÚimportorskipÚImportErrorrD   rÐ   ÚfieldrR   r`   Úrecord_batchÚserialize_record_batchÚContextÚread_record_batchr£   r³   r   r%   r(   )ÚcudarÐ   Úa0ÚbatchÚcbufÚcbatchÚcarrs          r   Útest_dlpack_cuda_not_supportedrÞ   f  s
  € Ü×Ñ˜~¼ÔD€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   Ã8EÄ1EÅEÅE c                 ó"  ‡ — ˆ fd„}t         j                  j                   |«       «      }t        |t         j                  «      sJ ‚t	        j
                  «        t        j                  j                  |j                  «        |«       d¬«       y )Nc                  ó�   •— t         j                  d‰¬«      j                  d«      } | d d d…dd d…f   }|j                  d   rJ ‚|S )Nr�   r\   )rk   rm   rZ   r   ÚC_CONTIGUOUS)r   ry   rq   r¯   )Úbaser`   ri   s     €r   Ú
make_arrayz+test_tensor_from_dlpack.<locals>.make_array‚  sN   ø€ Ü�y‰y˜ 7ˆyÓ+×3Ñ3°FÓ;ˆØ‘S�q�S˜!˜$˜Q˜$�Y‘ˆØ—;‘;˜~Ò.Ð.Ð.Øˆr   Tr   )
rD   ra   r%   r™   rB   rC   r   r&   r'   Úto_numpy)ri   rã   rŠ   s   `  r   Útest_tensor_from_dlpackrå   {  s_   ø€ ôô �Y‰Y×"Ñ"¡:£<Ó0€FÜ�fœbŸi™iÔ(Ð(Ð(Ü‡J�J„LÜ‡J�J×!Ñ! &§/¡/Ó"3±Z³\È$Ð!ÕOr   c                 ó0  — t         j                  g d¢| ¬«      }t        j                  j	                  |«      }|j                  d¬«       t        |t        j                  «      sJ ‚t         j                  j                  |j                  «       |d¬«       y )N)r   rZ   r[   rk   rl   r\   T©Úfullr   )
r   r`   rD   ÚArrayr%   Úvalidater™   r&   r'   rä   )ri   rd   r)   s      r   Útest_array_from_dlpackrë   �  sk   € ô �x‰xš¨wˆxÓ7€HÜ
�(‰(×
Ñ
˜xÓ
(€CØ‡L�L�d€LÔÜ�cœ2Ÿ8™8Ô$Ð$Ð$Ü‡J�J×!Ñ! #§,¡,£.°(À4Ð!ÕHr   c                 ó   — t         j                  d| ¬«      j                  d«      }t        j                  j                  |«      }|j                  d¬«       |j                  t        j                  t        j                  | «      ddg«      k(  sJ ‚|j                  «       g d¢g d¢g d	¢gk(  sJ ‚d
|d<   |j                  «       d   g d¢k(  sJ ‚t        j                  j                  |d¬«      }d|d<   |j                  «       d   g d¢k(  sJ ‚y )Nrt   r\   ©r[   rZ   rZ   Trç   rZ   )r   r   rZ   r[   )rk   rl   rm   é   )r«   é	   é
   é   rÄ   ©r   r   r   r   )rÄ   r   rZ   r[   ©r¶   )r   ry   rq   rD   r~   r%   rê   r_   rx   Úfrom_numpy_dtyperÅ   )ri   Úsourcer)   rÇ   s       r   Ú)test_fixed_shape_tensor_array_from_dlpackrö   ž  sò   € ô �Y‰Y�r ˆYÓ)×1Ñ1°)Ó<€FÜ
×
"Ñ
"×
.Ñ
.¨vÓ
6€CØ‡L�L�d€LÔØ�8‰8”r×,Ñ,¬R×-@Ñ-@ÀÓ-IÈAÈqÈ6ÓRÒRÐRÐRØ�=‰=‹?š|ª\º>ÐJÒJÐJÐJð €Fˆ7�OØ�=‰=‹?˜1Ñ¢Ò/Ð/Ð/ä×%Ñ%×1Ñ1°&¸tÐ1ÓD€FØ€Fˆ7�OØ×ÑÓ˜aÑ ¢NÒ2Ð2Ñ2r   c                 óÚ  — t         j                  d| ¬«      j                  d«      j                  ddd«      }t        j
                  j                  |«      }|j                  d¬«       |j                  t	        j                  t	        j                  | «      ddgddg¬	«      k(  sJ ‚t         j                  j                  |j                  «       |«       d
|d<   t         j                  j                  |j                  «       |«       t        j
                  j                  |d¬«      }|j                  «       }d|d<   t         j                  j                  |j                  «       |«       y )Nrt   r\   rí   r   rZ   r   Trç   rŽ   rÄ   rò   ró   )r   ry   rq   r•   rD   r~   r%   rê   r_   rx   rô   r&   r'   Úto_numpy_ndarrayr¶   )ri   rõ   r)   rÇ   rd   s        r   Ú4test_fixed_shape_tensor_array_from_dlpack_transposedrù   ´  s&  € ô �Y‰Y�r ˆYÓ)×1Ñ1°)Ó<×FÑFÀqÈ!ÈQÓO€FÜ
×
"Ñ
"×
.Ñ
.¨vÓ
6€CØ‡L�L�d€LÔØ�8‰8”r×,Ñ,Ü
×Ñ˜GÓ$ q¨! f¸1¸a¸&ôBò Bð Bð Bä‡J�J×!Ñ! #×"6Ñ"6Ó"8¸&ÔAð €Fˆ7�OÜ‡J�J×!Ñ! #×"6Ñ"6Ó"8¸&ÔAä×%Ñ%×1Ñ1°&¸tÐ1ÓD€FØ�{‰{‹}€HØ€Fˆ7�OÜ‡J�J×!Ñ! &×"9Ñ"9Ó";¸XÕFr   c                  ó@  — t         j                  dt         j                  ¬«      j                  d«      j	                  ddd«      } t        j                  t        j                  d¬«      5  t        j                  j                  | «       d d d «       y # 1 sw Y   y xY w)	Nrt   r\   rí   r   r   rZ   z)Only first-major tensors can be zero-copyr   )r   ry   rS   rq   r•   r	   r£   rD   r¤   r~   r%   )rõ   s    r   Ú9test_fixed_shape_tensor_array_from_dlpack_not_first_majorrû   É  ss   € ô
 �Y‰Y�r¤§¡ˆYÓ*×2Ñ2°9Ó=×GÑGÈÈ1ÈaÓP€FÜ	�‰”r—‘ØHô
Jñ 5ä
× Ñ ×,Ñ,¨VÔ4÷5÷ 5ñ 5ús   Á+ BÂBc                  óì   — t         j                  g d¢t         j                  ¬«      } t        j                  j                  | «      }|j                  «       }d| d<   |d   dk(  sJ ‚d|d<   | d   dk(  sJ ‚y )NrY   r\   rÄ   r   é*   r   ©r   r`   rT   rD   ra   r%   rä   ©rd   rŠ   r,   s      r   Útest_from_dlpack_zero_copyr   Ô  sp   € ô �x‰xš	¬¯©ˆxÓ2€HÜ�Y‰Y×"Ñ" 8Ó,€FØ�_‰_Ó€Fà€HˆQ�KØ�!‰9˜ÒÐÐà€Fˆ1�IØ�A‰;˜"ÒÐÑr   c                  óÒ   — t         j                  g d¢t         j                  ¬«      } t        j                  j                  | d¬«      }|j                  «       }d| d<   |d   dk(  sJ ‚y )NrY   r\   Tró   rÄ   r   r   rþ   rÿ   s      r   Útest_from_dlpack_explicit_copyr  â  sX   € ô �x‰xš	¬¯©ˆxÓ2€HÜ�Y‰Y×"Ñ" 8°$Ð"Ó7€FØ�_‰_Ó€FØ€HˆQ�Kà�!‰9˜Š>Ð‰>r   c                  ó®   — t        j                  t        «      5  t        j                  j                  t        «       «       d d d «       y # 1 sw Y   y xY wr1   )r	   r£   ÚAttributeErrorrD   ra   r%   Úobjectr9   r   r   Ú!test_from_dlpack_no_dlpack_methodr  í  s7   € Ü	�‰”~Ó	&ñ (Ü
�	‰	×Ñœf›hÔ'÷(÷ (ñ (ús   š(AÁAc                  ó  — t         j                  dt         j                  ¬«      j                  d«      } t	        j
                  t        j                  d¬«      5  t        j                  j                  | «       d d d «       y # 1 sw Y   y xY w)Nrm   r\   )rZ   r[   z@Only contiguous one dimensional tensor can be imported as arraysr   )
r   ry   rS   rq   r	   r£   rD   r¤   ré   r%   )rd   s    r   Ú.test_array_from_dlpack_multi_dim_not_supportedr  ò  sd   € ô �y‰y˜¤"§(¡(ˆyÓ+×3Ñ3°FÓ;€HÜ	�‰Ü
�‰ØPô
ñ 'ô 	�‰×Ñ˜XÔ&÷	'÷ 'ñ 'ús   Á BÂB);r   Ú	functoolsr   rB   r	   ÚpyarrowrD   Úpyarrow.vendored.versionr   r
   r   Ú
pytestmarkrÑ   r   r   r   r-   r/   rJ   ÚparametrizerM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rh   rr   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  r9   r   r   ú<module>r     sý  ðó$ Ý Û 	Û ã Ý ,ð �[‰[×Ñ€
Ø€V×Ñ˜Ó!€òòTò-÷-ñ -ò$	ð Ø‡�×ÑØ!à	ˆ�‰‹�WÐØ	ˆ�‰‹�hÐØ	ˆ�‰‹�hÐØ	ˆ�‰‹�hÐØ	ˆ�‰‹�FÐØ	ˆ�‰‹�WÐØ	ˆ�‰‹�WÐØ	ˆ�‰‹�WÐØ	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!ðóñ %ó!ó ð"%ð8 Ø‡�×Ñ˜ØŸ(™( B§I¡I¨r¯y©y¸"¿)¹)ØŸ'™' 2§8¡8¨R¯X©X°r·x±xØŸ*™* b§j¡j°"·*±*ð?ó@ñ%ó	@ó ð
%òñ ˜Ó ØØ‡�×ÑÐ,©oÓ.?Ó@ñ0ó Aó ó !ð0ñ ˜Ó Øñ-ó ó !ð-ñ& ˜Ó Øñ
Bó ó !ð
Bòñ$ ˜Ó ØØ‡�×ÑÐ,Ñ.HÓ.JÓKñAó Ló ó !ðAò
ð Ø‡�×Ñ˜¡Ó 0Ó1Ø‡�×Ñ˜¨¨v¨Ó7ñ;ó 8ó 2ó ð;òð Ø‡�×Ñ˜¨¨v¨Ó7ñ3ó 8ó ð3ð Ø‡�×Ñ˜Ò(@ÓAØ‡�×Ñ˜Ò!4Ó5ñEó 6ó Bó ðEð Ø‡�×Ñ˜¡Ó 0Ó1Ø‡�×Ñ˜¨¨v¨Ó7Ø‡�×Ñ˜ %¨ Ó/ñ;ó 0ó 8ó 2ó ð;ð
 Ø‡�×Ñ˜¡Ó 0Ó1Ø‡�×Ñ˜Ò(@ÓAØ‡�×Ñ˜Ò!4Ó5ñEó 6ó Bó 2ó ðEñ
 ˜Ó ØØ‡�×Ñ˜¡Ó 0Ó1ñEó 2ó ó !ðEñ ˜Ó Øñ(ó ó !ð(òò0!ñ* ˜Ó ØØ‡�×Ñ˜ØŸ(™( B§I¡I¨r¯y©y¸"¿)¹)ØŸ'™' 2§8¡8¨R¯X©X°r·x±xØŸ*™* b§j¡j°"·*±*ð>ó?ñPó	?ó ó !ðPñ ˜Ó ØØ‡�×Ñ˜ØŸ(™( B§I¡I¨r¯y©y¸"¿)¹)ØŸ'™' 2§8¡8¨R¯X©X°r·x±xØŸ*™* b§j¡j°"·*±*ð>ó?ñIó	?ó ó !ðIñ ˜Ó ØØ‡�×Ñ˜ØŸ(™( B§I¡I¨r¯y©y¸"¿)¹)ØŸ'™' 2§8¡8¨R¯X©X°r·x±xØŸ*™* b§j¡j°"·*±*ð>ó?ñ3ó	?ó ó !ð3ñ  ˜Ó ØØ‡�×Ñ˜ R§X¡X¨r¯x©x¸¿¹Ð$DÓEñGó Fó ó !ðGñ$ ˜Ó Øñ5ó ó !ð5ñ ˜Ó Øñ	ó ó !ð	ñ ˜Ó Øñó ó !ðò(ñ
 ˜Ó Øñ'ó ó !ñ'r   