gL i'dZddlZddlZddlmZmZddlZddl m Z ddl m Z mZejj!dZej$dZejj(GddZy) z test feather-format compat N)pa_version_under18p0pa_version_under19p0) read_feather to_featherz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrowc(eZdZdZdZdifdZdZdZdZdZ d Z d Z d Z d Z d ZdZej"j$ej"j&dZdZdZdZdZej"j3eddZy) TestFeatherctj||5tj5}t ||ddddddy#1swYxYw#1swYyxYw)Nmatch)pytestraisestm ensure_cleanr)selfdfexcerr_msgpaths b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_feather.pycheck_error_on_writez TestFeather.check_error_on_writesW]]3g . %" %d2t$ % % % % % % %s!A A A A AA ctjt5tj5}t ||ddddddy#1swYxYw#1swYyxYwN)rexternal_error_raised Exceptionrr)rrrs rcheck_external_error_on_writez)TestFeather.check_external_error_on_write!sW % %i 0 %" %d2t$ % % % % % % %s!A A A A AA"Nc ||j}tj5}t||fi|t |fi|}tj ||dddy#1swYyxYwr)copyrrrrassert_frame_equal)rrexpected write_kwargs read_kwargsrresults rcheck_round_tripzTestFeather.check_round_trip)sb  wwyH __  4$ r4 0< 0!$6+6F  ! !&( 3  4 4 4s 0A  A)cd}tjgdddtjdtjgdfD]}|j |t |y)Nz'feather only support IO with DataFramesr'foo20130101)pdSeries Timestampnparrayr ValueError)rmsgobjs r test_errorzTestFeather.test_error4sV7 IIi  LL $ HHY    T((z1NO LL,FFLL,! ((z14HIPT+  6S!D9 --gqA<++Aq!4;ww}}$$ 444779,0 () b84r5ctjtjdj ddt dj }|j|y)N r8r)aaacolumns)r,rTr/rWreshaperUrrrrs rtest_duplicate_columnsz"TestFeather.test_duplicate_columnsesD\\"))B-//15tE{ K P P R **2.r5c tjtdttddtdttddd}ddg}|j |||| y) Nr7r'r8xyz)col1col2col3col4rprr)r ri)r,rTrUrVr$)rrris rtest_read_columnszTestFeather.test_read_columnsksd \\U U1a[)U U1a[)   6" b2g;Hr5c|tjddgddgddgd}|dd g}|j||dd g y) Nr'r(xyTF)ABCryrxrh)r,rTr$rcs r!test_read_columns_different_orderz-TestFeather.test_read_columns_different_orderxsI \\Ac3ZtUmL MsCj> b(S#J?r5cXtjdgdi}|j|y)Na)r}r'@)r,rTrrks rtest_unsupported_otherz"TestFeather.test_unsupported_other~s# \\3 . / **2.r5ctjdtjdi}|j |d|j |dy)NrxiT) use_threadsF)r,rTr/rWr$rks rtest_rw_use_threadszTestFeather.test_rw_use_threadssD \\3 & 12 3 bd3 be4r5c tjdtjdj dztj t dtj tdDcgc]}d| c}j}tj|jt}tj||ycc}wN皙?xr8ABCDri-riindex)r,rTr/rWrjIndexrUrV reset_indexrround_trip_pathlibrrrrirr#s rtest_path_pathlibzTestFeather.test_path_pathlibs \\ "))C.((1 1HHT&\*((eBi8bH89  +- &&r}}lC b&)9/ Cc tjdtjdj dztj t dtj tdDcgc]}d| c}j}tj|jt}tj||ycc}wr)r,rTr/rWrjrrUrVrrround_trip_localpathrrrrs rtest_path_localpathzTestFeather.test_path_localpaths \\ "))C.((1 1HHT&\*((eBi8bH89  +- (( E b&)9rc `tjdtjdj dztj t dtj tdDcgc]}d| c}j}|j|dd i ycc}w) Nrrrrrrrversionr')r!) r,rTr/rWrjrrUrVrr$)rrrs rtest_passthrough_keywordsz%TestFeather.test_passthrough_keywordss \\ "))C.((1 1HHT&\*((eBi8bH89  +- b 1~>9s/ B+ct|}t|d5}|j|jt|j}dddt j |y#1swY xYw)Nrb)content)ropen serve_contentreadurlrr)r feather_file httpserverr fress rtest_http_pathzTestFeather.test_http_pathsf - , % /  $ $QVVX $ 6z~~.C / h, / /s 6A--A6c tjtjdtjdgdtjgddtjdtjdgdtjgd dgd gd gd gd d}t j 5}t||tjd|5t||}dddddd|dk(r_tjd}|r$tj|j}n9tj|j}ntj|}tjtjdtjdgdtjgddtjdtjdgdtjgd dtjddtj gdtjgd dtjgd |tjgd |d} |dk(rNddlm} tj| j&D cic]} | | j)| | d!c} } |rC| j&j+tj|tj| _t j,| y#1swY=xYw#1swYBxYwcc} w)Nr'r)Int64r<r&?@Float64)rr~r)TFNr>)r}bc)r}rN)r}rrderghzmode.string_storage dtype_backendrTFbooleanr)ArrowExtensionArray) from_pandasna_value)r,rTr-r/rYrrroption_contextrr importorskip ArrowDtype large_stringrD StringDtypeNA pandas.arraysrrir0rXr) rstring_storagerusing_infer_stringrrr#pa string_dtyper rcols rtest_read_feather_dtype_backendz+TestFeather.test_read_feather_dtype_backendsm\\YY2661~W=YYy8YYRVVS1CYYi@(($%   __  I$ r4 ""#8.I I%d-H I I I %$$Y/B!!}}R__->? !}}RYY[9 >>.9L<<YY2661~W=YYy8YYRVVS1CYYi@YYeRUU39EYY2)DYYlCYY/|D    I % 9|| (//,RXXhsmQUX-VWWH '//66~? H  fh/O I I I I>s*5#L.L!&L.$L;!L+ &L..L8ctjdgditjgdd}|j|y)Nr}r&)r)r8test)name)r)r,rTrr$rks rtest_int_columns_and_indexz&TestFeather.test_int_columns_and_indexs0 \\3 *"((962R S b!r5c Ld}tjdttddi}t j d5}|j |tjt|5t|dddddddy#1swYxYw#1swYyxYw) NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rEr'r8z tmp.featherr numpyr) r,rTrUrVrrrr rr1r)rr2rrs rtest_invalid_dtype_backendz&TestFeather.test_invalid_dtype_backends % \\5$uQ{"34 5 __] + :t MM$ z5 :T9 : : : : : : :s$-B/B=BB BB#c>|dz }tjdddgi}|j|tjdd5t |}dddtj t j}tjdddgitj t j }tjdddgi|tjdgtr|stn|  }tj|y#1swYxYw) Nztest_string_inference.pr}rvrw)datafuture.infer_stringTrrr=r<)rr=ri) r,rTrrrrr/rYrrobjectrr)rtmp_pathrrrr#r=r s rtest_string_inferencez!TestFeather.test_string_inferences33 \\c3Z0 1 d   4d ; (!$'F (/<<Sz"".."&&*I <<Sz"HH'0B    fh/! ( (s  DDznot supported before 18.0)reasoncddl}ddlm}|dz }|jd|jgd|j i}|j ||t jdd5t|}t jdgdit jtj }dddtjy#1swY xYw) Nr)featherzstring_view.parquetr})NrrrTrr)rrtabler0 string_view write_featherr,rrrTrr/rYrr)rrrrrrr#r s r&test_string_inference_string_view_typez2TestFeather.test_string_inference_string_view_types #//#rxx(8"..:JKLMeT*   4d ; !$'F||+,BNNBFF4SH  fh/   s +A CC)__name__ __module__ __qualname__rrr$r4rdrlrtr{rrrrrr marknetwork single_cpurrrrrskipifrrr5rr r s%%-1r 4 <$5L/ I@ / 5 **? [[ [[--:0x" :0. [[,5PQ0R0r5r )__doc__rr/r pandas.compat.pyarrowrrpandasr,pandas._testing_testingrpandas.io.feather_formatrrrfilterwarnings pytestmarkrrrr rr5rrso"  = [[ ' 'C V#F0F0F0r5