gL i/ ddlZddlZddlZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddlmZddlZddlmZddlmcmZe j0j3dej4dgdgdgzgd ej6dgdzd ge j0j3d gd dZe j0j3dej4dgdgdgzgd ej6dgdzd ge j0j3d ddgdZe j0j3ddddiej<fdiej>fdiej@fgdZ!e j0j3dddddej<ddifdiej>ddifdiej@ifgdZ"dZ#dZ$d Z%d!Z&e j0jNd"Z(e j0jNd#Z)e j0j3dej4dgdgdgzgd ej6dgdzd ge j0j3d gd d$Z*e j0j3dej4dgdgdgzgd ej6dgdzd ge j0j3d gd d%Z+e j0j3dej4dgdgdgzgd ej6dgdzd ge j0j3d gd d&Z,e j0j3d'd(e jZfd)ej\fgd*Z/d+Z0d,Z1d-Z2d.Z3y)/N)Path)is_platform_windowsobjdg~Ϛ?g9DܜJ?g>D)?g.4i(@g33333@g̤AXYZcolumnsr namemethod) to_pickleto_jsonto_csvcF|dk(rddd}tj5}t||||tjj |}t|||dtjj |}||kDsJ dddy#1swYyxYw)Ntarw:gzrmode compressiontm ensure_cleangetattrospathgetsize)rrcompression_onlyr!compressed_sizeuncompressed_sizes f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_compression.pytest_compression_sizer's5 &+V<  3dVT/?@''//$/VTt4GGOOD1 ?222 333s A.BB rrctj5}tj||dk(rdnd|5}t |||j |j j rJ dddtjj|}dddtj5}tj|dd5}t |||j |j j rJ dddtjj|}|kDsJ dddy#1swYxYw#1swYxYw#1swYQxYw#1swYyxYw)Nrrwr) rricom get_handlerhandleclosedr r!r")rrr#r!handlesr$r%s r&test_compression_size_fhr/.s9  0d __ &%/FS(  - GC  0~~,, ,,,  -''//$/0  3d __T3D 9 -W GC  0~~,, ,,, -GGOOD1 ?222 33 - -00 - -33sF E5D5+'E.E5E =.E5D> :EE  E EE"z'write_method, write_kwargs, read_methodindexFrc tjgdgdggd}||}tjd|z5}t |||fi||||}dddtj |y#1swY xYw)N)g?r)g333333 @r r compressedr)pd DataFramerrrassert_frame_equal) write_method write_kwargs read_methodr#compression_to_extensioninput extensionr!outputs r&,test_dataframe_compression_defaults_to_inferr@Ks LL, 4o NE()9:I  1 2Ad$|$T:\:T/?@A&%(AAs A::Bz1write_method,write_kwargs,read_method,read_kwargsT)r0headersqueezetypseriescjtjgdd}||}tjd|z5}t |||fi|d|vr.|j } | d=||fd|i| j d} n ||fd|i|} dddtj |d y#1swY"xYw) N)rr3 r rr5rBrrF) check_names)r6SeriesrrrcopyrBassert_series_equal) r9r:r; read_kwargsr#r<r=r>r!kwargsr?s r&)test_series_compression_defaults_to_inferrN_s" IIn3 /E()9:I  1 2 Td$|$T:\:  # %%'Fy! N3CNvNVVF!S3CS{SF T65e< T Ts AB))B2ctjdgdgdgzgd}tj5}t j |d|5}tj t5|j|j|dddddddddy#1swYxYw#1swYxYw#1swYyxYw)Nrrrr r r)r) r6r7rrr*r+assert_produces_warningRuntimeWarningrr,)r#dfr!r.s r&test_compression_warningrSs  -/MNN B  Hd __T34D E H++N; H '..6F G H HHH H H H HHHs;B9B-*B!B-B9!B* &B--B6 2B99Cc tjdtjdj dztj t dtj tdDcgc]}d| c}}tj5}t|d 5}|j|d| |jd d d d tj|tj|d | d d d tj }|j|d| |jd tj|tj|d | y cc}w#1swYxYw#1swYxYw)z? Binary file handles support compression. GH22555 皙?xABCDrXi-rr0wb)r)rrrN) index_colr)r6r7nparangereshapeIndexlistrangerropenrseekr8read_csvioBytesIO)r#irRr!files r&test_compression_binaryrls4  biin$$W--f&hh%)4Q"QC45 B   d $T " d IId3CI D IIaL    DA;KL   ::dVTv6"$''//$"7VT&ST/UV!wwt4&)==== >>>s A1BBcntj5}t|||dtjj |}t|||dddtjj |}||ksJ|dk(rt j|ddddy#1swYyxYw)Nxzrro)rpresetr)rrrr r!r"r6rgrs r&test_xz_compression_level_readrs  0dVTt4"$''//$"7VT$!/LM!wwt4&)==== X  KK$ /000s B B++B4ctj5}t|||ddddddy#1swYyxYw)zGH33196 bzip needs file size > 100k to show a size difference between compression levels, so here we just check if the call works when compression is passed as a dict. bz2rorrN)rrr)rrr!s r&test_bzip_compression_levelr&sB  VdVT%RS/TUVVVs6?zsuffix,archive.zipz.tarc"tj|5}||d5 dddtjtd5t j |ddddddy#1swYKxYw#1swYxYw#1swYyxYw)Nfilenamer)zZero files foundmatch)rrpytestraises ValueErrorr6rg)suffixarchiver!s r&test_empty_archive_zipr:s~ & )T T3     ]]:-? @  KK      s9 BA-#BA9B-A6 2B9B >BBctjd5}tj|d5}|j dd|j dddddt j td5tj|ddddddy#1swYKxYw#1swYxYw#1swYyxYw) Nrrr)a.csvzfoo,barb.csvz Multiple files found in ZIP filer) rrzipfileZipFilewritestrrrrr6rg)r!rks r&test_ambiguous_archive_ziprIs & )T __T3 ' .4 MM'9 - MM'9 - .]]:-O P  KK    . .   s:B5%B#B56B) B5B& "B5)B2 .B55B>c|dz }t|dd5}|jdddd|dz }t|dd5}|jdddd|dz }tj|d5}|j |d|j |ddddt j td 5tj|dddy#1swYxYw#1swYxYw#1swY[xYw#1swYyxYw) Nrr)zutf-8)encodingzfoo,bar rz archive.tarz#Multiple files found in TAR archiver) rewritetarfileTarFileaddrrrr6rg)tmp_pathcsvAPathacsvBPathbtarpathrs r&test_ambiguous_archive_tarrRs'!H hg .!  '!H hg .!  &G # &## '" '"# z)N O G##s/CC)6%C5>DC&)C25C>D c6tjd5}tjddggddgj |dd d d t j |5}tj| 5}|j}t|dk(sJ|j|djjd}trd}nd}||k(sJ dddddddddy#1swYxYw#1swYxYw#1swYyxYw)Nz.foor12foobarr rrrF)rr0)fileobjrorutf8zfoo,bar 1,2 z foo,bar 1,2 )rrr6r7rrnrerr getmemberslen extractfilereaddecoder)rk uncompressedrmemberscontentexpecteds r&!test_tar_gz_to_different_filenamercs & )+T 3ZLEN  &eV#DE& R YYt_ + 6 +'!,,.7|q(((!--gaj9>>@GGO&(3H/H(*** + + ++ + + + + ++s=ADD5A(C7D&D7D <DD DDctj5}tj|d5 ddddddy#1swYxYw#1swYyxYw)Nr))rr)rhrir* _BytesTarFile)rzs r&test_tar_no_error_on_closerwsO    S 9     s!A AA A A  A)4rnrhr pathlibrrrrrrsrnumpyr_r pandas.compatrpandasr6pandas._testing_testingrpandas.io.commoncommonr*mark parametrizer7rIr'r/rg read_json read_pickler@rNrSrlrwr{ single_cpurrrrrrrrrrrrrr&rs-    -  13QR R#   #66SA  #EF 3G  3  13QR R#   #66SA  Hi#893: 3$- GU#R[[1 B % b"..) ) )7 Ud3R[[9dBST B uh&78 b".."-==0 H<+2'. R RRR$  13QR R#   #66SA  #EF>G >  13QR R#   #66SA  #EF0G 0  13QR R#   #66SA  #EFVG V ! !"+(r