gL i)] hdZddlZddlZddlmZddlmZmZmZddl Z ddl Z ddl m Z ddl Z ddlZddlZddlZddlmZddlmZddlmcmZddlZddlmZddlmcm Z!ejDjGdZ$Gd d Z%e&e%e gZ' dd l(m)Z*e'jWe*e jZj]e jZj_e0Z1Gd d Z2ejfdZ4GddZ5dZ6ejDjodddgdZ8dZ9ejDjodeddfeddfgdZ:ejDjodgdejDjodddgdZ;d Zd#Z?ejDjod$ejejejejejejejejejg d%ZIy#e,$rYwxYw)&z0 Tests for the pandas.io.common functionalities N)partial)BytesIOStringIOUnsupportedOperation)Path)is_platform_windows)pa_version_under19p0z=ignore:Passing a BlockManager to DataFrame:DeprecationWarningceZdZdZddZdZy) CustomFSPathz%For testing fspath on unknown objectsNc||_yNpath)selfrs a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_common.py__init__zCustomFSPath.__init__&s  c|jSr rrs r __fspath__zCustomFSPath.__fspath__)s yyr)returnN)__name__ __module__ __qualname____doc__rrrrr r #s/rr )localceZdZdZdZdZdZejddZ dZ dZ e jjd ed Ze jjd eeegd Zd Zd ZdZdZe jjdej4dedfej8dedfej:dedfej<dedfej@dedfejBdedfejDdedfejFdedfejHdedfg dZ%e jjdejLjNdedfejLjPded fejLjRdedfejLjTdedfejLjVded!fejLjXdedfejLjZdedfejLj\dedfgd"Z/e jjdej4dedfej`dedfej8dedfej:dedfej<dedfej@dedfejBdedfejDdedfejFdedfejHdedfg d#Z1e jjd$ej4dd%fej`dd%fej8dd&fej:dd'fej<dd(fe jdej@dd)e jjgd*d+,-ejBdd.fejDdd/fejFdd0fejHdd1fg d2Z4e jjd3d4idfd5d6d7id7fd8idfd9idfd:idfd;idfdejjd?idfgd@Z6dAZ7yB)CTestCommonIOCapabilitiesziindex,A,B,C,D foo,2,3,4,5 bar,7,8,9,10 baz,12,13,14,15 qux,12,13,14,15 foo2,12,13,14,15 bar2,12,13,14,15 cd}tj|}||k7sJtjj |sJtjj ||k(sJy)Nz ~/sometest)icom _expand_userosrisabs expanduserrfilename expanded_names rtest_expand_userz)TestCommonIOCapabilities.test_expand_userEsX))(3 (((ww}}]+++ww!!(+}<<eU!;;;;rzpy.pathctjjdd}tjj|}t |}t j ||k(sJy)Nr.r/)r#rr1abspath LocalPathr!r0)rrabs_pathlpaths rtest_stringify_path_localpathz6TestCommonIOCapabilities.test_stringify_path_localpathZsJww||E5)77??4($""5)X555rcRtd}tj|}|dk(sJy)N foo/bar.csv)r r!r0)rpresults rtest_stringify_path_fspathz3TestCommonIOCapabilities.test_stringify_path_fspathas*  '$$Q'&&&rc tjd}tj5}|j d|d5}|t j |k(sJ ddddddy#1swYxYw#1swYyxYw)Nfsspeczfile://wbmode)pytest importorskiptm ensure_cleanopenr!r0)rrAr fsspec_objs r!test_stringify_file_and_path_likez:TestCommonIOCapabilities.test_stringify_file_and_path_likefs$$X. __  E$wtf-D9 EZ!T%8%8%DDDD E E E E E E Es#A:A.A:.A7 3A::B path_typec`|\}}|d|z}tj|d}||k(sJy)Nr<infer) compression)r!infer_compression)rcompression_formatrL extensionexpectedrrOs r test_infer_compression_from_pathz9TestCommonIOCapabilities.test_infer_compression_from_pathms;0 823,,TwG h&&&rctjtj5}|dt|jzdz}t j |d5}t|jjjsJtjj||jjk(sJ ddddddy#1swYxYw#1swYyxYw)N)dirz~/z /sometestw) tempfileTemporaryDirectoryrhomenamer! get_handlehandle is_absoluter#rr%)rrLtmpr'handless rtest_get_handle_with_pathz2TestCommonIOCapabilities.test_get_handle_with_pathts ( (TYY[ 9 KS S !6!DEH3/ K7GNN//0<<>>>ww))(3w~~7J7JJJJ K K K K K K Ks$8C'!A(C C'C$ C''C0ct5}tj|d5}|j|k(sJ ddd|jrJ dddjsJy#1swY/xYw#1swY$xYw)Nr)rr!r\r]closed)r input_bufferr`s rtest_get_handle_with_bufferz4TestCommonIOCapabilities.test_get_handle_with_buffer}sx Z +<s3 6w~~555 6#** *** +"""" 6 6 + +s!A/A#A/#A, (A//A8cd}tjt|dd5}d}d} |jj |}t ||ksJt ||kr.t |jj dk(sJ||z }n||z }m||j dk(sJ dddy#1swYyxYw) N&a,b,c 1,2,3 ©,®,® Look,a snake,🐍rbFis_textrrutf-8)r!r\rr]readlenencode)rdatar`r> chunksizechunks r)test_bytesiowrapper_returns_correct_byteszBTestCommonIOCapabilities.test_bytesiowrapper_returns_correct_bytess__Xd^T5 A 2WFI++I65zY...u: )w~~2245:::eOF%T[[11 11 2 2 2s B B77Cctjd}d}tjgdgdgdd}t |}t j |dd 5}|j|jj}tr|jd }tj|||jrJ dddy#1swYyxYw) Nz pyarrow.csvrh)1©Look)2®za snake)3rzu🐍abcriFrjobject)rErFpd DataFramerr!r\read_csvr] to_pandasr astyperGassert_frame_equalrd)rpa_csvrqrSsr`dfs rtest_get_handle_pyarrow_compatz7TestCommonIOCapabilities.test_get_handle_pyarrow_compats$$]3<<%,BI\ ]  TN __Qe 4 0::rSitfirsts r test_iteratorz&TestCommonIOCapabilities.test_iterators [[$**- ; :vYYvD9F :;;x 34 fh/[[$**- ; DrHE  ! !%s); <  ! !"))B-qr1B C D D  : :  D DsD"3A&D."D+.D7z#reader, module, error_class, fn_extr#csvtxtxlrdxlsxpyarrowfeathertablesh5dtasas7bdatjsonpicklecltj|tjj t dd|z}d|d}d|d}d}d} d |d |d} d |d} d |d} d |} tj |d|d|d|d| d| d| d| d| d5||dddy#1swYyxYw)Nrqdoes_not_exist.File (b')?.+does_not_exist\.'? does not exist:\[Errno 2\] No such file or directory: '.+does_not_exist\.'zExpected object or value7path_or_buf needs to be a string file path or file-like#\[Errno 2\] File .+does_not_exist\.$ does not exist: '.+does_not_exist\.<\[Errno 2\] 没有那个文件或目录: '.+does_not_exist\.?\[Errno 2\] File o directory non esistente: '.+does_not_exist\.+Failed to open local file.+does_not_exist\.(|)match)rErFr#rr1HEREraises)rrmodule error_classfn_extrmsg1msg2msg3msg4msg5msg6msg7msg8s rtest_read_non_existentz/TestCommonIOCapabilities.test_read_non_existents F#ww||D&*;f*DE.vh6GHLVHTUV)H26(;##)(! - OvhVWXNvhVW X >fXF ]] tfAdV1TF!D64&$qavQO   4L    s  B**B3z#method, module, error_class, fn_exthtmlparquetc(tj|tjgdgdgdd}tj j tddd|z}tj|d 5|||dddy#1swYyxYw) N)r)rr)rrrlr|rqmissing_folderrz@Cannot save file into a non-existent directory: .*missing_folderr) rErFrrr#rr1rr)rmethodrrr dummy_framers r#test_write_missing_parent_directoryzzJTestCommonIOCapabilities.test_read_expands_user_home_dir..sBGGLLPQfXF ]] tfAdV1TF!D64&$qavQO   4L    s + B==Czreader, module, path)iorqrziris.csv)rrq fixed_widthzfixed_width_format.txt)rrqexcelz test1.xlsx)rrqrzfeather-0_3_1.feather)rrq legacy_hdfzdatetimetz_object.h5zTODO(infer_string)F)reasonstrict)marks)rrqstatazstata10_115.dta)rsasrqztest1.sas7bdat)rrrqztsframe_v012.json)rrqrzcategorical.0.25.0.picklectj|||}t|}||}||}|jdrt j ||yt j ||y)Nz.pickle)rErFr endswithrGassert_categorical_equalr)rrrrdatapathmypathr>rSs rtest_read_fspath_allz-TestCommonIOCapabilities.test_read_fspath_all'sdD F#d#$< == #  ' ' 9  ! !&( 3rz"writer_name, writer_kwargs, moduleto_csvto_excelengineopenpyxl to_featherto_htmlto_jsonto_latex to_pickleto_stata time_stampz2019-01-01 00:00c |dvrtjdtjd}tjd}t j dddgi}|5}|5}tj|t |} t||} | |fi|| | fi|t|d5} t|d5} |d k(rCt j| fi|} t j| fi|}tj| |n'| j} | j}| |k(sJddddddddddddy#1swY"xYw#1swY&xYw#1swY*xYw#1swYyxYw) N)rjinja2stringfspathArrrir) rErFrGrHrrr getattrrI read_excelrrn)r writer_name writer_kwargsrp1p2rrrrwriterf_strf_pathr>rSs rtest_write_fspath_allz.TestCommonIOCapabilities.test_write_fspath_allVsg , &    ) __X & __X & \\3A- (  .62 .    '!&)FR-F 6 +] + 6 +] +fd# .ud64.@ .F*, ]]5BMBF!}}VE}EH))&(;"ZZ\F%{{}H!X--- . . . . . . . . . . . . .sVE/"A E#- E:A0E *E2E#:E/ E EE E##E, (E//E8ctjdtjdddgi}t j d}t j d}|5}|5}t |}|j|d|j|dtj|d}tj|d}ddddddt jy#1swY(xYw#1swY,xYw) Nrrrrrrr/)key) rErFrrrGrHr to_hdfread_hdfr) rrrrrrrr>rSs rtest_write_fspath_hdf5z/TestCommonIOCapabilities.test_write_fspath_hdf5}s H% \\3A- ( __X & __X &  662 6!&)F IIf%I ( IIf%I ([[U3F{{6u5H  6 6 fh/ 6 6 6 6s%C1A C%>C1%C. *C11C:N)8rrrrr)r+r4td skip_if_nor:r?rKrEmark parametrize path_typesrTstrr rrarfrtrrrrFileNotFoundErrorread_fwfr read_featherOSErrorr read_stataread_sas read_json read_picklerrrrrr to_parquetrrrr read_tablerparamxfailr to_datetimerrrrrrr;s E==< R]]966 ' E [[[*5'6'  [[[3 d*CDKEK#2. & D [[- [[$ 15 9 [[$ 15 9 ]]F$5v > __i) < [[($5t < ]]D"3U ; [[$ 1: > \\4!2F ; ^^T#4h ?   0 [[- \\ $ 7 \\ ! !4& 9 \\ " "FGV < \\ $ $i) D \\ $ $i) D \\ " "D'5 9 \\ ! !4& 9 \\ # #T7H =   &  & [[- [[$ 15 9 ]]D"3U ; [[$ 15 9 ]]F$5v > __i) < [[($5t < ]]D"3U ; [[$ 1: > \\4!2F ; ^^T#4h ? 8 [[ [[$ A B ]]D"C D G  ]]F$I JB  FLL Dkk''/CE'R  ]]D"L M [[$ G H \\4!L ME 1  B 4C B 4 [[, r4 (J/ < 2y ) D ! D ! T " "d # ,7I(JKT R  . .40rrc|ddddS)Nrrqrz test_mmap.csvr)rs r mmap_filers D&% 99rceZdZdZdZdZdZejjdddgejjdd d gd Z y ) TestMMapWrapperctd}d|_tr d}t}nd}tj }t j||5tj|ddddt|d5} dddd }t jt|5tjddddy#1swY]xYw#1swYRxYw#1swYyxYw) NzI am not a filecy)Nrrrrrz;TestMMapWrapper.test_constructor_bad_file..srzThe parameter is incorrectz [Errno 22]rTrmencodingzI/O operation on closed file) rfilenorr mmaperrorrErr!_maybe_memory_maprI ValueError)rrnon_filemsgerrtargets rtest_constructor_bad_filez)TestMMapWrapper.test_constructor_bad_files-.$  .CCC**C ]]3c * 3  " "8T 2 3)g . &  - ]]:S 1 1  " "64 0 1 1 3 3   1 1s$C<C#CC CC$ct|d5}|j}tj|ddd5}|j}t |j j tjsJ|D]0}t|}|j|jk(r0Jtjtd5t|dddddddddy#1swYxYw#1swYxYw#1swYyxYw)NrmrrcT)rk memory_mapz^$r) rI readlinesr!r\r] isinstancebufferrrstriprEr StopIteration)rrr%lineswrapperswrapperline next_lines r test_nextzTestMMapWrapper.test_nexts )g . "&$$&ETd ""//!'.."7"7CCC!=D $W I$??, <<<=]]=>"M" " " """ " " " "sA*DA.C6'C6 C*C6D*C3 /C66C? ;DD c tj5}tjdt j dj dztjtdtjtdDcgc]}d| c}}|j|tjtd 5tj|d ddddddycc}w#1swYxYw#1swYyxYw) N皙?xrABCDr8i-columnsindexzUnknown enginerpyt)r)rGrHrrnparangereshapeIndexlistrangerrErr!rrrirs rtest_unknown_enginez#TestMMapWrapper.test_unknown_engines __  0$biin,,W55f.hh%) [[^eT];O<?OrrctjdsJtjdsJtjdrJtjdrJtjdrJtjdrJtjdrJtjdrJtjd sJy) Nzgcs://pandas/somethingelse.comzgs://pandas/somethingelse.comzhttp://pandas/somethingelse.comzrandom:pandas/somethingelse.comz /local/pathzrelative/local/pathzthis is not fsspec://urlz({'url': 'gs://pandas/somethingelse.com'}z#RFC-3986+compliant.spec://something)r! is_fsspec_urlrrrtest_is_fsspec_urlrVs   > ?? ?   = >> >!!"CDD D!!"CDD D!!-00 0!!"788 8!!"<== =!!"LMM M   C DD Drformatrrc tjdtjdj dztj t dtj tdDcgc]}d| c}}tj5}t|dd 5}t|d ||dddt|d 5}|d k(rtj|d}ntj|}ddddddtj|ycc}w#1swYuxYw#1swY9xYw#1swY=xYw)Nr5r6r7r9r8r:r;rWrm)rDrto_rrrrI)rrr?r@rArBrCrDrGrHrIrrr r)rWrFrSrr]rs rtest_codecs_encodingrZs|| biin$$W--f&hh%)4Q"QC45H  *d $S7 3 6v -GHF8n -f 5 6 $ ) *V[[15\\&)  **(B'5 6 6 * ***sB/ D/E *D4E 3EE 4D= 9E E E  Ec ,tjdtjdj dztj t dtj tdDcgc]}d| c}}tj5}t|d5}tjd |5}|j|ddddddt|d 5}tjd |5}tj|d }dddddddddtj |ycc}w#1swYxYw#1swYxYw#1swYMxYw#1swYQxYw#1swYUxYw) Nr5r6r7r9r8r:r;rBrmrirrI)rrr?r@rArBrCrDrGrHrIcodecs getwriterr getreaderrr)rFrSrr]encodedrs rtest_codecs_get_writer_readerr`sN|| biin$$W--f&hh%)4Q"QC45H  7d $  )*!!'*62 )g( ) )$  7*!!'*62 7g[[A6 7 7 7(B'5 ) ) ) ) 7 7 7 7 77sr/ E F (E&EE&F 2E>E2&E>.F E# E&&E/ +F 2E; 7E>>F F  Fzio_class,mode,msgtz*a bytes-like object is required, not 'str'r~z%string argument expected, got 'bytes'c tjdtjdj dztj t dtj tdDcgc]}d| c}}|5}tjt|5|j|d | ddddddycc}w#1swYxYw#1swYyxYw) Nr5r6r7r9r8r:r;rrWrC) rrr?r@rArBrCrDrEr TypeErrorr)io_classrDr#rFrSr+s rtest_explicit_encodingre(s|| biin$$W--f&hh%)4Q"QC45H 5v ]]9C 0 5 OOF1TFO 4 5555 5 555s*/ CC#*CC#C C##C,encoding_errors)Nrreplacecd}d}|dk(r0d|zdz|dzzdz|z}ttjd}n2d |dzzd z|zd z|zd z}ttjd }t j 5}t |}|j||dk7r/tjt|5|||dddnP|||}|j|} tj| | gi| dzg} t j|| dddy#1swYxYw#1swYyxYw)Nz'utf-8' codec can't decode byter, rrrIs{"s": {"s":"s"}}r=)orientrgr)rferrors)r=)rrrr rGrHr write_bytesrErUnicodeDecodeErrordecoderr) rfrWr# bad_encodingcontentrrfilerdecodedrSs rtest_encoding_errorsrv=sg ,CL %- q0@@4G,V2 Q            g6   0dDz ! i '1= >t_= > >o>B")))AG||Wwi$81 NH  ! !"h / 0 0  > > 0 0s%=D6= D*AD6*D3 /D66D?ctj5}tjtd5t j |ddddddddy#1swYxYw#1swYyxYw)Nzunknown error handler namerrWbadrm)rGrHrEr LookupErrorr!r\rs rtest_bad_encdoing_errorsrz`s\  5d ]];.J K 5 OOD#e 4 555 5 555s"A'A A'A$ A''A0ctjtd5}tjd|j t j k(sJ dddy#1swYyxYw)Nz \[Errno 2\]r doesnt_exist)rErrrrerrnoENOENT)r$s rtest_errno_attributergsJ ( @)C N#yyELL((()))s 5AA$ctjtd5t5}t j |ddddddddy#1swYxYw#1swYyxYw)NrrriT)r()rErrrr!r\)r+s rtest_fail_mmaprnsW +8 <; Y ;& OOFDT : ;;; ; ;;;s" AAAA AA&cLGdd}tjtd5t5}t j |d5}|j j|dddddddddy#1swYxYw#1swYxYw#1swYyxYw)NceZdZdZy)&test_close_on_error..TestErrorctd)Ntest)r rs rclosez,test_close_on_error..TestError.closews &/ !rN)rrrrrrr TestErrorrvs "rrrrri)rErr rr!r\created_handlesappend)rr+r`s rtest_close_on_errorrts"" wf -< Y <&. <'''..y{; < <<< < < < <<rs6     -6)) [[ ' 'C < &  *i  wwrwwx01T0T0n ::[O[O| EE6?3(4($(" #CD 3?@ 5 5*,GHE6?304I0B5); <            $ $u  s H((H10H1