K is<" ddlZddlZddlZddlmZddlZddlZddl m cm Z ejdZejj Zej$ddZdZdZdZdRd Zejj1d ej2d fej4d fej6d fej8dfej:dfej<dfej>dfej@dfejBdfejDdfejFdfejHdfejJdfejLddfejLddfejNddfejNddfejPdd fejPdd!fejPdd"fejPdd#fejPdd$%d&fejPdd'%d(fejRd)fejTd*fejVd+d,d-fejXd.fejZd/fejZd0d1fgejj1d2d3d4gd5Z.ejj1d6ej4gd7d8fej>e/e0d9d:fej@e/e0d9d;fej:e/e0d9dfejJe/e0d9d?fejPde/e0d9d@fejPde/e0d9dAfejPde/e0d9dBfejPde/e0d9dCfejRe/e0d9dDfejTe/e0d9dEfg dFZ1dGZ2ejj1dHej4gd7d8d fej>e/e0d9d:dfej@e/e0d9d;dfejBe/e0d9dIdfejDe/e0d9dJdfej6e/e0d9dKd fej8e/e0d9dLdfej:e/e0d9ddfejJe/e0d9d?dfejPde/e0d9d@d fejPde/e0d9dAd!fejPde/e0d9dBd"fejPde/e0d9dCd#fejRe/e0d9dDd)fejTe/e0d9dEd*fgdMZ3dNZ4ejjkdOPdQZ6y)SNjpypesession)scopec  tjd}tjj |dd}tj|}|jjdddij}tjj |dd d d |d }tjd |}i}d|d<tjtjd|zfi|tj!dj"j$j&j)t*j,S#t$rGtjj tjj t ddd}YrwxYw)NARROW_SOURCE_DIRz..javazpom.xmlz POM:versionPOMz!http://maven.apache.org/POM/4.0.0) namespacestoolstargetz arrow-tools-z-jar-with-dependencies.jarARROW_TOOLS_JARFconvertStringsz-Djava.class.path=org)osenvironKeyErrorpathjoindirname__file__ETparsegetrootfindtextgetenvrstartJVMgetDefaultJVMPathJPackageapachearrowmemory RootAllocatorsysmaxsize) arrow_dirpom_pathtreeversionjar_pathkwargss \/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pyarrow/tests/test_jvm.pyroot_allocatorr- sLNJJ12 ww||Ivy9H 88H Dlln!! 6 "  4  ww||67H wi9:>% ' ' - - 4 4 B B3;; OO% NGGLL!:D$M NsD88A FFc@|jd}tdD]}|j|d|z |j}t j |}|j dk(sJ|j|dzk(sJ~|j|k(sJy)Ns)bufferrangesetByterefCntpa_jvm jvm_buffer to_pybytes)r-r6i orig_refcntbufs r,test_jvm_bufferr;:s&&q)J 1X%1a!e$%##%K   J 'C >> B BB B    +/ 11 1    + -- -cddl}ddlm}|jd}|j t j |5tj|dddy#1swYyxYw)Nr)IllegalArgumentExceptionr/) jpype.imports java.langr>r1releasepytestraisesr5r6)r-rr>r6s r,test_jvm_buffer_releasedrDNsT2&&q)J / 0&*%&&&s A  A)ctjd}tjd}|j||S)Nz+com.fasterxml.jackson.databind.ObjectMapperz(org.apache.arrow.vector.types.pojo.Field)rJClass readValue)jvm_specom pojo_Fields r, _jvm_fieldrKYs4 C D FBHIJ <<* --r<cBt|}tjd}tjd}|j||rLtjd}|j D]\}}|j |||||S||S)Nz)org.apache.arrow.vector.types.pojo.Schemajava.util.ArrayListzjava.util.HashMap)rKrrFadditemsput)rHmetadatafield schema_clsfieldsdctkvs r, _jvm_schemarX_s x EIJJ \\/ 0 2F JJull./1NN$ DAq GGAqM &#&&&!!r<zpa_type,jvm_specz{"name":"null"}z{"name":"bool"}z+{"name":"int","bitWidth":8,"isSigned":true}z,{"name":"int","bitWidth":16,"isSigned":true}z,{"name":"int","bitWidth":32,"isSigned":true}z,{"name":"int","bitWidth":64,"isSigned":true}z,{"name":"int","bitWidth":8,"isSigned":false}z-{"name":"int","bitWidth":16,"isSigned":false}z-{"name":"int","bitWidth":32,"isSigned":false}z-{"name":"int","bitWidth":64,"isSigned":false}z+{"name":"floatingpoint","precision":"HALF"}z-{"name":"floatingpoint","precision":"SINGLE"}z-{"name":"floatingpoint","precision":"DOUBLE"}sz-{"name":"time","unit":"SECOND","bitWidth":32}msz2{"name":"time","unit":"MILLISECOND","bitWidth":32}usz2{"name":"time","unit":"MICROSECOND","bitWidth":64}nsz1{"name":"time","unit":"NANOSECOND","bitWidth":64}z4{"name":"timestamp","unit":"SECOND","timezone":null}z9{"name":"timestamp","unit":"MILLISECOND","timezone":null}z9{"name":"timestamp","unit":"MICROSECOND","timezone":null}z8{"name":"timestamp","unit":"NANOSECOND","timezone":null}UTC)tzz9{"name":"timestamp","unit":"NANOSECOND","timezone":"UTC"}z Europe/PariszB{"name":"timestamp","unit":"NANOSECOND","timezone":"Europe/Paris"}z{"name":"date","unit":"DAY"}z${"name":"date","unit":"MILLISECOND"}z+{"name":"decimal","precision":19,"scale":4}z{"name":"utf8"}z{"name":"binary"} z){"name":"fixedsizebinary","byteWidth":10}nullableTFc(|tjk(r|syd|tj|gd}t tj |}t j|}tjd||}||k(sJttj |}t j|}|tj|gk(sJttj |ddi}t j|}|tj|gddik(sJdddg|d <ttj |}t j|}|jddi}|tj|gk(sJy) N field_namenamerbtypechildren)rbmetadataz field metaz field data)keyvaluerQ) panulljsonloadsrKdumpsr5rRrXschema with_metadata) r-pa_typerHrbspec jvm_fieldresultexpected_field jvm_schemas r,test_jvm_typesrzwsdd"'')H 8$  D4::d+,I \\) $FXXlGhGN ^ ## #TZZ-.J ]]: &F RYY/0 00 0TZZ-/?@J ]]: &F RYY/&&1AB BB B!-|DEDTZZ-.J ]]: &F#11 |$&N RYY/0 00 0r<zpa_type,py_data,jvm_type)TFTT BitVector UInt1Vector UInt2Vector IntVector BigIntVector Float4Vector Float8VectorTimeStampSecVectorTimeStampMilliVectorTimeStampMicroVectorTimeStampNanoVector DateDayVectorDateMilliVectorcd|}tj|d|}|jt|t |D]0\}}|dvrtj |}|j ||2|jt|tj||}tj|} |j| sJy)Norg.apache.arrow.vector.vectorr}r~rg) rrF allocateNewlen enumerateJIntsetSafe setValueCountrmarrayr5equals) r-rtpy_datajvm_typecls jvm_vectorr8valpy_array jvm_arrays r,test_jvm_arrayrs. %XJ /Cc"8^Q   >>RXXZ '' 'r<z!pa_type,py_data,jvm_type,jvm_spec UInt4Vector UInt8Vector TinyIntVectorSmallIntVectorcNd|}tj|d|}|jt|t |D]0\}}|dvrtj |}|j ||2|jt|ddtj|gd} ttj| } tjd} | j| tjd} | j|tjd} | | | t|} tjjtj || gd g}t#j$| }|j'|sJy) NrrrrdFrerMz(org.apache.arrow.vector.VectorSchemaRootrcol)rrFrrrrrrrorprKrqrNrm RecordBatch from_arraysrr5 record_batchr)r-rtrrrHrrr8rrurv jvm_fields jvm_vectorsjvm_vsrpy_record_batchjvm_record_batchs r,test_jvm_record_batchrsn\ %XJ /Cc"8^8D1f%  Q'( xx299;/H Z(I ??9 %% %r<)N)7rorpyarrowrm pyarrow.jvmjvmr5rBr$xml.etree.ElementTreeetree ElementTreer importorskiprmark processes pytestmarkfixturer-r;rDrKrX parametrizernbool_int8int16rint64uint8uint16uint32uint64float16float32float64time32time64 timestampdate32date64 decimal128rbinaryrzlistr2rrrrxfailrr<r,rsM$  "" G$ [[ " " i P!P2.(&. "0+ RWWY!" RXXZ"# RWWY=> RXXZ?@ RXXZ?@ RXXZ?@ RXXZ?@RYY[ABRYY[ABRYY[ABRZZ\@ARZZ\BCRZZ\BCRYYs^DERYYt_JKRYYt_JKRYYt_IJR\\#R\\$R\\$R\\$R\\$5!$R\\$>*-9:RYY[01RYY[89R]]2qHIRYY[#$RYY[%&RYYr]?@G/./`dE]314a/b1H3 RXXZ*K8 RXXZeCj!=1RYY[$uSz"M2 RXXZeCj!;/ RXXZeCj!>2RZZ\4c #^4RZZ\4c #^4R\\#U3Z(*>?R\\$eCj)+ABR\\$eCj)+ABR\\$eCj)+@A RYY[$uSz"O4RYY[$uSz"$56%6*&+*&$(< RXXZ*K9JK  U3Z6    U3Z7    U3Z7    U3Z7    U3Z5    U3Z6    U3Z6    U3Z6    U3Z7    U3Z7   S U3Z>   T U3ZC   T U3ZC   T U3ZB    U3Z&    U3Z. Gj?jV$4WjV$4N$12&2&r<