K i ddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl ZddlmZmZ ddlmZddlZGddZGddeZGd d eZGd d eZej4d Zej4dZej4dZej4ej<ddej<ddgdZdZ dZ!dZ"ejFjIdddgdZ%dZ&ejFj(dZ'd Z(d!Z)ejFj(ejFjTd"Z+ejFj(d#Z,d$Z-ejFjId%ej\j_ej\j_d&'gd(Z0d)Z1ejFjId%ej\j_ej\j_d&'gd*Z2d+Z3ejFj(d,Z4ejFj(d-Z5d.Z6ejFjnd/Z8d0Z9ejFjId%ej\juej\jud12ej\jud13ej\juej\jvjx4ej\jud1ej\jvjx5gd6Z=d7Z>d8Z?d9Z@d:ZAd;ZBejFj(d<ZCej4d=ZDd>ZEd?ZFd@ZGejFjdAZIdBZJdCZKdDZLGdEdFejZNGdGdHeZOej4dIZPejFjdJZRejFjdKZSejFj(dLZTejFj(dMZUejFj(ejFjIdNdOdPgdQZVdRZWejFj(dSZXejFj(dfdTZYejFj(dUZZejFj(dVZ[ejFj(dWZ\ejFj(dXZ]ejFj(dYZ^ejFj(dZZ_ejFj(d[Z`d\Zad]Zbd^Zcd_Zdd`ZedaZfdbZgdcZhddZideZjy#e $rdZ YwxYw#e $rYwxYw)g)UserListN)changed_environ invoke_script)assert_frame_equalc0eZdZdZdfdZdZdZddZy) IpcFixtureNc*tjSNioBytesIO\/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pyarrow/tests/test_ipc.pyzIpcFixture./s BJJLrc<||_|j|_yr ) _sink_factoryget_sinksink)self sink_factorys r__init__zIpcFixture.__init__/s)MMO rc"|jSr )rrs rrzIpcFixture.get_sink3s!!##rc6|jjSr )rgetvaluers r get_sourcezIpcFixture.get_source6syy!!##rcpd}tjdtjfdtjfg}|j |j |}g}t |D]W}tjt |Dcgc]}tjc}gdg|} |j| Y|r1tjj|} |j| n|D]} |j| |j|_|j!|Scc}w)Nonetwo)fooNbarbazbazquxschema)par'float64utf8 _get_writerrrange record_batchrandomappendTable from_batches write_table write_batchstats write_statsclose) r num_batchesas_tablenrowsr'writerbatchesi_batchtables r write_batcheszIpcFixture.write_batches9sUBJJL1E27793EFG!!$))V4{# "AOO+0<8a&--/868E NN5 !  " HH))'2E   u %  *""5) *"<< 9s D3 )rF)__name__ __module__ __qualname__r5rrrr@rrrrr,sK$8$$$rrc"eZdZdZdZdZddZy)FileFormatFixtureTNcZtjj|||jSNoptions)r(ipcnew_filerIrrr's rr+zFileFormatFixture._get_writerXsvvtVT\\BBrc|j|}tj|j}tjj |}|j t|k(sJt|D]V\}}|j|}||j|sJ|jj|djrVJt|jtjjsJt|jtjj sJt#|jt#|jk(sJy)Nr8r)r@r( BufferReaderrrJ open_filenum_record_batcheslen enumerate get_batchequalsr' isinstancer4 ReadStatsr5 WriteStatstuple)rr8r; file_contentsreaderr<r>s r_check_roundtripz"FileFormatFixture._check_roundtrip[s$$h$7(9: !!-0((CL888!'* ;HAu$$Q'E1:$$U+ ++=='' (9(9: ::  ; &,,(8(8999$**BFF,=,=>>>V\\"eD,<,<&====rF)rArBrCis_filerIr+r\rrrrErESsGGC>rrEceZdZdZdZdZdZy)StreamFormatFixtureFNcZtjj|||jSrG)r(rJ new_streamrIrLs rr+zStreamFormatFixture._get_writervs+vv   LL!  r)rArBrCuse_legacy_ipc_formatrIr^r+rrrr`r`ns"GG rr`ceZdZdZy)MessageFixturec.tj||Sr r(RecordBatchStreamWriterrLs rr+zMessageFixture._get_writer))$77rN)rArBrCr+rrrrere~s8rrectSr )rrrr ipc_fixturerks <rctSr )rErrr file_fixturerms  rctSr )r`rrrstream_fixturero   rrmz File Format)idroz Stream Format)paramsc8|j|jSr )getfixturevalueparam)requests rformat_fixturerws  " "7== 11rcd}tjtj5tjj tj |dddy#1swYyxYwNr)pytestraisesr( ArrowInvalidrJrPrObufs rtest_empty_filersG C r '/ -.///s 3A""A+c(|jdy)NFrNr\rms rtest_file_simple_roundtriprs!!5!1rc(|jdy)NTrNrrs rtest_file_write_tablers!!4!0rrc*tjSr r rrrrrs BJJLrc*tjSr )r(BufferOutputStreamrrrrrsB ! ! #rcBt|}|j}tj|j }tj j |}|j}tjj|}|j|sJyr ) rEr@r(rOrrJrPread_allr0r1rU)rfixturer;rZr[resultexpecteds rtest_file_read_allrsy  -G##%GOOG$6$6$89M VV  m ,F __ Fxx$$W-H == "" "rc\|j|j}tjj |}tjj tj |}tj |}|j}|j}|j}|j|sJ|j|sJ|j}|jdk(sJ|jdk(sJ|j|k(sJ|j|k(sJyNr) r@rr(rJrPrORecordBatchFileReaderrrUr4 num_messagesrQ) rmsourcereader1reader2reader3result1result2result3st1s rtest_open_file_from_bufferrs  $ $ &Fffv&Gffrv67G&&v.G G G G >>' "" " >>' "" " --C   q   ! !Q && & ==C   ==C  rcj|jDcgc]}|j}}tj|j }tj j |}|j}tj|jd}t||ycc}wNT)drop) r@ to_pandasr(rOrrJrP read_pandaspdconcat reset_indexr)rmr>framesrZr[rrs rtest_file_read_pandasrs-9-G-G-I JEeoo JF JOOL$;$;$=>M VV  m ,F    !Fyy ,,$,7Hvx(KsB0c|j|j}|jdj}t |d5}|j |dddt jjtj|j}t jjt j|j}|j|sJy#1swYxYw)N file.arrowwb)r@rjoinstrpathopenwriter(rJrPpathlibPathrOSFilerU)rmtmpdirrpathft1t2s rtest_file_pathlibrs  $ $ &F ;;| $ , ,D dD Q    ',,t, - 6 6 8B   "))D/ * 3 3 5B 99R== s C66C?ctjd}tjtj 5tj j|dddy#1swYyxYwry)r r rzr{r(r|rJ open_streamr}s rtest_empty_streamrsF **S/C r '  3   s A""A+ctj}tjtjd|g}|j dj }tj |d5}tjj||5}tjdg|}tj|g|}|j|ddddddtd|y#1swYxYw#1swY"xYw)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. numsrrtypeNzread_record_batch.py) r(month_day_nano_intervalr'fieldrrrrJrKarrayr-rr)rmdn_interval_typer'rrr:interval_arrayr>s r"test_read_year_month_nano_intervalrs224 YY):;< =F ;;| $ , ,D 4  $ VV__T6 * fXXyk8IJNOO^$4f=E LL   ($/     s%0!C;AC/C;/C8 4C;;Dc jtjtjj dtj dtj dddgddgdd}tjj|}|j|j|j5}|j|dddtjjtj |j#j%}t'|j)|y#1swYrxYw)Nrr"r#T categoriesorderedr r!)r DataFramenpr.randn Categoricalnanr( RecordBatch from_pandasr+rr'r3rJrrOrrrr)rodfr>wrr?s r!test_stream_categorical_roundtripr s yyq!~~ubffeUEB*/&*, B NN & &r *E  # #N$7$7 F" uVV  0I0I0K L Mhj u("- s &D))D2c|j|j}tjj |}tjj tj |}tj |}|j}|j}|j}|j|sJ|j|sJ|j}|jdk(sJ|jdk(sJ|j|k(sJ|j|k(sJt|t|jk(sJyr)r@rr(rJrrORecordBatchStreamReaderrrUr4rrQrYr5) rorrrrrrrrs rtest_open_stream_from_bufferrs  "  & & (Fff  (Gff  !89G((0G G G G >>' "" " >>' "" " --C   q   ! !Q && & ==C   ==C   :~99: :: :rrIF use_threadscH|j|j}tjj ||}|j |j }|jdk(sJ|jdk(sJt|t|jk(sJyNrHrr) r@rr(rJrrr4rrQrYr5)rorIrr[sts rtest_open_stream_optionsr5s   "  & & (F VV    8F OO B ??a   A %% % 9n889 99 9rc|j|j}tjt5t j j|ddddy#1swYyxYwNTrH)r@rrzr{ TypeErrorr(rJr)rors r#test_open_stream_with_wrong_optionsrGsT  "  & & (F y !1 640111 "A%%A.c|j|j}tjj ||}|j |j }|jdk(sJ|jdk(sJyr) r@rr(rJrPrr4rrQ)rmrIrr[rs rtest_open_file_optionsrOsp   $ $ &F VV  fg  6F OO B ??a   A %% %rc|j|j}tjt5t j j|ddddy#1swYyxYwr)r@rrzr{rr(rJrP)rmrs r!test_open_file_with_wrong_optionsr`sT  $ $ &F y !/ .///rc tjtjj dtj dtj dddgddgdd}tjj|d}tjj|d}|j|j|j5}|j||j|dddtjj!tj"|j%j'}t)|j+tj,||gd y#1swYxYw) Nrr"r#TrrFpreserve_index ignore_index)rrrr.rrrr(r0rrr+rr'rrJrrOrrrrr)rorr?r>rs rtest_stream_write_dispatchrhs yyq!~~ubffeUEB*/&*, B HH E :E NN & &r% & @E  # #N$7$7 F"  VV  0I0I0K L Mhj u(yy"b=? s #E44E=c 0tjdtjj di}t j j|ddd}t j j|d}t jj|||g}|j|j|j5}|j|ddddtt jj!|j#}tt%t&|gdk(sJt jj|}t)|j+tj,|dd||ddgd y#1swYxYw) Nr  Fr) max_chunksize)rrrrTr)rrrr.rr(rrr0r1r+rr'r2listrJrrmaprRrrr)rorb1b2r?rr; result_tables rtest_stream_write_table_batchesr}sG  ryyr" B  # #BsGE # BB  # #Bu # =B HH ! !2r2, /E  # #N$7$7 F0" uB/0266%%n&?&?&ABCG C! "o 55 588((1L|--/yy"Sb'2r#2w!7.24500s F  Fc|j}tj|j}tjj |}|j j|dj sJd}t|D] \}}|j||sJ|dz }"|t|k(sJtjt5|jdddy#1swYyxYwNrr)r@r(rOrrJrr'rUrSrRrzr{ StopIterationread_next_batch)ror;rZr[totalr< next_batchs rtest_stream_simple_roundtriprs**,GOON$=$=$?@M VV   .F ==   1 1 22 2 E"6* :  ,,,   CL  } %! !!!s C00C9c(tj}tdDcgc]}tjdd}}t j j|gdg}t jjd}t jj||j|5}|j|dddt|j}tj}t jdd }t jj|}t jj||j|5}|j|dddt|j} | |k7sJt jj!|j#} t jj!|j#} | | k(sJycc}w#1swY;xYw#1swYxYw) Ni'rrvaluesnameszstd compressionrHr)compression_level)r r r,r.randintr(r0 from_arraysrJIpcWriteOptionsRecordBatchFileWriterr'r2rRrCodecrPr) rr=rr?rIr:len1sink2codeclen2rrs rtest_compression_roundtriprs ::G  # #w'?'? ?? ? VV   .F ==   1 1 22 2 E"6* :  ,,,   CL  } %! !!!s %D??Ectjj}|jdusJ|jdusJ|j tjj jk(sJ|jgk(sJd|_|jdusJtjj j|_|j tjj jk(sJtjj j|_|j tjj jk(sJd|_|jdusJddg|_|jddgk(sJtjt5d|_dddtjjddtjj jdg}|jdusJ|jdusJ|j tjj jk(sJ|jdgk(sJy#1swYxYw)NTFrr)rensure_native_endianensure_alignmentincluded_fields)r(rJIpcReadOptionsrr&r' AlignmentAnyr(DataTypeSpecificAt64Byterzr{rrHs rtest_read_optionsr.s ff##%G   $ && &  ' '4 // /  # #rvv'7'7';'; ;; ;  " "b (( (#(G  ' '5 00 0!vv//@@G  # #rvv'7'7'H'H HH H!vv//88G  # #rvv'7'7'@'@ @@ @G   % '' ' !fG  " "q!f ,, , y !'"&'ff##))::QC$G   % '' '  ' '5 00 0  # #rvv'7'7'H'H HH H  " "qc )) )''s II#ctjj}tjjdg}tjj tj gdtj gdgddg}|j |j|j5}|j|ddd|j}tjj||}tjj||tj }|j}|j} |jd k(sJ| jdk(sJtjj tj gdgdg} | | k(sJ||k(sJy#1swYxYw) Nr)r(r"r#bazr%rrrabrrH)rI memory_poolr)r(rJr)r0r rr+rr'r2rrsystem_memory_poolr num_columns) rooptions1options2r?rrrrrrrs r!test_read_options_included_fieldsr;8svv$$&Hvv$$aS$9H HH "((+G"H!#,!7"9(+Sz ! 3E  # #N$7$7 F" u  & & (Fff   :Gff  b.C.C.E!GG G G   ! ## #   ! ## #xx##RXXl%;$rwr's rr@z,test_dictionary_delta..write_batches_s  ' '(;(;(=(.0 39--g6""5)$.E&&u-.<<   s ABBrrT)emit_dictionary_deltasrr)unify_dictionariesrNr])r( dictionaryint8r*rr rr'r^rzr{r|rQnum_dictionary_batchesnum_replaced_dictionariesnum_dictionary_deltasrcrJr rI) rwtydatavr;batches_delta_onlyr@rr's ` @rtest_dictionary_deltarLQsL rwwy"'') ,B ! EN ( FO  D  ""BHHQR$8#9'"KG!! QZ  F   ]]2?? + # ' " #]]2?? + . , - . .7 #$$)))((A---++q000''1,,,+/N(VV33#4%N ]]2?? + # ' " # #7 #$$)))((A---++q000''1,,, ) *B A %% % $ $ )) ) ' '1 ,, , # #q (( (VV334N w .B A %% %((A---++q000''1,,,((A---++q000''1,,,A& # # . . # #s*?L( L- L: M-L7:MMctjtjdtjg}tjj tj |}|jrJ|jtjjjk(sJtjjtj |}|jrJ|jtjjjk(sJtdd5tjj tj |}|jsJ|jtjjjk(sJtjjtj |}|jsJ|jtjjjk(sJ dddtdd5tjj tj |}|jrJ|jtjjjk(sJtjjtj |}|jrJ|jtjjjk(sJ dddtdd5tdd5tjj tj |}|jsJ|jtjjjk(sJtjjtj |}|jsJ|jtjjjk(sJ ddddddy#1swYxYw#1swY)xYw#1swY,xYw#1swYyxYw)Nr"ARROW_PRE_0_15_IPC_FORMAT1ARROW_PRE_1_0_METADATA_VERSION)r(r'rint32rJrbr_use_legacy_format_metadata_versionrrrKrr)r'r:s r!test_envvar_set_legacy_ipc_formatrTsF YY 34 5F VV  r446 ?F((( (  # #rvv'='='@'@ @@ @ VV__R224f =F((( (  # #rvv'='='@'@ @@ @ 4c :E""2#8#8#:FC((((''266+A+A+D+DDDD!6!6!8&A((((''266+A+A+D+DDDD E 93 ?E""2#8#8#:FC,,,,''266+A+A+D+DDDD!6!6!8&A,,,,''266+A+A+D+DDDD E 93 ?I 8# > IVV&&r'<'<'>GF,, ,,++rvv/E/E/H/HH HHVV__R%:%:%rrZr[rrs rtest_stream_read_pandasrXs-;-I-I-K LEeoo LF L"--/M VV   .F    !Fyy ,,$,7Hvx( MsBc|j}|j}tj|}tjj |}|t |fSr )r@rr(rO MessageReaderrr)ror;rZ buf_readerr[s rexample_messagesr\sQ**,G"--/M/J    ) )* 5F DL  rc0tjt5tt j dddtjt5tt j dddy#1swYIxYw#1swYyxYwr )rzr{rreprr(MessagerZrrrtest_message_ctors_no_segfaultr`sj y ! RZZ\ y !! R    !!!!sBB B  Bcr|\}}t|dk(sJ|djdk(sJt|djtj sJt|dj tj sJ|djtjjk(sJ|ddD]}|jdk(sJt|jtj sJt|j tj sJ|jtjjk(rJy)Nrrr'rz record batch) rRrrVmetadatar(Bufferbodyrrr)r\r=messagesmsgs rtest_message_readerrgs "KAx x=A   A;  x '' ' hqk**BII 66 6 hqk&& 22 2 A; ' '2+=+=+@+@ @@ @|=xx>)))#,, 222#((BII...##r'9'9'<'<<<< =rc|\}}|d}|j}tj|jdz}tjj |}tjj |}tjj |j}tjj |} |j |sJ|j |sJ|j |sJ|j | sJtjtjd5tjj tjddddtjt5tjj |dddy#1swYKxYw#1swYyxYw)NrrzCorrupted messagematchsab) serializer(rO to_pybytesrJr"rUrzr{r|EOFError) r\r=rerfr~r[restored restored2 restored3 restored4s r#test_message_serialize_read_messagerrsU"KAx 1+C --/C __S^^-1 2Fvv""3'H##F+I##CNN$45I##F+I ::h   ::i  ::i  ::i  r.A B4 BOOE234 x $ F#$$44$$s<3F9 G9GGcl|\}}|D]}tj}tj|d5}|j|ddd|j }tj j tj|d}|j|rJy#1swYcxYw)Ngzipr) r(r output_stream serialize_torrJr" input_streamrU)r\r=rer#raw_outcompressed_outcompressed_bufrs r!test_message_read_from_compressedr{s#KAx &'')   g6 : 1n   0 1!))+$$R__^AG&IJ}}W%%% & 1 1s B**B3 c|\}}tjj|d}|j|djsJyr)r(rJ read_schemarUr')r\r;rer's rtest_message_read_schemar~s@(GX VV   ,F ==** ++ +rc|\}}t||ddD]B\}}tjj||j}|j |rBJy)Nr)zipr(rJread_record_batchr'rU)r\r;rer>r# read_batchs rtest_message_read_record_batchr$sZ(GXgx|4(wVV--gu||D   '''(rc"tjtjdgtjgdg}tj}tj j ||j5}|j|ddd|j}tjtd5tj j||jdddy#1swYhxYw#1swYyxYw)Nfoorstrsrz type record batch but got schemari)r(r-rr*rrJrbr'r3rrzr{IOErrorr)r>streamr:r~s r.test_read_record_batch_on_stream_error_messager,s OORXXvhRWWY?@#)( ,E  " " $F   65<< 0"F5!" // C w? A4   ell344""44sC9+D9DDceZdZdZdZdZy)StreamReaderServercRtjtjtj|_|jj d|jj d|jj \}}||_d|_g|_ d|_ |S)N) 127.0.0.1rr) socketAF_INET SOCK_STREAM_sockbindlisten getsockname _do_read_all_schema_batches_table)r do_read_allhostports rinitzStreamReaderServer.init?sy]]6>>63E3EF  () !ZZ++- d'    rc|jj\}} |jd}tjj |}|j |_|jr|j|_ n.t|D] \}}|jj|"|j|jjy#|j|jjwxYw)Nrbmode)racceptmakefiler(rJrr'rrrrrSrr/r6)r connectionclient_addressrr[r<r>s rrunzStreamReaderServer.runJs%)ZZ%6%6%8" N ((d(3FVV''/F!==DL  $oo/ )& 10HAuMM((/0     JJ        JJ   s BC,Dcd|j|jr |jfS|jfSr )rrrrrs r get_resultzStreamReaderServer.get_resultYs2 T->->dkk$ $]]$ $rN)rArBrCrrrrrrrr=s  $rrc*eZdZdZdZdZdZdZy)SocketStreamFixturecyr rrs rrzSocketStreamFixture.__init__`s rc^t|_|jj|}|jjt jtj tj |_|jjd|f|j|_ y)Nr) r_serverrstartrrrrconnectrr)rrrs r start_serverz SocketStreamFixture.start_serveresp)+ ||  - ]]6>>63E3EF  K./MMO rc0ddl}|jj|jdd|jj |j j |jj|jjS)NrQ) structrrpackflushrr6rrr)rrs rstop_and_get_resultz'SocketStreamFixture.stop_and_get_resultmsa  C+,   ||&&((rc:|jjdS)Nrr)rrrs rrzSocketStreamFixture.get_sinkuszz"""--rc.tj||Sr rgrLs rr+zSocketStreamFixture._get_writerxrirN)rArBrCrrrrr+rrrrr^s $).8rrctSr )rrrrsocket_fixturer|rprc2|jd|j}|j\}}|j|djsJt |t |k(sJt |D]\}}||j|rJy)NFrr)rr@rrUr'rRrS)rwriter_batches reader_schemareader_batchesr<r>s rtest_socket_simple_roundtriprsE2#113N$2$F$F$H!M>   q 1 8 8 99 9 ~ #n"5 55 5n-/5a ''.../rc|jd|j}|j\}}tjj |}|j |sJy)NTr)rr@rr(r0r1rU)rrr=rrs rtest_socket_read_allrsYD1#113N224IAvxx$$^4H == "" "rcNtjddgi}tjj |}tj }t |||j}tjj|dd}|j}t||y)Nr"?) rrr(rrr write_filerrJrrr)rr>rbufferr[rdfs rtest_ipc_file_stream_has_eosrs usen %B NN & &r *E "Dud ]]_FVV  qr +F    Cr3rcztjddgi}tjj |}tj }t |||j}tj|}t|}|dj}tj|}t||y)Nr"rr) rrr(rrrrrrO read_filerr)rr>rrr[r;rIrs rtest_ipc_zero_copy_numpyrs usen %B NN & &r *E "Dud ]]_F __V $FG 1:   !D ,,t Cr3ripc_typerfilec tjddgi}tjj |}tj }d}tj jtj jd|}|||j5}t|D] }|j|dt|i"|j|ddd|j}|dk(rBtj j|5} t| j!} dddnYtj j#|5} t| j$Dcgc]}| j'|} }dddt|D]h} |j(j*dk(sJt-| |j.tj0sJ| |j.dt|ik(rhJ |j(j*dk(sJ| |j.Jy#1swY`xYw#1swYxYwcc}w#1swYxYw) Nr"rr)rrbatch_id)custom_metadatarr)rrr(rrrrJrbrKr'r,r3strrrr!iter_batches_with_custom_metadatarPrQget_batch_with_custom_metadatar>num_rowsrVrKeyValueMetadata) rrr>r batch_count file_factoryr:r<rr[batch_with_metass r+test_batches_with_custom_metadata_roundtriprsR usen %B NN & &r *E "DK ff//FFOO--57L dELL )"V{# LA   uz3q66J  K L 5! " ]]_F8 VV   ' P6#F$L$L$NO  P PVV  f % K).v/H/H)I K$%!' E Ea H K  K K; K"((11Q666 Q  / /1D1DF FF"22z3q66JJJJ K K ( . . 7 71 << < K ( 8 8 @@ @1"" P P K K Ks7AH7II/II7II IIc`tjjtjgdtjgdgddg}tj}tj j ||j5 ddd|j}tj j|5}|j}dddjj|jsJt|dk(sJy#1swYxYw#1swYMxYw)Nr2r0r4r5rr) r(r0r rrrJrbr'rrrrUrR)r?rrr[rs rtest_ipc_stream_no_batchesrs HH "((<"8"$((+G"H"J(+Sz ! 3E  "D   4 .   ]]_F   F ##v"# ==   -- - v;!    ##sDD$D!$D-cd}d}tjdtjj |i}t j j|}t jj|||zkDsJy)Nrrr") rrrr.rr(rrrJget_record_batch_size)Nitemsizerr>s rtest_get_record_batch_sizersa AH ubiiooa01 2B NN & &r *E 66 ' ' .!h, ?? ?rctj||rdnd}tj||}t||y)Nrr)nthreadsr)r(serialize_pandasdeserialize_pandasr)rrr~rs r"_check_serialize_pandas_round_triprs4  b 1 CC  " "3K @Fvr"rctjgdd}ddg}tjgdtdd|| }t |y) Nrmy_indexnamer"r#rg?g333333?abcr"r#indexcolumnsrIndexrrrrrrs r test_pandas_serialize_round_triprsD HHYZ 0EenG U 4W B'r*rctjgdd}ddg}tjgdtdd|| }t |d y) Nrrrr"r#rrrrTrrrs r)test_pandas_serialize_round_trip_nthreadsrsF HHYZ 0EenG U 4W B'rts_schemas_batch recons_schema recons_batchs r#test_schema_batch_serialize_methodsrHs E yyu%rvvuh68 9B NN & &r *E||%%'HooGFF&&x0M66++G]CL   u %% %rcddd}ddd}tjdtj}tjdtj|}tj||g|}|j }tj j|}|j|sJ|j|k(sJ|djJ|d j|k(sJy) Nsbarsfield)rskindsschemar4r5rbrr) r(rrDstringr'rkrJr}rUrb)field_metadataschema_metadataf0f1r'rrs r'test_schema_serialization_with_metadatarXs$x8N% :O #rwwy !B #ryy{^ rr:s rrrjs= u|| ,"5!"""s AActjj|5}t|jDcgc]}|j |c}cdddScc}w#1swYyxYwr )r(rJrPr,rQrT)rr[r<s rrros\   & !OV-263L3L-MN  #NOONOOsA!AA!A!!A*ctjdtjfg}tj}tjj ||5 ddd|j }tjtj|5}|j}dddtdk(sJ|jj|sJy#1swYxYw#1swYCxYw)Nrr) r(r'int64rrJrKrrrOrrRrU)r'rr~r[r?s rtest_write_empty_ipc_filertsYY"((*-. /F "D v &    --/C ! !"//#"6 7"6!" u:?? <<  v && &  ""sC(!C4(C14C=cdfd}t|}tj|}tjj |5}d}|Jt ||k(sJ|J dddtt|}tj|}tjj |5}d}|Jt ||k(sJ|J ddd|}tjt5tjj dtjfg|} dddtjt5tjj d|} dddy#1swY3xYw#1swYxYw#1swYfxYw#1swYyxYw)NcVtjdtjfgS)Nr)r(r'rrrr make_schemaz0test_py_record_batch_reader..make_schemasyy7BHHJ/011rc}tjgdg|}tjddgg|}||gS)Nrr&r3r)r(r-)r'batch1batch2rs r make_batchesz1test_py_record_batch_reader..make_batchess=)V<1a&&9rr) rweakrefrefr(RecordBatchReaderr1riterrzr{rr)rr;rr[rs @rtest_py_record_batch_readerr!s2 |~&G W B   * *;=+2 47=tF||~---t|| 8LN+,G W B   * *;=+2 47=tF||~---t|| nG y ! %%22rxxz " #W.  y ! %%224A   5    s0*F0*F=-6G !G0F:=G GGc tGdd}tjtjgdtjgdgtjtjgdtjgdgg}||}tjj |}tj j|}|j|k(sJtj j|}|j|k(sJtj j||dj }|j|k(sJtjtjdtjg}tj j|| }|j|j|k(sJtjtjj d 5tj j|tjtjdtj"tjg dddtjt$5tj j|dddddtjt$5tj j||d dddy#1swYxYw#1swY\xYw#1swYyxYw) NceZdZdZddZy)Atest_record_batch_reader_from_arrow_stream..StreamWrapperc||_yr )r;)rr;s rrzJtest_record_batch_reader_from_arrow_stream..StreamWrapper.__init__s "DLrNctjj|jdj|j}|j |S)Nr)r(rr1r;r'__arrow_c_stream__)rrequested_schemar[s rr'zTtest_record_batch_reader_from_arrow_stream..StreamWrapper.__arrow_c_stream__sA))66 Q&& 6F,,-=> >rr )rArBrCrr'rrr StreamWrapperr$s  # ?rr)rrr4rr3rrrr&Field 0 cannot be castri)r(r-rrr0r1r from_streamrr'rrQcastrzr{libArrowTypeErrorlist_r)r)rIwrapperrr[ good_schemas r*test_record_batch_reader_from_arrow_streamr3sk?? )"((*=>seL )"((*=>seL DD!Gxx$$T*H  ! ! - -h 7F ??  (( ( ! ! - -g 6F ??  (( ( ! ! - -gd1gnn - MF ??  (( ())RXXc288:678K  ! ! - -gk - JF ??  k : :: : rvv,,4L M  (( BIIrxxRXXbhhj5I'J&KL )  y !7 ((a67 y !C (($q'(BCC  77CCs%A/L!&L"(%L.L"L+.L7c tjtjdtjg}tjtj gdtjgdgtjtj gdtjgdgg}tj j|}tjj||}|j|j|k(sJtjtjdtjg}tjj||}|j|j|j|k(sJtjj||}tjtd5|jtjgdddtjj||}tjtjj d5|jtjtjdtj"tjgdddtjtjdtj$g}tj t'j(d d d gtj$}tj|gdgtj|gdgg}tj j|}tjj||}|j|j|k(sJy#1swYxYw#1swY(xYw) Nr4rrrr*zTarget schema's field namesrir+ir )r(r'rrr-rr0r1rr-rrQrzr{rr.r/r0date32datetimedate) schema_srcrI table_srcr[ schema_dstarrs rtest_record_batch_reader_castr=sBHHS"((*567J )"((*=>seL )"((*=>seL D%%d+I ! ! . .z4 @F ;;z " + + - :: :BHHS"((*567J  ! ! . .z4 @F ;;z " + + - 1K KK K ! ! . .z4 @F z)F G# BIIbM"# ! ! . .z4 @F rvv,,4L MF BIIrxxRXXbhhj-ABCDEF BHHS"))+678J ((HMM$2./biik BC OOSE# /#se1T UD%%d+I  ! ! . .z4 @F ;;z " + + - :: :## FFs.%O"*AO/"O,/O9cNtjtjdtjg}tjtj gdtjgdgg}tjtj gdtjgdgg}tj j|}tj j|}tjj||}tjtjdtjg}|j|j|j|k(sJtjj||}tjtjdtjdg}|j|j|j|k(sJtjj||}|j|}tjtjjd 5|jdddy#1swYyxYw) Nr4)rrNrrrF)nullablezCan't cast arrayri)r(r'rrr-rr0r1rrQr-rrzr{r.r|)r9data_with_nullsdata_without_nullstable_with_nullstable_without_nullsr[r; casted_readers r#test_record_batch_reader_cast_nullsrEsBHHS"((*567J ,RXXZ@A#OO )"((*=>seLxx,,_=((//0BC ! ! . .z? KFBHHS"((*567J ;;z " + + -1A1F1Fz1R RR R ! ! . .z;M NFBHHS"((*uEFGJ ;;z " + + -1D1I1I*1U UU U ! ! . .z? KFKK +M rvv**2D E! !!!s JJ$ctjdgdi}ddd}tj}tjj ||j |5}|j |ddd|j}tjj|5}|j|k(sJ dddy#1swYTxYw#1swYyxYw)Nr4rstests0.1.0)screatorsversionr  r(r?rrJrKr'r2rrPrb)tblmetarwrrs r+test_record_batch_file_writer_with_metadatarL$s ((C# $CX 6D "D szzD 9Q c]]_F   & !"QzzT!!!"" ""sC(CC Cctjdgdi}tj}tjj ||j 5}|j |ddd|j}tjj|5}|jJ dddy#1swYQxYw#1swYyxYw)Nr4rrG)rHrrJrrKs r1test_record_batch_file_writer_with_empty_metadatarN2s ((C# $C "D szz *a c]]_F   & !"Qzz!!!"" ""sB:!C:CCr])k collectionsrr7r rrzr.r threadingrnumpyr ImportErrorpyarrowr(pyarrow.tests.utilrrpandas.testingrpandasrrrEr`rerrkrmrorurwrrrmark parametrizerrrrr processesrrrrJr)rrrrrrrrrr r rrr$r.r;rLrTrVrXr\r`rgrrrtr{r~rrThreadrrrsocketsrrrrrrrrrrrrrrrrrrrr!r3r=rErLrNrrrr\sx$!  = 1 $$N> >6  *  8Z8 !!FLL FLL   2 2/ 21#* #  # .))  00$ . . ;2FFFFe,% :  :1FFFFe,% &  &/??(55.!$<.,bFFFFt,FFT2FFBFF,B,B,E,EFFFT,.FF,B,B,E,EG %!!.*D2H-V!IH#))!!! = $0 & &, ( 4"$))$B8*8<!!//##  "    h%78"A9"AJ$@@## ++== + +++ ## # # & &7$" O ' * Z.Cb";J!: " "i( B  s"W$ W2$W/.W/2W;:W;