
    z-Ph                     
   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z		 d dl
Zn# e$ r dZY nw xY wd dlZd dlmZmZ 	 d dlmZ d dlZn# e$ r Y nw xY w G d d          Z G d de          Z G d	 d
e          Z G d de          Zej        d             Zej        d             Zej        d             Z ej         ej        dd           ej        dd          g          d             Zd Z d Z!d Z"ej#        $                    dd d g          d             Z%d Z&ej#        j        d             Z'd  Z(d! Z)ej#        j        ej#        j*        d"                         Z+ej#        j        d#             Z,d$ Z-ej#        $                    d%ej.        /                                ej.        /                    d&'          g          d(             Z0d) Z1ej#        $                    d%ej.        /                                ej.        /                    d&'          g          d*             Z2d+ Z3ej#        j        d,             Z4ej#        j        d-             Z5ej#        $                    d.d&d/g          d0             Z6ej#        j7        d1             Z8d2 Z9d3 Z:ej#        $                    d%ej.        ;                                ej.        ;                    d/4          ej.        ;                    d/5          ej.        ;                    ej.        j<        j=        6          ej.        ;                    d/ej.        j<        j=        7          g          d8             Z>d9 Z?d: Z@d; ZAd< ZBd= ZCej#        j        d>             ZDej        d?             ZEd@ ZFdA ZGdB ZHej#        jI        dC             ZJdD ZKdE ZLdF ZM G dG dHejN                  ZO G dI dJe          ZPej        dK             ZQej#        jR        dL             ZSej#        jR        dM             ZTej#        j        dN             ZUej#        j        dO             ZVej#        j        ej#        $                    dPdQdRg          dS                         ZWdT ZXej#        j        dU             ZYej#        j        dfdV            ZZej#        j        dW             Z[ej#        j        dX             Z\ej#        j        dY             Z]ej#        j        dZ             Z^ej#        j        d[             Z_ej#        j        d\             Z`ej#        j        d]             Zad^ Zbd_ Zcd` Zdda Zedb Zfdc Zgdd Zhde ZidS )g    )UserListN)changed_environinvoke_script)assert_frame_equalc                   2    e Zd ZdZd fdZd Zd Zd	dZdS )

IpcFixtureNc                  (    t          j                    S NioBytesIO     V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_ipc.py<lambda>zIpcFixture.<lambda>/   s    BJLL r   c                 F    || _         |                                 | _        d S r
   )_sink_factoryget_sinksink)selfsink_factorys     r   __init__zIpcFixture.__init__/   s    )MMOO			r   c                 *    |                                  S r
   )r   r   s    r   r   zIpcFixture.get_sink3   s    !!###r   c                 4    | j                                         S r
   )r   getvaluer   s    r   
get_sourcezIpcFixture.get_source6   s    y!!###r      Fc                 N   d}t          j        dt          j                    fdt          j                    fg          }|                     | j        |          }g }t          |          D ]H}t          j        d t          |          D             g dg|          }|                    |           I|r5t           j	        
                    |          }	|                    |	           n|D ]}|                    |           |j        | _        |                                 |S )Nr   onetwoc                 4    g | ]}t          j                     S r   )random.0_s     r   
<listcomp>z,IpcFixture.write_batches.<locals>.<listcomp>B   s    888a&-//888r   )fooNbarbazbazquxschema)par-   float64utf8_get_writerr   rangerecord_batchappendTablefrom_batcheswrite_tablewrite_batchstatswrite_statsclose)
r   num_batchesas_tablenrowsr-   writerbatchesibatchtables
             r   write_batcheszIpcFixture.write_batches9   s/   UBJLL1E27993EFGG!!$)V44{## 	" 	"AO885<<8886668  E NN5!!!! 	*H))'22Eu%%%%  * *""5))))!<r   )r   F)__name__
__module____qualname__r:   r   r   r   rD   r   r   r   r   r   ,   se        K$8$8 $ $ $ $$ $ $$ $ $     r   r   c                   $    e Zd ZdZdZd ZddZdS )FileFormatFixtureTNc                 P    t           j                            ||| j                  S )Noptions)r.   ipcnew_filerL   r   r   r-   s      r   r1   zFileFormatFixture._get_writerX   s    vtVT\BBBr   Fc                    |                      |          }t          j        |                                           }t          j                            |          }|j        t          |          k    sJ t          |          D ]^\  }}|	                    |          }||         
                    |          sJ |j        
                    |d         j                  sJ _t          |j        t          j        j                  sJ t          | j        t          j        j                  sJ t#          |j                  t#          | j                  k    sJ d S )Nr=   r   )rD   r.   BufferReaderr   rM   	open_filenum_record_batcheslen	enumerate	get_batchequalsr-   
isinstancer9   	ReadStatsr:   
WriteStatstuple)r   r=   r@   file_contentsreaderrA   rB   s          r   _check_roundtripz"FileFormatFixture._check_roundtrip[   s9   $$h$77(9(9::!!-00(CLL8888!'** 	; 	;HAu$$Q''E1:$$U+++++=''
(9::::::&,(899999$*BF,=>>>>>V\""eD,<&=&=======r   F)rE   rF   rG   is_filerL   r1   r_   r   r   r   rI   rI   S   sD        GGC C C> > > > > >r   rI   c                        e Zd ZdZdZdZd ZdS )StreamFormatFixtureFNc                 \    t           j                            ||| j        | j                  S )N)use_legacy_formatrL   )r.   rM   
new_streamuse_legacy_ipc_formatrL   rO   s      r   r1   zStreamFormatFixture._get_writerv   s2    v  "8L	 ! 
 
 	
r   )rE   rF   rG   rg   rL   ra   r1   r   r   r   rc   rc   n   s5         "GG
 
 
 
 
r   rc   c                       e Zd Zd ZdS )MessageFixturec                 ,    t          j        ||          S r
   r.   RecordBatchStreamWriterrO   s      r   r1   zMessageFixture._get_writer       )$777r   N)rE   rF   rG   r1   r   r   r   ri   ri      s#        8 8 8 8 8r   ri   c                      t                      S r
   )r   r   r   r   ipc_fixturero      s    <<r   c                      t                      S r
   )rI   r   r   r   file_fixturerq      s    r   c                      t                      S r
   )rc   r   r   r   stream_fixturers             r   rq   zFile Format)idrs   zStream Format)paramsc                 6    |                      | j                  S r
   )getfixturevalueparam)requests    r   format_fixturer{      s     ""7=111r   c                      d} t          j        t          j                  5  t          j                            t          j        |                      d d d            d S # 1 swxY w Y   d S Nr   )pytestraisesr.   ArrowInvalidrM   rS   rR   bufs    r   test_empty_filer      s    
C	r	'	' / /
--.../ / / / / / / / / / / / / / / / / /s   2A  A$'A$c                 2    |                      d           d S )NFrQ   r_   rq   s    r   test_file_simple_roundtripr      s    !!5!11111r   c                 2    |                      d           d S )NTrQ   r   r   s    r   test_file_write_tabler      s    !!4!00000r   r   c                  (    t          j                    S r
   r   r   r   r   r   r      s    BJLL r   c                  (    t          j                    S r
   )r.   BufferOutputStreamr   r   r   r   r      s    B!## r   c                 j   t          |           }|                                }t          j        |                                          }t          j                            |          }|                                }t          j        	                    |          }|
                    |          sJ d S r
   )rI   rD   r.   rR   r   rM   rS   read_allr5   r6   rX   )r   fixturer@   r]   r^   resultexpecteds          r   test_file_read_allr      s    
  --G##%%GOG$6$6$8$899MVm,,F__Fx$$W--H=="""""""r   c                 h   |                                   |                                 }t          j                            |          }t          j                            t          j        |                    }t          j        |          }|                                }|                                }|                                }|                    |          sJ |                    |          sJ |j	        }|j
        dk    sJ |j        dk    sJ |j	        |k    sJ |j	        |k    sJ d S N   r   )rD   r   r.   rM   rS   rR   RecordBatchFileReaderr   rX   r9   num_messagesrT   )	rq   sourcereader1reader2reader3result1result2result3st1s	            r   test_open_file_from_bufferr      s'      $$&&Ffv&&Gfrv6677G&v..G  G  G  G>>'""""">>'"""""
-Cq    !Q&&&&=C=Cr   c                 d   d |                                  D             }t          j        |                                           }t          j                            |          }|                                }t          j        |          	                    d          }t          ||           d S )Nc                 6    g | ]}|                                 S r   	to_pandasr%   rB   s     r   r'   z)test_file_read_pandas.<locals>.<listcomp>   s"    JJJEeooJJJr   Tdrop)rD   r.   rR   r   rM   rS   read_pandaspdconcatreset_indexr   )rq   framesr]   r^   r   r   s         r   test_file_read_pandasr      s    JJ\-G-G-I-IJJJFOL$;$;$=$=>>MVm,,F!!Fy  ,,$,77Hvx(((((r   c                 >   |                                   |                                 }|                    d          j        }t	          |d          5 }|                    |           d d d            n# 1 swxY w Y   t          j                            t          j
        |                                                    }t          j                            t          j        |                                                    }|                    |          sJ d S )N
file.arrowwb)rD   r   joinstrpathopenwriter.   rM   rS   pathlibPathr   OSFilerX   )rq   tmpdirr   pathft1t2s          r   test_file_pathlibr      s      $$&&F;;|$$,D	dD		 Q	               
		',t,,	-	-	6	6	8	8B			")D//	*	*	3	3	5	5B99R==s   A55A9<A9c                      t          j        d          } t          j        t          j                  5  t          j                            |            d d d            d S # 1 swxY w Y   d S r}   )r   r   r~   r   r.   r   rM   open_streamr   s    r   test_empty_streamr      s    
*S//C	r	'	'    
3                                   s    A  A$'A$c                    t          j                    }t          j        t          j        d|          g          }|                     d          j        }t          j        |d          5 }t           j                            ||          5 }t          j	        dg|          }t          j
        |g|          }|                    |           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   t          d|           dS )zARROW-15783: Verify to_pandas works for interval types.

    Interval types require static structures to be enabled. This test verifies
    that they are when no other library functions are invoked.
    numsr   r            typeNzread_record_batch.py)r.   month_day_nano_intervalr-   fieldr   r   r   rM   rN   arrayr3   r   r   )r   mdn_interval_typer-   r   r   r?   interval_arrayrB   s           r   "test_read_year_month_nano_intervalr      sh    244Y):;;<==F;;|$$,D	4		  $V__T6** 	 fXyk8IJJJNO^$4f==ELL	  	  	  	  	  	  	  	  	  	  	  	  	  	  	                              
 ($/////s7   +!C2ACC2C	C2"C	#C22C69C6c           
         t          j        t          j                            d          t          j        dt          j        dddgddgd          d          }t          j        	                    |          }| 
                    | j        |j                  5 }|                    |           d d d            n# 1 swxY w Y   t          j                            t          j        |                                                                                     }t'          |                                |           d S )Nr   r(   r)   T
categoriesorderedr    r!   )r   	DataFramenpr#   randnCategoricalnanr.   RecordBatchfrom_pandasr1   r   r-   r8   rM   r   rR   r   r   r   r   )rs   dfrB   wrrC   s        r   !test_stream_categorical_roundtripr     sJ   	yq!!~ubfeUEB*/&*, , ,  
 
B N&&r**E		#	#N$7	F	F "
u               V0I0I0K0K L LMMhjj 
u(("-----s   B<<C C c                    |                                   |                                 }t          j                            |          }t          j                            t          j        |                    }t          j        |          }|                                }|                                }|                                }|                    |          sJ |                    |          sJ |j	        }|j
        dk    sJ |j        dk    sJ |j	        |k    sJ |j	        |k    sJ t          |          t          | j                  k    sJ d S r   )rD   r   r.   rM   r   rR   RecordBatchStreamReaderr   rX   r9   r   rT   r\   r:   )	rs   r   r   r   r   r   r   r   r   s	            r   test_open_stream_from_bufferr     sI     """&&((Ff  ((Gf  !8!899G(00G  G  G  G>>'""""">>'"""""
-Cq    !Q&&&&=C=C::~9::::::::r   rL   Fuse_threadsc                 P   |                                   |                                 }t          j                            ||          }|                                 |j        }|j        dk    sJ |j        dk    sJ t          |          t          | j
                  k    sJ d S NrK   r   r   )rD   r   r.   rM   r   r   r9   r   rT   r\   r:   )rs   rL   r   r^   sts        r   test_open_stream_optionsr   6  s    
   """&&((FV88F
OO	B?a A%%%%99n899999999r   c                     |                                   |                                 }t          j        t                    5  t
          j                            |d           d d d            d S # 1 swxY w Y   d S NTrK   )rD   r   r~   r   	TypeErrorr.   rM   r   )rs   r   s     r   #test_open_stream_with_wrong_optionsr   H  s      """&&((F	y	!	! 1 1
640001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1   "A11A58A5c                    |                                   |                                 }t          j                            ||          }|                                 |j        }|j        dk    sJ |j        dk    sJ d S r   )	rD   r   r.   rM   rS   r   r9   r   rT   )rq   rL   r   r^   r   s        r   test_open_file_optionsr   P  s    
    $$&&FVfg66F
OO	B?a A%%%%%%r   c                     |                                   |                                 }t          j        t                    5  t
          j                            |d           d d d            d S # 1 swxY w Y   d S r   )rD   r   r~   r   r   r.   rM   rS   )rq   r   s     r   !test_open_file_with_wrong_optionsr   a  s       $$&&F	y	!	! / /
.../ / / / / / / / / / / / / / / / / /r   c           
         t          j        t          j                            d          t          j        dt          j        dddgddgd          d          }t          j        	                    |d          }t          j
        	                    |d          }|                     | j        |j                  5 }|                    |           |                    |           d d d            n# 1 swxY w Y   t          j                            t          j        |                                                                                     }t)          |                                t          j        ||gd	                     d S )
Nr   r(   r)   Tr   r   Fpreserve_indexignore_index)r   r   r   r#   r   r   r   r.   r5   r   r   r1   r   r-   r   rM   r   rR   r   r   r   r   r   )rs   r   rC   rB   r   s        r   test_stream_write_dispatchr   i  s    
yq!!~ubfeUEB*/&*, , ,  
 
B H  E ::EN&&r%&@@E		#	#N$7	F	F "

               V0I0I0K0K L LMMhjj 
u((y"b===? ? ? ? ?s   =+C44C8;C8c           
         t          j        dt          j                            d          i          }t
          j                            |d d         d          }t
          j                            |d          }t
          j        	                    |||g          }| 
                    | j        |j                  5 }|                    |d           d d d            n# 1 swxY w Y   t          t
          j                            |                                                     }t          t%          t&          |                    g dk    sJ t
          j        	                    |          }t)          |                                t          j        |d d         ||d d         gd	
                     d S )Nr       
   Fr      )max_chunksize)r   r   r   r   Tr   )r   r   r   r#   r   r.   r   r   r5   r6   r1   r   r-   r7   listrM   r   r   maprU   r   r   r   )rs   r   b1b2rC   r   r@   result_tables           r   test_stream_write_table_batchesr   ~  s    
ryr"" 
 
B 
	#	#BssGE	#	B	BB		#	#Bu	#	=	=BH!!2r2,//E		#	#N$7	F	F 0"
uB///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26%%n&?&?&A&ABBCCGC!!""ooo55558((11L|--//y"SbS'2r#2#w!7.24 4 45 5 5 5 5s    C$$C(+C(rg   Tc                 <   || _         |                                 }t          j        |                                           }t          j                            |          }|j                            |d         j                  sJ d}t          |          D ]'\  }}|                    ||                   sJ |dz  }(|t          |          k    sJ t          j        t                    5  |                                 d d d            d S # 1 swxY w Y   d S Nr   r   )rg   rD   r.   rR   r   rM   r   r-   rX   rV   rU   r~   r   StopIterationread_next_batch)rs   rg   r@   r]   r^   totalrA   
next_batchs           r   test_stream_simple_roundtripr    sT   +@N(**,,GON$=$=$?$?@@MV..F=
 122222E"6**  :  ,,,,,
CLL    	}	%	% ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   /DDDc                  .   t          j                    } d t          d          D             }t          j                            |gdg          }t          j                            d          }t          j                            | |j	        |          5 }|
                    |           d d d            n# 1 swxY w Y   t          |                                           }t          j                    }t          j        dd	          }t          j                            |          }t          j                            ||j	        |          5 }|
                    |           d d d            n# 1 swxY w Y   t          |                                          }||k    sJ t          j                            |                                           }	t          j                            |                                          }
|	|
k    sJ d S )
Nc                 8    g | ]}t          j        d d          S )r   r   )r#   randintr$   s     r   r'   z.test_compression_roundtrip.<locals>.<listcomp>  s$    999qfnQ""999r   i'  valuesnameszstdcompressionrK   r   )compression_level)r   r   r2   r.   r5   from_arraysrM   IpcWriteOptionsRecordBatchFileWriterr-   r7   rU   r   CodecrS   r   )r   r  rC   rL   r?   len1sink2codeclen2r   r   s              r   test_compression_roundtripr    s?   :<<D99E%LL999FH  &( <<Ef$$$88G		%	%%, 
& 
1 
1 "4:5!!!" " " " " " " " " " " " " " " t}}DJLLEHVq111Ef$$$77G		%	%5< 
& 
2 
2 "5;5!!!" " " " " " " " " " " " " " " u~~  D
 4<<<<			$			(	(	*	*B			%	 	 	)	)	+	+B888888s$   B99B= B=E77E;>E;c                     t           j                                        } | j        du sJ | j        du sJ | j        t           j        j        j        k    sJ d| _        | j        du sJ d| _        | j        du sJ t           j        j        j        | _        | j        t           j        j        j        k    sJ dD ]A}t          j
        t          t          f          5  || _        d d d            n# 1 swxY w Y   B| j        J dD ][}t           j                            |          r:|| _        | j        |k    sJ |                                | _        | j        |k    sJ \d | _        | j        J t          j
        t                    5  d| _        d d d            n# 1 swxY w Y   | j        du sJ d| _        | j        du sJ t           j                            d          rt           j                            t           j        j        j        dddd          } | j        t           j        j        j        k    sJ | j        du sJ | j        du sJ | j        dk    sJ | j        du sJ d S d S )NFT)V5*   )lz4r  r   r  )metadata_versionallow_64bitre   r  r   )r.   rM   r  r   re   r  MetadataVersionr  V4r~   r   r   
ValueErrorr  r  is_availableupperr   )rL   values     r   test_write_optionsr'    s9   f$$&&G%''''$----#rv'='@@@@@G$&&&& $G$,,,,!v58G#rv'='@@@@@ - -]Iz233 	- 	-',G$	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- &&&  0 08  '' 	0"'G&%////"'++--G&%////G&&&	y	!	!                                  $&&&&G%''''	xU## ,&((V36" )   '26+A+DDDDD"d****(D0000"e++++"e++++, , ,+s$   C..C2	5C2	
FF"%F"c                     t          j        t          d          5  d| _        t          j                                        | _        |                                  d d d            d S # 1 swxY w Y   d S )Nz4provide at most one of options and use_legacy_formatmatchT)	r~   r   r#  rg   r.   rM   r  rL   rD   )rs   s    r   #test_write_options_legacy_exclusiver+    s    	H
J 
J 
J ' ' 04,!#!7!7!9!9$$&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   ?A((A,/A,)r   )re   )r  )re   r  c                    d | _         || _        |                                 }t          j        |                                           }t          j                            |                                           }|j        |j        k    sJ t          j        	                    |          }|j
                            |d         j
                  sJ d}t          |          D ]'\  }}|                    ||                   sJ |dz  }(|t          |          k    sJ t          j        t                     5  |                                 d d d            d S # 1 swxY w Y   d S r  )rg   rL   rD   r.   rR   r   rM   read_messager  r   r-   rX   rV   rU   r~   r   r  r  )	rs   rL   r@   r]   messager^   r  rA   r  s	            r   test_stream_options_roundtripr/    s    ,0N($N**,,GON$=$=$?$?@@Mf!!.";";"="=>>G#w'?????V..F=
 122222E"6**  :  ,,,,,
CLL    	}	%	% ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   9EE"Ec                     t           j                                        } | j        du sJ | j        du sJ | j        g k    sJ d| _        | j        du sJ d| _        | j        du sJ ddg| _        | j        ddgk    sJ t          j        t                    5  d | _        d d d            n# 1 swxY w Y   t           j                            dddg          } | j        du sJ | j        du sJ | j        dgk    sJ d S )NTFr   r   )r   ensure_native_endianincluded_fields)	r.   rM   IpcReadOptionsr   r1  r2  r~   r   r   rK   s    r   test_read_optionsr4  #  s   f##%%G$&&&&'4////"b((((#(G '50000G%'''' !fG"q!f,,,,	y	!	! ' '"&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' f## $  G %'''''50000"qc))))))s   B++B/2B/c                    t           j                                        }t           j                            dg          }t           j                            t          j        g d          t          j        g d          gddg          }|                     | j        |j                  5 }|	                    |           d d d            n# 1 swxY w Y   | 
                                }t           j                            ||          }t           j                            ||t          j                    	          }|                                }|                                }	|j        d
k    sJ |	j        dk    sJ t           j                            t          j        g d          gdg          }
|	|
k    sJ ||k    sJ d S )Nr   )r2  r(   r)   bazr+   r   r   r      abr  rK   )rL   memory_poolr   )r.   rM   r3  r5   r  r   r1   r   r-   r7   r   r   system_memory_poolr   num_columns)rs   options1options2rC   r   r   r   r   r   r   r   s              r   !test_read_options_included_fieldsrA  >  s   v$$&&Hv$$aS$99HH  "(+G+G+G"H"H!#,,,!7!7"9(+Sz ! 3 3E 
	#	#N$7	F	F "
u              &&((Ff   ::Gf  b.C.E.E ! G GG   G  G!####!####x##RXlll%;%;$<SE#JJHhes   -CCCc                     t          j        t          j                    t          j                              g dg dddgg dddgg}fd|D             }|d d         }|d	         j        d fd	} j        rt          j        t           j                  5   ||           d d d            n# 1 swxY w Y   t          j        t           j                  5   ||           d d d            n# 1 swxY w Y   n? ||          }|j	        dk    sJ |j
        dk    sJ |j        dk    sJ |j        d	k    sJ d  _        t           j                            d           _         j        rBt          j        t           j                  5   ||           d d d            n# 1 swxY w Y   n? ||          }|j	        dk    sJ |j
        dk    sJ |j        dk    sJ |j        dk    sJ  ||          }|j	        dk    sJ |j
        dk    sJ |j        d	k    sJ |j        dk    sJ t           j                            d           _         ||d          }|j	        dk    sJ  j        r)|j
        dk    sJ |j        d	k    sJ |j        d	k    sJ d S |j
        dk    sJ |j        dk    sJ |j        d	k    sJ d S )N)r(   r(   N)r(   r)   r(   r(   r)   )r(   Nr)   quuxrC  c                 ~    g | ]9}t           j                            t          j        |           gdg          :S )r   dictsr  )r.   r   r  r   )r%   vtys     r   r'   z)test_dictionary_delta.<locals>.<listcomp>_  sR        	""BHQR$8$8$8#9'"KK  r   r9  r   Fc                 6                        t          j                              5 }|r5t          j                            |           }|                    |           n| D ]}|                    |           |j        cd d d            S # 1 swxY w Y   d S r
   )r1   r.   MockOutputStreamr5   r6   r7   r8   r9   )r@   r=   r?   rC   rB   r{   r-   s        r   rD   z,test_dictionary_delta.<locals>.write_batchese  s    ''(;(=(=(.0 0 	 39 .--g66""5))))$ . .E&&u----<	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   ABBBr   r   T)emit_dictionary_deltasr   r   )unify_dictionariesrQ   r`   )r.   
dictionaryint8r0   r-   ra   r~   r   r   rT   num_dictionary_batchesnum_replaced_dictionariesnum_dictionary_deltasrg   rM   r  rL   )r{   datar@   batches_delta_onlyrD   r   r-   rG  s   `     @@r   test_dictionary_deltarS  W  sb   	rwyy"'))	,	,B   !!!EN(((FO	D     G !!QZF	  	  	  	  	  	  	   -]2?++ 	# 	#M'"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ]2?++ 	. 	.M,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ]7##$))))(A----+q0000'1,,,,+/N(V33# 4 % %N 	-]2?++ 	# 	#M'"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ]7##$))))(A----+q0000'1,,,,	)	*	*B A%%%%$))))'1,,,,#q((((V33 4  N 
w	.	.	.B A%%%% -(A----+q0000'1,,,,,,(A----+q0000'1,,,,,,s6   B55B9<B9C66C:=C:F**F.1F.c                  p   t          j        t          j        dt          j                              g          } t           j                            t          j                    |           }|j        rJ |j        t           j        j	        j
        k    sJ t           j                            t          j                    |           }|j        rJ |j        t           j        j	        j
        k    sJ t          dd          5  t           j                            t          j                    |           }|j        sJ |j        t           j        j	        j
        k    sJ t           j                            t          j                    |           }|j        sJ |j        t           j        j	        j
        k    sJ 	 d d d            n# 1 swxY w Y   t          dd          5  t           j                            t          j                    |           }|j        rJ |j        t           j        j	        j        k    sJ t           j                            t          j                    |           }|j        rJ |j        t           j        j	        j        k    sJ 	 d d d            n# 1 swxY w Y   t          dd          5  t          dd          5  t           j                            t          j                    |           }|j        sJ |j        t           j        j	        j        k    sJ t           j                            t          j                    |           }|j        sJ |j        t           j        j	        j        k    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr(   ARROW_PRE_0_15_IPC_FORMAT1ARROW_PRE_1_0_METADATA_VERSION)r.   r-   r   int32rM   rf   r   _use_legacy_format_metadata_versionr!  r  rN   r   r"  )r-   r?   s     r   !test_envvar_set_legacy_ipc_formatr[    sq   Y

33455FVr466??F((((#rv'='@@@@@V__R244f==F((((#rv'='@@@@@	4c	:	: E E""2#8#:#:FCC(((('26+A+DDDDD!6!8!8&AA(((('26+A+DDDDDDE E E E E E E E E E E E E E E 
93	?	? E E""2#8#:#:FCC,,,,'26+A+DDDDD!6!8!8&AA,,,,'26+A+DDDDDDE E E E E E E E E E E E E E E 
93	?	? I I8#>> 	I 	IV&&r'<'>'>GGF,,,,+rv/E/HHHHHV__R%:%<%<fEEF,,,,+rv/E/HHHHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	II I I I I I I I I I I I I I I I I Is]    B7GGGB7J##J'*J'>N+B7NN+N	N+N	N++N/2N/c                 L   |                                  }t          j        |                                           }t          j                            |          }|                                }t          j                            |          }|	                    |          sJ d S r
   )
rD   r.   rR   r   rM   r   r   r5   r6   rX   )rs   r@   r]   r^   r   r   s         r   test_stream_read_allr]    s    **,,GON$=$=$?$?@@MV..F__Fx$$W--H=="""""""r   c                 @   d |                                  D             }|                                 }t          j                            |          }|                                }t          j        |                              d          }t          ||           d S )Nc                 6    g | ]}|                                 S r   r   r   s     r   r'   z+test_stream_read_pandas.<locals>.<listcomp>  s"    LLLEeooLLLr   Tr   )
rD   r   r.   rM   r   r   r   r   r   r   )rs   r   r]   r^   r   r   s         r   test_stream_read_pandasr`    s    LL^-I-I-K-KLLLF"--//MV..F!!Fy  ,,$,77Hvx(((((r   c                     |                                  }|                                 }t          j        |          }t          j                            |          }|t          |          fS r
   )rD   r   r.   rR   MessageReaderr   r   )rs   r@   r]   
buf_readerr^   s        r   example_messagesrd    sZ    **,,G"--//M//J))*55FDLL  r   c                  L   t          j        t                    5  t          t	          j                               d d d            n# 1 swxY w Y   t          j        t                    5  t          t	          j                               d d d            d S # 1 swxY w Y   d S r
   )r~   r   r   reprr.   Messagerb  r   r   r   test_message_ctors_no_segfaultrh    s   	y	!	!  RZ\\               
y	!	! ! !R   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s#   !AAA+!BB Bc                 0   | \  }}t          |          dk    sJ |d         j        dk    sJ t          |d         j        t          j                  sJ t          |d         j        t          j                  sJ |d         j        t          j        j	        k    sJ |dd          D ]m}|j        dk    sJ t          |j        t          j                  sJ t          |j        t          j                  sJ |j        t          j        j	        k    sJ nd S )Nr   r   r-   r   zrecord batch)
rU   r   rY   metadatar.   Bufferbodyr  r!  r  )rd  r&   messagesmsgs       r   test_message_readerro    s   "KAxx==AA;x''''hqk*BI66666hqk&	22222A;'2+=+@@@@@| = =x>))))#,	22222#(BI.....#r'9'<<<<<<	= =r   c                    | \  }}|d         }|                                 }t          j        |                                dz            }t          j                            |          }t          j                            |          }t          j                            |                                          }t          j                            |          }	|                    |          sJ |                    |          sJ |                    |          sJ |                    |	          sJ t          j        t          j	        d          5  t          j                            t          j        d                     d d d            n# 1 swxY w Y   t          j        t                    5  t          j                            |           d d d            d S # 1 swxY w Y   d S )Nr   r   zCorrupted messager)  s   ab)	serializer.   rR   
to_pybytesrM   r-  rX   r~   r   r   EOFError)
rd  r&   rm  rn  r   r^   restored	restored2	restored3	restored4s
             r   #test_message_serialize_read_messagerx    s   "KAx
1+C
--//C_S^^--122Fv""3''H##F++I##CNN$4$455I##F++I::h::i     ::i     ::i     	r.A	B	B	B 4 4
BOE223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 
x	 	  $ $
F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s$   2FFF7 G$$G(+G(c                    | \  }}|D ]}t          j                    }t          j        |d          5 }|                    |           d d d            n# 1 swxY w Y   |                                }t           j                            t          j        |d                    }|                    |          sJ d S )Ngzipr  )	r.   r   output_streamserialize_tor   rM   r-  input_streamrX   )rd  r&   rm  r.  raw_outcompressed_outcompressed_bufr   s           r   !test_message_read_from_compressedr    s    #KAx 	& 	&'))g6::: 	1n  000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 !))++$$R_^AG&I &I &I J J}}W%%%%%%	& 	&s   AA	A	c                     | \  }}t           j                            |d                   }|                    |d         j                  sJ d S r  )r.   rM   read_schemarX   r-   )rd  r@   rm  r-   s       r   test_message_read_schemar  $  sJ    (GXV,,F==*+++++++r   c                     | \  }}t          ||dd                    D ]A\  }}t          j                            ||j                  }|                    |          sJ Bd S )Nr   )zipr.   rM   read_record_batchr-   rX   )rd  r@   rm  rB   r.  
read_batchs         r   test_message_read_record_batchr  *  sq    (GXgx|44 ( (wV--gu|DD
  ''''''( (r   c                  &   t          j        t          j        dgt          j                              gdg          } t          j                    }t           j                            || j                  5 }|                    |            d d d            n# 1 swxY w Y   |	                                }t          j        t          d          5  t           j                            || j                   d d d            d S # 1 swxY w Y   d S )N   foor   strsr  z type record batch but got schemar)  )r.   r3   r   r0   r   rM   rf   r-   r8   r   r~   r   IOErrorr  )rB   streamr?   r   s       r   .test_read_record_batch_on_stream_error_messager  2  ss   ORXvhRWYY???@#)(, , ,E"$$F			65<	0	0 "F5!!!" " " " " " " " " " " " " " "
//

C	w?
A 
A 
A 4 4
  el3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s$   7BB B&DD
D
c                        e Zd Zd Zd Zd ZdS )StreamReaderServerc                 :   t          j         t           j        t           j                  | _        | j                            d           | j                            d           | j                                        \  }}|| _        d | _        g | _	        d | _
        |S )N)	127.0.0.1r   r   )socketAF_INETSOCK_STREAM_sockbindlistengetsockname_do_read_all_schema_batches_table)r   do_read_allhostports       r   initzStreamReaderServer.initE  s~    ]6>63EFF

()))
!Z++--
d'r   c                     | j                                         \  }}	 |                    d          }t          j                            |          }|j        | _        | j        r|	                                | _
        n/t          |          D ]\  }}| j                            |            |                                 | j                                          d S # |                                 | j                                          w xY w)Nrbmode)r  acceptmakefiler.   rM   r   r-   r  r  r   r  rV   r  r4   r;   )r   
connectionclient_addressr   r^   rA   rB   s          r   runzStreamReaderServer.runP  s    %)Z%6%6%8%8"
N	((d(33FV''//F!=DL  0$oo// )& 1 1 0 0HAuM((////J Js   BC /Dc                 :    | j         | j        r| j        n| j        fS r
   )r  r  r  r  r   s    r   
get_resultzStreamReaderServer.get_result_  s&    T-> #dkk]$ 	$r   N)rE   rF   rG   r  r  r  r   r   r   r  r  C  sA        	 	 	  $ $ $ $ $r   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )SocketStreamFixturec                     d S r
   r   r   s    r   r   zSocketStreamFixture.__init__f  s	     	r   c                 X   t                      | _        | j                            |          }| j                                         t	          j        t          j        t          j                  | _        | j                            d|f           | 	                                | _
        d S )Nr  )r  _serverr  startr  r  r  r  connectr   r   )r   r  r  s      r   start_serverz SocketStreamFixture.start_serverk  s~    )++|  --]6>63EFF

K.///MMOO			r   c                 .   dd l }| j                            |                    dd                     | j                                         | j                                         | j                                         | j        	                                S )Nr   Q)
structr   r   packflushr  r;   r  r   r  )r   r  s     r   stop_and_get_resultz'SocketStreamFixture.stop_and_get_results  s{    	C++,,,	
|&&(((r   c                 8    | j                             d          S )Nr   r  )r  r  r   s    r   r   zSocketStreamFixture.get_sink{  s    z"""---r   c                 ,    t          j        ||          S r
   rk   rO   s      r   r1   zSocketStreamFixture._get_writer~  rm   r   N)rE   rF   rG   r   r  r  r   r1   r   r   r   r  r  d  s_          
$ $ $) ) ). . .8 8 8 8 8r   r  c                      t                      S r
   )r  r   r   r   socket_fixturer    rt   r   c                 t   |                      d           |                                 }|                                 \  }}|                    |d         j                  sJ t          |          t          |          k    sJ t          |          D ]"\  }}||                             |          sJ #d S )NFr  r   )r  rD   r  rX   r-   rU   rV   )r  writer_batchesreader_schemareader_batchesrA   rB   s         r   test_socket_simple_roundtripr    s    E222#1133N$2$F$F$H$H!M>q 1 899999~#n"5"55555n-- / /5a ''....../ /r   c                     |                      d           |                                 }|                                 \  }}t          j                            |          }|                    |          sJ d S )NTr  )r  rD   r  r.   r5   r6   rX   )r  r  r&   r   r   s        r   test_socket_read_allr    sr    D111#1133N2244IAvx$$^44H=="""""""r   c                  v   t          j        ddgi          } t          j                            |           }t          j                    }t          ||           |                                }t          j        	                    |dd                    }|
                                }t          | |           d S )Nr(         ?   )r   r   r.   r   r   r   
write_filer   rM   r   r   r   )r   rB   r   bufferr^   rdfs         r   test_ipc_file_stream_has_eosr    s     
usen	%	%BN&&r**E ""Dud]]__F Vqrr
++F 



Cr3r   c                     t          j        ddgi          } t          j                            |           }t          j                    }t          ||           |                                }t          j        |          }t          |          }|d         
                                }t          j        |          }t          | |           d S )Nr(   r  r   )r   r   r.   r   r   r   r  r   rR   	read_filer   r   )r   rB   r   r  r^   r@   rQ  r  s           r   test_ipc_zero_copy_numpyr    s    	usen	%	%BN&&r**E ""Dud]]__F_V$$FG1:!!D
,t

Cr3r   ipc_typer  filec           	        
 t          j        ddgi          }t          j                            |          }t          j                    }d}t          j        j        t          j        j        d|          } |||j	                  5 }t          |          D ](}|                    |dt          |          i           )|                    |           d d d            n# 1 swxY w Y   |                                }| dk    rYt          j                            |          5 
t          
                                          }	d d d            n# 1 swxY w Y   nWt          j                            |          5 

fdt          
j                  D             }	d d d            n# 1 swxY w Y   t          |          D ]c}|	|         j        j        d	k    sJ t+          |	|         j        t          j                  sJ |	|         j        dt          |          ik    sJ d|	|         j        j        d	k    sJ |	|         j        J d S )
Nr(   r  r   )r  r  batch_id)custom_metadatar  c                 :    g | ]}                     |          S r   )get_batch_with_custom_metadatar%   rA   r^   s     r   r'   z?test_batches_with_custom_metadata_roundtrip.<locals>.<listcomp>  s=      K  K  K$% !' E Ea H H  K  K  Kr   r   )r   r   r.   r   r   r   rM   rf   rN   r-   r2   r8   strr   r   r   !iter_batches_with_custom_metadatarS   rT   rB   num_rowsrY   r  KeyValueMetadata)r  r   rB   r   batch_countfile_factoryr?   rA   r  batch_with_metasr^   s             @r   +test_batches_with_custom_metadata_roundtripr    sJ    
usen	%	%BN&&r**E ""DK f/FO- --57L 
dEL	)	) "V{## 	L 	LAuz3q666JKKKK5!!!	" " " " " " " " " " " " " " " ]]__F8V'' 	P6#F$L$L$N$NOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P Vf%% 	K K  K  K  K).v/H)I)I K  K  K	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K ; K K"(1Q6666Q/1DF F 	F 	F 	F"2z3q666JJJJJJ K(.71<<<<K(8@@@@@s7   AC!!C%(C%%"EEE>!F++F/2F/c                  l   t           j                            t          j        g d          t          j        g d          gddg          } t          j                    }t           j                            || j                  5  	 d d d            n# 1 swxY w Y   |                                }t           j        	                    |          5 }|
                                }d d d            n# 1 swxY w Y   |j                            | j                  sJ t          |          dk    sJ d S )Nr8  r6  r:  r;  r  r   )r.   r5   r  r   r   rM   rf   r-   r   r   r   rX   rU   )rC   r   r   r^   r   s        r   test_ipc_stream_no_batchesr    s   H  "(<<<"8"8"$(+G+G+G"H"H"J(+Sz ! 3 3E  ""D			4	.	.                 ]]__F			F	#	# #v""# # # # # # # # # # # # # # # =-----v;;!s$   BBBC33C7:C7c                     d} d}t          j        dt          j                            |           i          }t
          j                            |          }t
          j        	                    |          | |z  k    sJ d S )Nr   r  r(   )
r   r   r   r#   r   r.   r   r   rM   get_record_batch_size)Nitemsizer   rB   s       r   test_get_record_batch_sizer    sn    
AH	ubiooa001	2	2BN&&r**E6''..!h,??????r   c                     t          j        | |rdnd          }t          j        ||          }t          ||            d S )Nr   r   )nthreadsr   )r.   serialize_pandasdeserialize_pandasr   )r   r   r   r   s       r   "_check_serialize_pandas_round_tripr    sK    

b+B11
C
C
CC"3K@@@Fvr"""""r   c                      t          j        g dd          } ddg}t          j        g dt          d          d| |	          }t	          |           d S )
Nr   my_indexnamer(   r)   r  g?g333333?abcr(   r)   indexcolumnsr   Indexr   r   r  r  r  r   s      r    test_pandas_serialize_round_tripr    si    HYYYZ000EenG	U44W
 
 
B 'r*****r   c                      t          j        g dd          } ddg}t          j        g dt          d          d| |	          }t	          |d
           d S )Nr   r  r  r(   r)   r  r  r  r  Tr   r  r  s      r   )test_pandas_serialize_round_trip_nthreadsr    sn    HYYYZ000EenG	U44W
 
 
B 'rt<<<<<<r   c                  6   t          j        g dd          } t          j        t          d          d           }t           j                            | |g          }ddg}t          j        g dt          d          d	||
          }t          |           d S )Nr   level_1r  defr(   r)   r  r  r  r  )r   r  r   
MultiIndexr  r   r  )index1index2r  r  r   s        r   ,test_pandas_serialize_round_trip_multi_indexr  #  s    Xiiii000FXd5kk---FM%%vv&677EenG	U44
 
 
B
 'r*****r   c                  J    t          j                    } t          |            d S r
   )r   r   r  )r   s    r   %test_serialize_pandas_empty_dataframer  2  s!    	B&r*****r   c                      t          j        t          t          g dd                              } t	          j        |           }t	          j        |          }t          ||            d S )Nr  r  )r   r   r   r  r.   r  r  r   )r   r   r   s      r   3test_pandas_serialize_round_trip_not_string_columnsr  8  s]    	d36677	8	8B

b
!
!C"3''Fvr"""""r   c                  V   t          j        dg dig d          } t          j        dg di          }t          j        | d          }t          j        |          }t          ||           t          j        | d          }t          j        |          }t          ||            d S )Nr:  r   )r  Fr   T)r   r   r.   r  r  r   )r   r   r   r   s       r   'test_serialize_pandas_no_preserve_indexr
  @  s    	sIII&iii	8	8	8B|S))),--H

b
7
7
7C"3''Fvx(((

b
6
6
6C"3''Fvr"""""r   c                     d} t          j        t          j                            |           dt          j        dddgd          }t          j                            |          }|j	        
                                }|
                                }t          j                            |          }t          j                            ||          }|                    |          sJ d S )Nr   r(   r)   r*   r+   r   )r   r   r   r#   r   r   r.   r   r   r-   rq  rM   r  r  rX   )r>   r   rB   s_schemas_batchrecons_schemarecons_batchs          r   #test_schema_batch_serialize_methodsr  N  s    E	yu%%rvuh68 8 
9 
9B N&&r**E|%%''HooGF&&x00M6++G]CCLu%%%%%%%r   c                     ddd} ddd}t          j        dt          j                              }t          j        dt          j                    |           }t          j        ||g|          }|                                }t           j                            |          }|                    |          sJ |j	        |k    sJ |d         j	        J |d	         j	        | k    sJ d S )
Ns   bars   field)r  s   kinds   schemar:  r;  )rj  r   r   )
r.   r   rM  stringr-   rq  rM   r  rX   rj  )field_metadataschema_metadataf0f1r-   r  r  s          r   'test_schema_serialization_with_metadatar  ^  s    $x88N%	::O	#rwyy	!	!B	#ry{{^	<	<	<BYBx/:::F!!HF&&x00M'''''!_4444$,,,$666666r   c                     t           j                            || j                  5 }|                    |            d d d            d S # 1 swxY w Y   d S r
   )r.   rM   rN   r-   r8   )rB   r   r?   s      r   r  r  p  s    	u|	,	, "5!!!" " " " " " " " " " " " " " " " " "s   A		AAc                     t           j                            |           5 fdt          j                  D             cd d d            S # 1 swxY w Y   d S )Nc                 :    g | ]}                     |          S r   )rW   r  s     r   r'   zread_file.<locals>.<listcomp>w  s'    NNN  ##NNNr   )r.   rM   rS   r2   rT   )r   r^   s    @r   r  r  u  s    			&	!	! OVNNNNU63L-M-MNNNO O O O O O O O O O O O O O O O O Os    AAAc                     t          j        dt          j                    fg          } t          j                    }t           j                            ||           5  	 d d d            n# 1 swxY w Y   |                                }t          j        t          j        |                    5 }|	                                }d d d            n# 1 swxY w Y   t          |          dk    sJ |j                            |           sJ d S )Nr   r   )r.   r-   int64r   rM   rN   r   r   rR   r   rU   rX   )r-   r   r   r^   rC   s        r   test_write_empty_ipc_filer  z  s]    Y"(**-.//F ""D	v	&	&                 --//C		!"/#"6"6	7	7 "6!!" " " " " " " " " " " " " " "u::????<v&&&&&&&s$   A**A.1A./CCCc                  D   d fd} t           |                       }t          j        |          }t          j                                         |          5 }d } |            J t          |           |             k    sJ  |            J 	 d d d            n# 1 swxY w Y   t          t           |                                 }t          j        |          }t          j                                         |          5 }d } |            J t          |           |             k    sJ  |            J 	 d d d            n# 1 swxY w Y    |             }t          j	        t                    5  t          j                            dt          j                    fg|          }	 d d d            n# 1 swxY w Y   t          j	        t                    5  t          j                            d |          }	 d d d            d S # 1 swxY w Y   d S )Nc                  R    t          j        dt          j                    fg          S )Nr   )r.   r-   r  r   r   r   make_schemaz0test_py_record_batch_reader.<locals>.make_schema  s     y7BHJJ/0111r   c                                   } t          j        g dg|           }t          j        ddgg|           }||gS )Nr   r,   r9  r   )r.   r3   )r-   batch1batch2r   s      r   make_batchesz1test_py_record_batch_reader.<locals>.make_batches  sM    )))V<<<1a&&999r   r   )r   weakrefrefr.   RecordBatchReaderr6   r   iterr~   r   r   r  )r$  r@   r   r^   r   s       @r   test_py_record_batch_readerr)    s$   2 2 2          ||~~&&G	W		B			*	*;;==+2
4 
4 7=rttF||||~~----rtt||||               8LLNN++,,G	W		B			*	*;;==+2
4 
4 7=rttF||||~~----rtt||||               lnnG	y	!	!  %22rxzz"#W. .              
 
y	!	!  %224AA                 sH   8B""B&)B&8EEE 5GG	G&!HHHc                      G d d          } t          j        t          j        g dt          j                              gdg          t          j        t          j        g dt          j                              gdg          g} | |          }t           j                            |          }t           j                            |          }|                                |k    sJ t           j                            |          }|                                |k    sJ t           j                            ||d         j	        	          }|                                |k    sJ t          j	        t          j
        dt          j                              g          }t           j                            ||	          }|                                |                    |          k    sJ t          j        t           j        j        d
          5  t           j                            |t          j	        t          j
        dt          j        t          j                                        g          	           d d d            n# 1 swxY w Y   t          j        t$                    5  t           j                            |d         d                    d d d            n# 1 swxY w Y   t          j        t$                    5  t           j                            ||d         	           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZddZdS )Atest_record_batch_reader_from_arrow_stream.<locals>.StreamWrapperc                     || _         d S r
   )r@   )r   r@   s     r   r   zJtest_record_batch_reader_from_arrow_stream.<locals>.StreamWrapper.__init__  s    "DLLLr   Nc                     t           j                            | j        d         j        | j                  }|                    |          S )Nr   )r.   r'  r6   r@   r-   __arrow_c_stream__)r   requested_schemar^   s      r   r/  zTtest_record_batch_reader_from_arrow_stream.<locals>.StreamWrapper.__arrow_c_stream__  s?    )66Q&6 6F,,-=>>>r   r
   )rE   rF   rG   r   r/  r   r   r   StreamWrapperr,    s7        	# 	# 	#	? 	? 	? 	? 	? 	?r   r1  r   r   r:  r  r9  r   r   r   r,   Field 0 cannot be castr)  )r.   r3   r   r  r5   r6   r'  from_streamr   r-   r   rX  castr~   r   libArrowTypeErrorlist_r   )r1  rQ  wrapperr   r^   good_schemas         r   *test_record_batch_reader_from_arrow_streamr;    s   ? ? ? ? ? ? ? ? 	)))"(**===>seLLL
)))"(**===>seLLLD mD!!G x$$T**H!--h77F??(((( !--g66F??(((( !--gd1gn-MMF??(((( )RXc28::66788K!--gk-JJF??k : ::::: 
rv,4L	M	M	M 
 

((BIrxRXbhjj5I5I'J'J&KLL 	) 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
y	!	! 7 7
((a6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
y	!	! C C
(($q'(BBBC C C C C C C C C C C C C C C C C Cs7   A+JJJ5,K--K14K1(MM
M
c                  
   t          j        t          j        dt          j                              g          } t          j        t          j        g dt          j                              gdg          t          j        t          j        g dt          j                              gdg          g}t           j                            |          }t           j                            | |          }|	                    |           
                                |k    sJ t          j        t          j        dt          j                              g          }t           j                            | |          }|	                    |          
                                |	                    |          k    sJ t           j                            | |          }t          j        t          d          5  |	                    t          j        g                      d d d            n# 1 swxY w Y   t           j                            | |          }t          j        t           j        j        d          5  |	                    t          j        t          j        dt          j        t          j                                        g                     d d d            n# 1 swxY w Y   t          j        t          j        dt          j                              g          } t          j        t'          j        d	d
d          gt          j                              }t          j        |gdg          t          j        |gdg          g}t           j                            |          }t           j                            | |          }|	                    |           
                                |k    sJ d S )Nr:  r   r   r  r2  zTarget schema's field namesr)  r3  i  r      )r.   r-   r   r  r3   r   r5   r6   r'  r5  r   rX  r~   r   r#  r6  r7  r8  date32datetimedate)
schema_srcrQ  	table_srcr^   
schema_dstarrs         r   test_record_batch_reader_castrE    s   BHS"(**55677J
)))"(**===>seLLL
)))"(**===>seLLLD %%d++I !..z4@@F;;z""++--:::: BHS"(**55677J!..z4@@F;;z""++--
1K1KKKKK !..z4@@F	z)F	G	G	G # #BIbMM"""# # # # # # # # # # # # # # # !..z4@@F	rv,4L	M	M	M F FBIrxRXbhjj-A-ABBCDDEEEF F F F F F F F F F F F F F F
 BHS")++66788J
(HM$2../bikk
B
B
BCOSE#///#se1T1T1TUD%%d++I!..z4@@F;;z""++--::::::s%   8(H,,H03H0<AK''K+.K+c                  j   t          j        t          j        dt          j                              g          } t          j        t          j        g dt          j                              gdg          g}t          j        t          j        g dt          j                              gdg          g}t           j                            |          }t           j                            |          }t           j                            | |          }t          j        t          j        dt          j	                              g          }|
                    |                                          |
                    |          k    sJ t           j                            | |          }t          j        t          j        dt          j	                    d          g          }|
                    |                                          |
                    |          k    sJ t           j                            | |          }|
                    |          }t          j        t           j        j        d	          5  |                                 d d d            d S # 1 swxY w Y   d S )
Nr:  )r   r   Nr   r  r   F)nullablezCan't cast arrayr)  )r.   r-   r   r  r3   r   r5   r6   r'  rX  r5  r   r~   r   r6  r   )rA  data_with_nullsdata_without_nullstable_with_nullstable_without_nullsr^   rC  casted_readers           r   #test_record_batch_reader_cast_nullsrM    st   BHS"(**55677J
,,,RXZZ@@@A#OOOO 	)))"(**===>seLLL x,,_==(//0BCC !..z?KKFBHS"(**55677J;;z""++--1A1F1Fz1R1RRRRR !..z;MNNFBHS"(**uEEEFGGJ;;z""++--1D1I1I*1U1UUUUU !..z?KKFKK
++M	rv*2D	E	E	E ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   J((J,/J,r`   )jcollectionsr   r?  r   r   r~   r#   r  	threadingr%  numpyr   ImportErrorpyarrowr.   pyarrow.tests.utilr   r   pandas.testingr   pandasr   r   rI   rc   ri   r   ro   rq   rs   ry   r{   r   r   r   markparametrizer   r   r   r   r   	processesr   r   r   rM   r3  r   r   r   r   r   r   r  r  r  r'  r+  r  r!  r"  r/  r4  rA  rS  r[  r]  r`  rd  rh  ro  rx  rz  r  r  r  r  Threadr  r  r  socketsr  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r)  r;  rE  rM  r   r   r   <module>r[     s	  $ !            				            	BBB     = = = = = = = =	111111 	 	 	D	$ $ $ $ $ $ $ $N> > > > >
 > > >6
 
 
 
 
* 
 
 
"8 8 8 8 8Z 8 8 8       ! ! ! FL   FL  	 	 	 	2 2	 	2/ / /2 2 21 1 1 ##*  
# 
#	 
#     . ) ) )        0 0  0$ . . . ; ; ;2 FFe,,%  : :	 :1 1 1 FFe,,%  
& 
&	 
&/ / / ? ? ?( 5 5 5. 05$-@@! ! A@!&   <., ., .,b' ' ' FFt,,FT22FBF,B,EFFFT,.F,B,E  G G%  ! ! !0* * *6  2H- H- H-V!I !I !IH# # # ) ) ) ! ! !! ! != = = $ $ $0 & & &, , ,( ( (
4 
4 
4"$ $ $ $ $) $ $ $B8 8 8 8 8* 8 8 8< ! ! ! / / / # # #      "        h%788"A "A 98 "AJ  $ @ @ @ # # # # + + + = = = + + + + + +
 # # # 
# 
# 
# & & &7 7 7$" " "
O O O
' ' ' * * *Z.C .C .Cb"; "; ";J! ! ! ! !s   - 77
A AA