gL iddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZmZmZmZddlmZddlmZej2j5dZej8dZej2j<ej2j?dgd d Z d e!d e!d e"fdZ#ej2j?dddgdZ$dZ%ejLddZ'y))BytesION)pa_version_under17p0) DataFrameIndex date_rangeread_csv read_excel read_json read_parquet)_test_decoratorsz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningctjdtjd}td_Gfdd|j}|j d|dS) z"Emulate GCS using a binary buffer.gcsfsfsspeccy)NTr^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_gcs.pyzgcs_buffer..$src(eZdZefdZdZy)%gcs_buffer..MockGCSFileSystemc*jdS)Nr)seek)argskwargs gcs_buffers ropenz*gcs_buffer..MockGCSFileSystem.open's OOA  rc|ddgS)Nfile)nametyper)selfpathrs rlsz(gcs_buffer..MockGCSFileSystem.ls,s!623 3rN)__name__ __module__ __qualname__ staticmethodrr#)rsrMockGCSFileSystemr&s     4rr(gsT)clobber)pytest importorskiprcloseAbstractFileSystemregister_implementation)rr(rs @rrrsb    *FJ#J4F554 ""4):D"I rformat)csvjsonparquetexcelmarkdownc  tddgdtjgddgtddd }d |}|d k(r$|j |d t |dgd}ne|dk(r$d}|j |t|dgd}n<|dk(r!|j|t|dg}n|dk(rtjdtjd G fdd j}|jtjjt t"d|j%5} | j' d||j)|t+|}ddd|j-} | j.dk(s/J|dk(r(tjd |j1||}t3j4|y#1swYnxYw)!zE Test that many to/read functions support GCS. GH 33987 @ts 2018-06-18periodsintfloatstrdtzgs://test/test.r1T)indexrDr) parse_dates index_colr4zgs://test/test.xlsxr2) convert_datesr3pyarrowz pyarrow.fsc"eZdZefdZy)(test_to_read_gcs..MockFileSystemctdtj|jddj j }j |S)NzUsing pyarrow filesystemzgs://)printpathlibPathreplaceabsoluteas_uriLocalFileSystem)r"to_localpa_fss rfrom_uriz1test_to_read_gcs..MockFileSystem.from_uriZsH01"<< Wb(ABKKMTTV,,X66rN)r$r%r&r'rW)rVsrMockFileSystemrKYs  7 7rrXz&pyarrow 17 broke the mocked filesystem)raisesreason FileSystemNz2Using pyarrow filesystem Using pyarrow filesystem r5tabulate)rnpnanrto_csvrto_excelr to_jsonr r+r,r[ applymarkermarkxfailr TypeErrorcontextsetattr to_parquetr readouterrout to_markdowntmassert_frame_equal) rr0 monkeypatchcapsysrequestdf1r"df2rXmcapturedrVs @rtest_to_read_gcsru7s q6266]:\15   CVH %D  4t $t$1= 7 $ TD6Q? 6  DTF3 9 I&##L1 7U-- 7  KK  (( ?    " %a IIe\> : NN4 t$C %$$&||UUUU : J' #s# % %s >0GG$resultexpected compressioncl|dk(rtjt|5}tjt|5}t|j |j D] \}}|j |j k(r J ddddddy|dk(rt jt|5}t jt|5}t|j|jD][\} } |j| } |j| } | du| duk(sJ| 6| 9| j| jk(r[J ddddddy||k(sJy#1swYxYw#1swYyxYw#1swY2xYw#1swYyxYw)a For zip compression, only compare the CRC-32 checksum of the file contents to avoid checking the time-dependent last-modified timestamp which in some CI builds is off-by-one See https://en.wikipedia.org/wiki/ZIP_(file_format)#File_headers zipNtar)fileobj) zipfileZipFilerrzinfolistCRCtarfiler getmembers extractfileread) rvrwrxexpresres_infoexp_infotar_exptar_res tar_res_info tar_exp_info actual_file expected_files rassert_equal_zip_saferuse __WV_ - 4goo H 7  4 &)#,,.#,,.&I 4"(||x||333 4 4 4 4   \\'&/ 2 Fgw||H%@ F .1""$g&8&8&:/ F* l&11,? ' 3 3L A #t+$1FGGG*}/H&++-1C1C1EEEE F F F F!!!% 4 4 4 4 F F F FsaFAF FF F*%AFF!F)F-F*F FFF' #F**F3encodingutf-8cp1251c tdtjdjdzt t dt t dDcgc]}d| c}}d|i}|d k(rd |d <t}|j|||d d}|j||||j} |j} t| | |t|d||} tj|| ||} d|d<|d| z }|j||||j} |j} t| | |t|dd|} tj|| ycc}w)z Compression and encoding should with GCS. GH 35677 (to_csv, compression), GH 26124 (to_csv, encoding), and GH 32392 (read_csv, encoding) g?x)ABCDrzi-)columnsrEmethodgzipr7mtimewb)rxrmodegs://test/test.csv)rxrr)rGrxrinfer.N)rr]arangereshaperlistrangerr_getvaluerrrlrm) rcompression_onlyrcompression_to_extensionidfrxbufferpath_gcsrrwread_dffile_exts r$test_to_csv_compression_encoding_gcsrsx  biin$$W--d6l#uRy1!r!X12 B-.K6! G YFIIf+tIL$HIIhK(IC    C H#x)9:A+;hG"g&((89H#K !H:HIIhK(IC    C H#x)9:x1'HUG"g&C2s E7c ,tjdtjdddlm}t ddgdt j gdd gtd d d }Gfdd|}|jd||jddddy)zCRegression test for writing to a not-yet-existent GCS Parquet file. fastparquetrr)r.r7r8r9r:r;r<r=r>r@ceZdZdfd Zy)7test_to_parquet_gcs_new_file..MockGCSFileSystemcpd|vrtttjj d|dS)Nwz test.parquetr)r)FileNotFoundErrorrosr"join)r!r"rrtmpdirs rrz.MockGCSFileSystem.opens.$'' V^rs  6. [[ ' 'C 2#RS9$T9$x"%"5"s">gx%89-':-'`8g''r