K i^ddlZ ddlZddlZddlmZdZdZ d dZ d dZ dZ dZ d Zdd Zd Zdd Zy#e$rdZY8wxYw)N)utilc ddlm}ddlm}|j |rt j j|}|j||fi||S)Nr) _pandas_api) pyarrow.parquetparquetpyarrow.pandas_compatr is_data_framepaTable from_pandas write_table)tablepathkwargspqrs b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pyarrow/tests/parquet/common.py _write_tablersD 1  '$$U+BNN5$)&) LcZddlm}|j|i|}|jd|S)NrT)full)rr read_tablevalidate)argsrrrs r _read_tabler)s- BMM4 *6 *E NNN Lrc|xsi}|xsi}tj}t||fi|tj|j }t |fi|S)N)r BufferOutputStreamr BufferReadergetvaluer)rread_table_kwargswrite_table_kwargswriterreaders r_roundtrip_tabler#1s\)/R+1r  " " $F5"45 __V__. /F v 3!2 33rc ||}|xsi}t|||}|j|jk(sJ|j|sJt|||}|j|jk(sJ|j|sJy)N)rr )r#schemaequals)rexpectedrr results r_check_roundtripr)<s)/Re7H1CEF ==HOO ++ + == "" " f8I1CEF ==HOO ++ + == "" "rcztjj|}t||}|j S)N)r )r r r r# to_pandas)df write_kwargsrr(s r_roundtrip_pandas_dataframer.Ns4 HH  $E  ,0F    rctjd}tj|}tjjt |j |j t |j|j||S)Nint_sizedtype)npiinforandomrandintmaxmin)r2r3platform_int_infor5s r_random_integersr;Ush( HHUOE 99  S,=,A,AB ,=,A,AB"&e  55rcVtjtj||S)Nr3)r arrayr4aranger1s r_range_integersr@^s 88BIId%0 11rctddl}tjj||j t |tj t |tjt |tjt |tjt |tjt |tjt |tjt |tjtjj|jtj tj"|tj$tjj|dkDt'|Dcgc]}t)j*dc}dg|zdg|zd}|Scc}w)Nrr= )uint8uint16uint32uint64int8int16int32int64float32float64boolstringsall_noneall_none_category)pandasr4r6seed DataFramer;rCrDrErFrGrHrIrJrandnastyperKr?rLrangerrands)r2rRpdir,s r_test_dataframerZbsIINN4 !$1"43"43"43 rww/!$1!$1!$199??4(// ;99T4 %),1$K8qDJJrN8FTM"Vd] B& I9sF5cddlm}t|tjr|}ntjj |}t j}t||dd|jd|j|S)NrSNAPPYz2.6) compressionversion) rr isinstancer r r ioBytesIOrseek ParquetFile) table_or_dfra_tablebufs rmake_sample_filerg|s_ +rxx(((&&{3 **,C#8UCHHQK >># rc 8ddl}tjj|idtj|tj dtj|tj dtj|tjdtj|tjdtj|tjdtj|tjd tj|tjd tj|tjd tj|tjd tj|tjd tj|tjdtjj|dkDdtjd|ddtjd|ddtjd|ddtjd|dd|j!t#|Dcgc] }t%|c}dg|zdgt#|dz Dcgc] }t%|c}zdgzdg|zdgdzt#|dz Dcgc] }dg|dzz c}zd}|r|dj'd|d <|j)|Scc}wcc}wcc}w)!NrrCr=rDrErFrGrHrIrJfloat16rKrLrM datetime_msz2016-01-01T00:00:00.001zdatetime64[ms] datetime_usz2016-01-01T00:00:00.000001zdatetime64[us] datetime_nsz2016-01-01T00:00:00.000000001zdatetime64[ns] timedeltaztimedelta64[s]str) empty_strstr_with_nullsnull null_listcategory str_category)rQr4r6rRr?rCrDrErFrHrIrJrirKrLrTSeriesrVrnrUrS)r2rR categoricalrXxarrayss ralltypes_sampler|sIINN44rxx0"))D 2 "))D 2 "))D 2   $bhh/  4rxx0  4rxx0 4rxx0 299T4 299T4 299T4  %) ryy!:D'79 ryy!=t'79" ryy!@$'79#& RYYq$.>?'( ryy%+6Q#a&67)*TD[&E$(O#DqCF#DDvM VaZU4!8_"MD6QU#3"MM1F4!'!5!5j!A~ << 7#D"Ms'L L L)NN)'r)r}rF)r`numpyr4 ImportErrorpyarrowr pyarrow.testsrrrr#r)r.r;r@rZrgr|rrrsk$  /3(,4#$524   k Bs9AA