
    <>if                     ~   S SK r S SKrS SKrS SKr S SKJr  S SKr S SK	r
S SKJr  \R                  R                  \SL SS9r\R"                  " \SS9r\R"                  " \SS9r\R"                  " \SS9rS	 r\ R.                  S
 5       r " S S\R2                  5      rS rS rS rS rS rS r S r!\S 5       r"\S 5       r#S r$\S 5       r%\S 5       r&SCS jr'\S 5       r(\S 5       r)\S 5       r*S r+\S 5       r,\S 5       r-\S  5       r.S! r/S" r0S# r1\\R                  Re                  S$\0\1/5      S% 5       5       r3\S& 5       r4\S' 5       r5\R                  Re                  S(\Rl                  " 5       \Rn                  " S)\Rl                  " 5       5      \Rp                  " S)\Rl                  " 5       05      // S*QS+9S, 5       r9\R                  Re                  S-\Rt                  " / S.Q5      S/ \Rl                  " 5       \Rv                  " 5       4\Rx                  " \Rt                  " / S.Q5      /S0/S19S2 \Rp                  " S0\Rl                  " 5       05      \Rp                  " S0\Rv                  " 5       05      4/S3S4/S+9S5 5       r=\R                  Re                  S-\Rt                  " / S.Q5      S6 \Rl                  " 5       \Rv                  " 5       4\Rx                  " \Rt                  " / S.Q5      /S0/S19S7 \Rp                  " S0\Rl                  " 5       05      \Rp                  " S0\Rv                  " 5       05      4/S3S4/S+9S8 5       r>\R                  Re                  S9\R~                  R                  S: /S;S</S+9S= 5       rAS> rBS? rCS@ rDSA rE\SB 5       rFg! \ a    Sr GNf = f! \ a    S=r
r GNf = f)D    N)ffiz!test needs cffi package installed)reasonz"Cannot import released ArrowSchemamatchz!Cannot import released ArrowArrayz#Cannot import released Arrow Streamc                 p    [         R                  R                  [         R                  " U 5      U5      S:H  $ N   )ctypes	pythonapiPyCapsule_IsValid	py_object)capsulenames     V/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/test_cffi.pyr   r   3   s,    --f.>.>w.GNRSSS    c              #      #    [         R                  " U 5         S v   [         R                  " U R                  5        g ! [         R                  " U R                  5        f = f7fN)paregister_extension_typeunregister_extension_typeextension_name)ext_types    r   registered_extension_typer   7   sC     x(>
$$X%<%<=$$X%<%<=s   A$? !A$"A!!A$c                   N   ^  \ rS rSrU 4S jr\S 5       rS r\S 5       r	Sr
U =r$ )ParamExtType@   c                 Z   > Xl         [        TU ]	  [        R                  " U5      S5        g )Nz$pyarrow.tests.test_cffi.ParamExtType)_widthsuper__init__r   binary)selfwidth	__class__s     r   r    ParamExtType.__init__B   s$    5)?	Ar   c                     U R                   $ r   r   r"   s    r   r#   ParamExtType.widthG   s    {{r   c                 H    [        U R                  5      R                  5       $ r   )strr#   encoder(   s    r   __arrow_ext_serialize__$ParamExtType.__arrow_ext_serialize__K   s    4::%%''r   c                 D    [        UR                  5       5      nU " U5      $ r   )intdecode)clsstorage_type
serializedr#   s       r   __arrow_ext_deserialize__&ParamExtType.__arrow_ext_deserialize__N   s    J%%'(5zr   r'   )__name__
__module____qualname____firstlineno__r    propertyr#   r-   classmethodr5   __static_attributes____classcell__)r$   s   @r   r   r   @   s6    A
  (  r   r   c                      [         R                  " S[         R                  " [         R                  " 5       5      4/SS0S9$ )Nints   key1   value1metadata)r   schemalist_int32 r   r   make_schemarI   T   s4    99vrxx
345&	24 4r   c                  H    [         R                  " S[        S5      4/SS0S9$ Next   rA   rB   rC   )r   rE   r   rH   r   r   make_extension_schemarN   Y   s)    99ul1o./&	24 4r   c                  \    [         R                  " S[        S5      R                  4/SS0S9$ rK   )r   rE   r   r3   rH   r   r   make_extension_storage_schemarP   ^   s/    99ul1o::;<&	24 4r   c                  L    [         R                  " S/SS///[        5       5      $ )Nr	      *   )r   record_batchrI   rH   r   r   
make_batchrU   d   s"    ??aS1b'N+[];;r   c                      [        5       n U S   R                  R                  [        R                  " SS/[        R
                  " S5      S95      n[        R                  " U/U 5      $ )Nr   s   foos   barrM   type)rN   rX   
wrap_arrayr   arrayr!   rT   )rE   ext_cols     r   make_extension_batchr\   h   sT    "$FQinn''&&1A68iil)D EG??G9f--r   c                      [        5       n [        R                  " S/SS///U 5      [        R                  " S / SS///U 5      /$ )Nr	   rR   rS         )rI   r   rT   rE   s    r   make_batchesra   o   sJ    ]F
1#2w(&1
$QF+,f5 r   c                 (   [         R                  " 5        n[         R                  R                  X 5       nU H  nUR	                  U5        M     S S S 5        UR                  5       sS S S 5        $ ! , (       d  f       N'= f! , (       d  f       g = fr   )r   BufferOutputStreamipc
new_streamwritegetvalue)rE   batchessinkoutbatchs        r   make_serializedrl   w   sb    				 DVVt, 		%  ! - }}	 
!	 ,, 
!	 s"    BA2B2
B 	<B
Bc                     [         R                  " S5      n [        [         R                  " SU 5      5      n[        R
                  " 5         [        R                  " 5       n[        R                  " [        R                  " 5       5      nUR                  U5        [        R                  " 5       U:  d   eA[        R                  " 5       U:  d   e[        R                  R                  U5      nU[        R                  " [        R                  " 5       5      :X  d   e[        R                  " 5       U:X  d   e[           [        R                  R                  U5        S S S 5        [        R                  " 5       R                  U5        [         R                  " SS5      nXPl        [        R                   " ["        SS9   [        R                  R                  U5        S S S 5        [           [        R                  R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NN= f! , (       d  f       g = f)Nstruct ArrowSchema*	uintptr_tzchar[]s   zzzz$Invalid or unsupported format stringr   )r   newr0   castgccollectr   total_allocated_bytesrF   rG   _export_to_cDataType_import_from_cassert_schema_releasedformatpytestraises
ValueError)c_schema
ptr_schemaold_allocatedtyptyp_new
bad_formats         r   test_export_import_typer      s   ww,-HSXXk845JJJL,,.M
((288:
CZ ##%555##%555kk((4Gbhhrxxz****##%666	
"":. 
  HHJJ'6*J O	zC
E
"":.
E 
 
"":. 
 	 
 	
E 
E 
 	s$    H H+1 H<
H(+
H9<
I
c                  F   [         R                  " S5      n [        [         R                  " SU 5      5      n[        R
                  " 5         [        R                  " 5       n[        R                  " S[        R                  " [        R                  " 5       5      SS9nUR                  U5        [        R                  " 5       U:  d   eA[        R                  " 5       U:  d   e[        R                  R                  U5      nU[        R                  " S[        R                  " [        R                  " 5       5      SS9:X  d   e[        R                  " 5       U:X  d   e[           [        R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nrn   ro   testT)nullable)r   rp   r0   rq   rr   rs   r   rt   fieldrF   rG   ru   Fieldrw   rx   )r}   r~   r   r   	field_news        r   test_export_import_fieldr      s   ww,-HSXXk845JJJL,,.MHHVRXXbhhj1DAE	z"##%555##%555''
3I"((*)=MMMM##%666 
 

+ 
 		s   ) F
F c                    [         R                  " S5      n[        [         R                  " SU5      5      n[         R                  " SU  S35      n[        [         R                  " SU5      5      n[        R
                  " 5         [        R                  " 5       n[        R                  " [        R                  " 5       5      n[        R                  " S/SS//US9n	U	R                  5       n
U" X5        [        R                  " 5       U:  d   eA	U" Xh5      nUR                  5       U
:X  d   eUR                  [        R                  " [        R                  " 5       5      :X  d   e[        R                  " 5       U:  d   eAA[        R                  " 5       U:X  d   e[           U" U[        R                  " [        R                  " 5       5      5        S S S 5        [        R                  " S/SS//[        R                  " [        R                  " 5       5      S9n	U	R                  5       n
U" XU5        A	U" Xd5      nUR                  5       U
:X  d   eUR                  [        R                  " [        R                  " 5       5      :X  d   e[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   e[           U" Xd5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)	Nrn   ro   struct *r	   rR   rS   rW   )r   rp   r0   rq   rr   rs   r   rt   rF   rG   rZ   	to_pylistrX   assert_array_releasedrx   )
array_typeexporterimporterr}   r~   c_array	ptr_arrayr   r   arrpy_valuearr_news               r   check_export_import_arrayr      s7   ww,-HSXXk845Jgg
|1-.GCHH['23IJJL,,.M ((288:
C
((QC!R>
,C}}HS##%555y&G(***<<288BHHJ////##%555##%666	BHHRXXZ01 
 ((QC!R>(<
=C}}HSZ(y-G(***<<288BHHJ////##%555##%666	' 
 	! 
	  
 	s   '1K!	K3!
K03
Lc                  ~    [        S[        R                  R                  [        R                  R                  5        g N
ArrowArray)r   r   Arrayru   rw   rH   r   r   test_export_import_arrayr      s'    

r   c                     [        S[        R                  R                  [        R                  R                  5        [
        R                  " S5      n [        [
        R                  " SU 5      5      n[        R                  " S/SS//[        R                  " [        R                  " 5       5      S9nUR                  U5        U R                  S:X  d   eU R                  S:X  d   eU R                  R                  S:X  d   eg )	NArrowDeviceArraystruct ArrowDeviceArray*ro   r	   rR   rS   rW   )r   r   r   _export_to_c_device_import_from_c_devicer   rp   r0   rq   rZ   rF   rG   device_type	device_idlength)r   r   r   s      r   test_export_import_device_arrayr      s    
$$
&& gg01GCHH['23I
((QC!R>(<
=CI&!###"""==1$$$r   c                    Uc  U n[         R                  " S5      n[        [         R                  " SU5      5      n[        R
                  " 5         [        R                  " 5       nU " 5       R                  U5        [        R                  " 5       U:  d   e[        R                  R                  U5      nXQ" 5       :X  d   e[        R                  " 5       U:X  d   eA[        R                  " 5       U:X  d   e[           [        R                  R                  U5        S S S 5        [        R                  " 5       R                  U5        [        R                  " [        SS9   [        R                  R                  U5        S S S 5        [           [        R                  R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NN= f! , (       d  f       g = f)Nrn   ro   %ArrowSchema describes non-struct typer   )r   rp   r0   rq   rr   rs   r   rt   ru   Schemarw   rx   rG   rz   r{   r|   )schema_factoryexpected_schema_factoryr}   r~   r   
schema_news         r   check_export_import_schemar      s`   &"0ww,-HSXXk845JJJL,,.M!!*-##%555))*5J02222##%666##%666	
		  , 
  HHJJ'	zD
F
		  ,
F 
 
		  , 
 	 
 	

F 
F 
 	s$   ? F;$ G G;
G	
G
G+c                  "    [        [        5        g r   )r   rI   rH   r   r   test_export_import_schemar      s
    {+r   c                      [        [        [        5        [        [	        S5      5         [        [        5        S S S 5        g ! , (       d  f       g = fr   )r   rN   rP   r   r   rH   r   r   (test_export_import_schema_with_extensionr   %  s5     4<> 
#<?	3"#89 
4	3	3s   A
Ac                     [         R                  " S5      n [        [         R                  " SU 5      5      nSn[        R
                  " [        US9   [        5       R                  [        U5      5        S S S 5        [        R
                  " [        US9   [        R                  R                  [        U5      5      nS S S 5        W[        5       :X  d   eg ! , (       d  f       Ni= f! , (       d  f       N0= f)Nrn   ro   z,Passing a pointer value as a float is unsafer   )r   rp   r0   rq   rz   warnsUserWarningrI   ru   floatr   r   rw   )r}   r~   r   r   s       r   'test_export_import_schema_float_pointerr   0  s     ww,-HSXXk845J:E	k	/""5#45 
0	k	/YY--eJ.?@
 
0&&&	 
0	/	/	/s   #C)C)
C&)
C7c                    [         R                  " S5      n[        [         R                  " SU5      5      n[         R                  " SU  S35      n[        [         R                  " SU5      5      n[        R
                  " 5         [        R                  " 5       nU" 5       n	U	R                  n
U	R                  5       nU" X5        [        R                  " 5       U:  d   eA	U" Xz5      nUR                  5       U:X  d   eUR                  U
:X  d   e[        R                  " 5       U:  d   eAA
[        R                  " 5       U:X  d   e[           U" U[        5       5        S S S 5        U" 5       n	U	R                  5       nU	R                  Xu5        A	U" Xu5      nUR                  5       U:X  d   eUR                  U" 5       R                  :X  d   e[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   e[           U" Xu5        S S S 5        [        R                  " 5       R                  U5        U" 5       R                  U5        [        R                   " ["        SS9   U" Xu5        S S S 5        [           U" Xu5        S S S 5        g ! , (       d  f       GNA= f! , (       d  f       N= f! , (       d  f       NI= f! , (       d  f       g = f)Nrn   ro   r   r   r   r   )r   rp   r0   rq   rr   rs   r   rt   rE   	to_pydictr   rI   ru   rx   rG   rz   r{   r|   )r   r   r   batch_factoryr}   r~   r   r   r   rk   rE   r   	batch_news                r   check_export_import_batchr   ?  sL   ww,-HSXXk845Jgg
|1-.GCHH['23IJJL,,.M OE\\F HU##%555+I H,,,v%%%##%5556##%666	KM* 
 OE H	y-/I H,,,}55555##%555##%666	' 
  HHJJ'O  +	zD
F'
F 
 ' 
 	5 
	  
 	
F 
F 
 	s0   J	J.3	J?
	K
J+.
J<?
K
Kc                      [        S[        R                  R                  [        R                  R                  [
        5        g r   )r   r   RecordBatchru   rw   rU   rH   r   r   test_export_import_batchr   u  s*    
##
%%	r   c                      [        [        S5      5         [        S[        R                  R
                  [        R                  R                  [        5        S S S 5        g ! , (       d  f       g = f)Nr	   r   )r   r   r   r   r   ru   rw   r\   rH   r   r   'test_export_import_batch_with_extensionr     sB    	"<?	3!NN''NN)) 		
 
4	3	3s   AA!!
A/c                     [        S[        R                  R                  [        R                  R                  [
        5        [        R                  " S5      n [        [        R                  " SU 5      5      n[        5       nUR                  U5        U R                  S:X  d   eU R                  S:X  d   eU R                  R                  S:X  d   eg )Nr   r   ro   r	   r   rR   )r   r   r   r   r   rU   r   rp   r0   rq   r   r   rZ   r   )r   r   rk   s      r   test_export_import_device_batchr     s    
**
,,	 gg01GCHH['23ILE	i(!###"""==1$$$r   c                 d   [        5       nUS   R                  nU" X25      nUR                  U 5        AA[        R                  R                  U 5      nUR                  U:X  d   e[        U5      nAU[        5       :X  d   e[        b  [        5       nUS   R                  n[        R                  R                  U5      R                  5       nU" X25      nUR                  U 5        AA[        R                  R                  U 5      nUR                  5       nA[        R                  " Xx5        g g )Nr   )ra   rE   ru   r   RecordBatchReaderrw   listpdTablefrom_batches	to_pandasread_pandastmassert_frame_equal)	
ptr_streamreader_factoryrh   rE   reader
reader_newgot_batchesexpected_dfgot_dfs	            r   _export_import_batch_readerr     s   nGQZFF,F

#%%44Z@J&&&z"K,.((( 
~.""hh++G4>>@0J'G))88D
'')
k2 r   c                 R    [         R                  R                  [        X5      5      $ r   )r   rd   open_streamrl   rE   rh   s     r   make_ipc_stream_readerr     s    66of>??r   c                 @    [         R                  R                  X5      $ r   )r   r   r   r   s     r   make_py_record_batch_readerr     s    ,,V==r   r   c                    [         R                  " S5      n[        [         R                  " SU5      5      n[        R
                  " 5         [        R                  " 5       n[        X 5        [        R                  " 5       U:X  d   e[           [        R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nstruct ArrowArrayStream*ro   )r   rp   r0   rq   rr   rs   r   rt   r   assert_stream_releasedr   rw   )r   c_streamr   r   s       r   test_export_import_batch_readerr     s    
 ww12HSXXk845JJJL,,.M
;##%666 
 
++J7 
 		s    B66
Cc                     [         R                  " S5      n [        [         R                  " SU 5      5      n[        R
                  " 5         [        R                  " 5       nS n[        R                  R                  [        5       U" 5       5      nUR                  U5        [        R                  R                  U5      n[        R                  " [        5       nUR!                  5         S S S 5        S[#        WR$                  5      ;   d   eS[#        UR$                  5      ;   d   eS[#        UR$                  5      ;   d   e[        R                  " 5       U:X  d   eg ! , (       d  f       N{= f)Nr   ro   c               3   `   #      [        S5      e! [          a  n [        S5      U eS n A ff = f7f)Nfoobar)r|   NotImplementedErrorra   )es    r   gen0test_export_import_exception_reader.<locals>.gen  s4     8 '' 8)%0a78s   . 
+&+.zValueError: foozNotImplementedError: barzraise ValueError('foo'))r   rp   r0   rq   rr   rs   r   rt   r   r   rI   ru   rw   rz   r{   r   read_next_batchr+   value)r   r   r   r   originalr   exc_infos          r   #test_export_import_exception_readerr     s    ww12HSXXk845JJJL,,.M& ##00FH*%!!00<F	*	+x  
, HNN 3333%X^^)<<<<&#hnn*====##%666 
,	+s   E!!
E/c                     [         R                  " S5      n [        [         R                  " SU 5      5      n[        R
                  " S[        R                  " 5       4/5      n[        R                  " / SQ/US9[        R                  " / SQ/US9/n[        X#5      n[        R                  R                  US S 5      nUR                  U5        A[        R                  R                  U5      nUR                  5       nXsS   :X  d   e[        R                   " ["        S	S
9   UR                  5         S S S 5        [        R                  R                  US S 5      nUR                  U5        A[        R                  R                  U5      n[        R                   " ["        S	S
9   UR%                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   ro   r   r	   rR   rM   r`   )   r^   r_   ir   z<Expected to be able to read 16 bytes for message body, got 8r   )r   rp   r0   rq   r   rE   rG   rT   rl   rd   r   ru   r   rw   r   rz   r{   OSErrorread_all)r   r   rE   rh   bufr   r   rk   s           r    test_imported_batch_reader_errorr     s~   ww12HSXXk845JYY
+,-F	{6:	{6:<G
&
*C VVDS	*F

#%%44Z@J&&(EAJ	w7
8 	""$
8 VVDS	*F

#%%44Z@J	w7
8 	
8 
8
8 
8
8 
8s   $G)G
G
G"objr   )rX   r   rE   )idsc                    [         R                  " 5         [        R                  " 5       nU R	                  5       n[        US5      S:X  d   e[        R                  " 5       U:  d   e[        U 5      R                  U5      nX0:X  d   e[        R                  " 5       U:X  d   eU R	                  5       n[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   eg )N   arrow_schemar	   )rr   rs   r   rt   __arrow_c_schema__r   rX   _import_from_c_capsule)r   r   r   obj_outs       r   test_roundtrip_schema_capsuler     s     JJL,,.M$$&GWo6!;;;##%5553i..w7G>>##%666$$&G##%555##%666r   z&arr,schema_accessor,bad_type,good_typeabcc                     U R                   $ r   rW   xs    r   <lambda>r  5      !&&r   r  )namesc                     U R                   $ r   r`   r  s    r   r  r  8      !((r   rZ   rT   c                 <   [         R                  " 5         [        R                  " 5       n[	        U 5      R
                  nU R                  5       u  pg[        US5      S:X  d   e[        US5      S:X  d   eU" Xg5      nUR                  U 5      (       d   e[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   eU R                  5       n[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   e[        R                  " [        SS9   U R                  UR                  5       5        S S S 5        U R                  UR                  5       5      u  piU" Xi5      nU" U5      U:X  d   eg ! , (       d  f       NF= f)Nr   r	   s   arrow_array-Could not cast.* string to requested .* int32r   )rr   rs   r   rt   rX   r   __arrow_c_array__r   equalsrz   r{   r|   r   
r   schema_accessorbad_type	good_typer   import_arrayschema_capsuler   arr_outarray_capsules
             r   test_roundtrip_array_capsuler  4  sn    JJL,,.M933L!335N^_=BBBWn5:::>3G>>###%555##%666##%G##%555##%666	zM
Oh99;<
O %($9$9$$&%(!N>9G7#y000
O 
O   - F
Fc                     U R                   $ r   rW   r  s    r   r  r  _  r  r   c                     U R                   $ r   r`   r  s    r   r  r  b  r  r   c                 <   [         R                  " 5         [        R                  " 5       n[	        U 5      R
                  nU R                  5       u  pg[        US5      S:X  d   e[        US5      S:X  d   eU" Xg5      nUR                  U 5      (       d   e[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   eU R                  5       n[        R                  " 5       U:  d   eA[        R                  " 5       U:X  d   e[        R                  " [        SS9   U R                  UR                  5       5        S S S 5        U R                  UR                  5       5      u  piU" Xi5      nU" U5      U:X  d   eg ! , (       d  f       NF= f)Nr   r	   s   arrow_device_arrayr
  r   )rr   rs   r   rt   rX   _import_from_c_device_capsule__arrow_c_device_array__r   r  r  rz   r{   r|   r   r  s
             r   #test_roundtrip_device_array_capsuler  ^  so    JJL,,.M9::L!::<N^_=BBBW&;<AAA>3G>>###%555##%666##%G##%555##%666	zM
O$$X%@%@%BC
O %($@$@$$&%(!N>9G7#y000
O 
Or  constructorc                 @    [         R                  R                  X5      $ r   )r   r   r   r   s     r   r  r    s    BHH11'Br   recordbatchreadertablec                    [        5       nUS   R                  n[        R                  " 5         [        R
                  " 5       nU " X!5      nUR                  5       n[        US5      S:X  d   e[        R                  R                  U5      nUR                  U:X  d   e[        U5      n[        U5      [        U5      :X  d   e[        Xq5       H  u  pUR                  U	5      (       a  M   e   AAAA	A[        R
                  " 5       U:X  d   eU " X!5      n[        R                  " S[        R                  " 5       05      n
[        R                   " [        R"                  R$                  SS9   UR                  U
R'                  5       5        S S S 5        [        R                  " S[        R(                  " [        R                  " 5       5      05      nUR                  UR'                  5       5      n[        R                  R                  U5      nUR                  U:X  d   e[        Xa5       H  u  pUR                  U	5      (       a  M   e   g ! , (       d  f       N= f)Nr      arrow_array_streamr	   r@   zField 0 cannot be castr   )ra   rE   rr   rs   r   rt   __arrow_c_stream__r   r   r   r   lenzipr  rG   rz   r{   libArrowTypeErrorr   rF   )r  rh   rE   r   r   r   imported_readerimported_batchesrk   expected
bad_schemamatching_schemas               r   test_roundtrip_reader_capsuler-    s    nGQZFJJL,,.M
f
&C$$&GW&;<AAA**AA'JO!!V+++O, CL000/9||H%%%% : 	_eX/?##%666
f
&CFBHHJ/0J	rvv,,4L	Mz<<>? 
N ii"((*)= >?O$$_%G%G%IJG**AA'JO!!_4448||H%%%% 9 
N	Ms   0 I
I"c                  V   [        5       n [        R                  " S[        R                  " [        R                  " 5       5      4/5      nUR                  5       nU R                  U5      nU R                  U5      n[        US5      S:X  d   e[        R                  R                  U5      nUR                  U:X  d   eUR                  5       R                  U5      (       d   e[        R                  " [        5         UR                  5         S S S 5        g ! , (       d  f       g = f)Nr@   r"  r	   )rU   r   rE   rF   int64r   rq   r#  r   r   r   r   r  rz   r{   StopIteration)rk   requested_schemarequested_capsulebatch_as_requestedr   r(  s         r   4test_roundtrip_batch_reader_capsule_requested_schemar4    s    LEyy6288BHHJ+?"@!AB(;;=$45&&'89GW&;<AAA**AA'JO!!%5555**,334FGGGG	}	%'') 
&	%	%s    D
D(c                     [        5       n U R                  5       n[        US5      S:X  d   e[        R                  R                  U5      nUR                  U R                  :X  d   eUR                  5       R                  U 5      (       d   e[        R                  " [        5         UR                  5         S S S 5        g ! , (       d  f       g = f)Nr"  r	   )rU   r#  r   r   r   r   rE   r   r  rz   r{   r0  )rk   r   r(  s      r   #test_roundtrip_batch_reader_capsuler6    s    LE&&(GW&;<AAA**AA'JO!!U\\111**,33E::::	}	%'') 
&	%	%s   (C
Cc                  &   [         R                  " [         R                  " / SQ5      /5      n U R                  5       n[	        US5      S:X  d   e[         R
                  R                  U5      nUR                  U R                  :X  d   eX :X  d   eg )Nr   r"  r	   )r   chunked_arrayrZ   r#  r   ChunkedArrayr   rX   )chunkedr   imported_chunkeds      r   $test_roundtrip_chunked_array_capsuler<    s{     9:;G((*GW&;<AAA==gF  GLL000&&&r   c                     [         R                  " [         R                  " / SQ5      /5      n U R                  R	                  5       nU R                  U5      n[         R                  R                  U5      nX0:X  d   e[         R                  " 5       nUR	                  5       nU R                  U5      n[         R                  R                  U5      nX0R                  [         R                  " 5       5      :X  d   e[         R                  " 5       nUR	                  5       n[        R                  " [        SS9   U R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   z-Could not cast string to requested type int64r   )r   r8  rZ   rX   r   r#  r9  r   r!   rq   r/  rz   r{   r|   )r:  r2  r   r;  requested_types        r   5test_roundtrip_chunked_array_capsule_requested_schemar?    s    9:;G  779(():;G==gF&&& YY[N&99;(():;G==gF||BIIK8888XXZN&99;	I
 	""#45
 
 
s   ;E
E$c                      SS K n [        R                  " S5        [        R
                  " S5      n[        [        R                  " SU5      5      n[        R                  " / SQ[        R                  " 5       S9nUR                  U5        SUl        [        R                  " [        SS	9   [        R                  R                  X#R                   5        S S S 5        g ! [         a     Nf = f! , (       d  f       g = f)
Nr   zpyarrow.cuda is availabler   ro   r   rW   rR   z&Trying to import data on a CUDA devicer   )pyarrow.cudarz   skipImportErrorr   rp   r0   rq   r   rZ   r/  r   r   r{   r   r   rX   )pyarrowr   r   r   s       r   test_import_device_no_cudarE    s    1 	/0gg01GCHH['23I
((9288:
.CI& G	{*R	S
&&y((; 
T	S   
T	Ss   C  -*C0 
C-,C-0
C>r   )G
contextlibr
   rr   rD  r   pyarrow.cffir   rC  rz   pandasr   pandas.testingtestingr   markskipif
needs_cffir{   r|   rx   r   r   r   contextmanagerr   ExtensionTyper   rI   rN   rP   rU   r\   ra   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   parametrizer   r   r   rG   r   rE   r   rZ   stringrT   r  r  r   r   r-  r4  r6  r<  r?  rE  rH   r   r   <module>rR     s  &   	   
 [[t'J   L
  :<  9;   ;= T > >2## (4
4
4<. / /@ , ,.)(X   % %$-@ , , : : ' '3(l   
 
 % %$3@@> )057888 8  7 7B  D RXXeRXXZ-H!#E288:+>!?!A8  :7:7& AXXo 0"((*biikJ
/23C5A
		3
#$
		3		$%	D 	   "1"1B AXXo 0"((*biikJ
/23C5A
		3
#$
		3		$%	D 	   "1"1B %%B) 	W%	  '
"&'
"&J*	*'60 < <m  
C  NBs"   N 
N. N+*N+.
N<;N<