
    Owg70              	          d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZ d dlZd dlmZ d dlmc mZ ej0                  j3                  d ej4                  dg dg dgz  g d	       ej6                  dg dz  d
      g      ej0                  j3                  dg d      d               Zej0                  j3                  d ej4                  dg dg dgz  g d	       ej6                  dg dz  d
      g      ej0                  j3                  dddg      d               Zej0                  j3                  ddddiej<                  fdi ej>                  fdi ej@                  fg      d        Z!ej0                  j3                  dddddej<                  ddifdi ej>                  ddifdi ej@                  i fg      d        Z"d Z#d Z$d  Z%d! Z&ej0                  jN                  d"        Z(ej0                  jN                  d#        Z)ej0                  j3                  d ej4                  dg dg dgz  g d	       ej6                  dg dz  d
      g      ej0                  j3                  dg d      d$               Z*ej0                  j3                  d ej4                  dg dg dgz  g d	       ej6                  dg dz  d
      g      ej0                  j3                  dg d      d%               Z+ej0                  j3                  d ej4                  dg dg dgz  g d	       ej6                  dg dz  d
      g      ej0                  j3                  dg d      d&               Z,ej0                  j3                  d'd(e
jZ                  fd)ej\                  fg      d*        Z/d+ Z0d, Z1d- Z2d. Z3y)/    N)Path)is_platform_windowsobjd   g~Ϛ?g9DܜJ?g>D)?g.4i(@g33333@g̤AXYZcolumnsr
   namemethod)	to_pickleto_jsonto_csvc                 F   |dk(  rddd}t        j                         5 } t        | |      ||       t        j                  j                  |      } t        | |      |d        t        j                  j                  |      }||kD  sJ 	 d d d        y # 1 sw Y   y xY w)Ntarw:gzr   modecompressiontmensure_cleangetattrospathgetsize)r   r   compression_onlyr!   compressed_sizeuncompressed_sizes         W/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/io/test_compression.pytest_compression_sizer'      s     5 &+V<		 3dVT/?@''//$/VTt4GGOOD1 ?2223 3 3s   A.BB r   r   c                    t        j                         5 }t        j                  ||dk(  rdnd|      5 } t	        | |      |j
                         |j
                  j                  rJ 	 d d d        t        j                  j                  |      }d d d        t        j                         5 }t        j                  |dd       5 } t	        | |      |j
                         |j
                  j                  rJ 	 d d d        t        j                  j                  |      }|kD  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr   r   wr   )
r   r   icom
get_handler   handleclosedr    r!   r"   )r   r   r#   r!   handlesr$   r%   s          r&   test_compression_size_fhr/   .   s9    
	 0d__&%/FS(
 	-  GC 0~~,,,,,	- ''//$/0 
	 3d__T3D9 	-W GC 0~~,,,,,	- GGOOD1 ?2223 3	- 	-0 0	- 	-3 3sF    E5D5+'E.E5E=.E5D>	:EE
E	EE"z'write_method, write_kwargs, read_methodindexFr   c                    t        j                  g dg dgg d      }||   }t        j                  d|z         5 } t	        ||       |fi |  |||      }d d d        t        j
                  |       y # 1 sw Y    xY w)N)g      ?r   )g333333@      r	   r   
compressedr   )pd	DataFramer   r   r   assert_frame_equal)	write_methodwrite_kwargsread_methodr#   compression_to_extensioninput	extensionr!   outputs	            r&   ,test_dataframe_compression_defaults_to_inferr@   K   s     LL,4oNE()9:I		1	2 Ad$|$T:\:T/?@A &%(A As   A::Bz1write_method,write_kwargs,read_method,read_kwargsT)r0   headersqueezetypseriesc                 j   t        j                  g dd      }||   }t        j                  d|z         5 } t	        ||       |fi | d|v r.|j                         }	|	d=  ||fd|i|	j                  d      }
n ||fd|i|}
d d d        t        j                  
|d	       y # 1 sw Y   "xY w)
N)r   r3   
   r
   r   r5   rB   r   r   F)check_names)r6   Seriesr   r   r   copyrB   assert_series_equal)r9   r:   r;   read_kwargsr#   r<   r=   r>   r!   kwargsr?   s              r&   )test_series_compression_defaults_to_inferrN   _   s    " IIn3/E()9:I		1	2 	Td$|$T:\:# %%'Fy! N3CNvNVVF !S3CS{SF	T 65e<	T 	Ts   AB))B2c                    t        j                  dg dg dgz  g d      }t        j                         5 }t	        j
                  |d|       5 }t        j                  t              5  |j                  |j                  |        d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r   r	   r   r)   r   )
r6   r7   r   r   r*   r+   assert_produces_warningRuntimeWarningr   r,   )r#   dfr!   r.   s       r&   test_compression_warningrS      s     
-/MNN
B 
	 Hd__T34DE 	H++N; H		'..6F	GH	HH HH H	H 	HH Hs;   B9B-*B!B-B9!B*&B--B6	2B99Cc                 4   t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d      t              t        j
                  t        d      D cg c]  }d| 	 c}t                    }t        j                         5 }t        |d	
      5 }|j                  |d	|        |j                  d       ddd       t        j                  |t        j                  |d|              ddd       t!        j"                         }|j                  |d	|        |j                  d       t        j                  |t        j                  |d|              yc c}w # 1 sw Y   xY w# 1 sw Y   xY w)z?
    Binary file handles support compression.

    GH22555
    皙?x         ABCDdtyperX   i-r   r0   wb)r   )r   r   r   N)	index_colr   )r6   r7   nparangereshapeIndexlistobjectranger   r   openr   seekr8   read_csvioBytesIO)r#   irR   r!   files        r&   test_compression_binaryro      s8    
biin$$W--fV4hh%)4Q"QC4FC
B 
	 
d$T" 	dIId3CIDIIaL	 	DA;KL	
	
 ::<DIId+;I<IIaL
BKK7GH! 5
	 	
 
s*   5E='F5&F4FF	FFc                  f   t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d      t              t        j
                  t        d      D  cg c]  } d|  	 c} t                    }d	d
d}t        j                         5 }t        |      }|j                  ||       t        j                  d       |j                         }|j                  ||       ||j                         k(  sJ 	 ddd       yc c} w # 1 sw Y   yxY w)z
    Gzip should create reproducible archives with mtime.

    Note: Archives created with different filenames will still be different!

    GH 28103
    rU   rV   rW   rZ   r[   rX   r]   r^   gzip   r   mtimer   皙?N)r6   r7   ra   rb   rc   rd   re   rf   rg   r   r   r   r   timesleep
read_bytes)rm   rR   compression_optionsr!   r?   s        r&   #test_gzip_reproducibility_file_namerz      s     
biin$$W--fV4hh%)4Q"QC4FC
B
 &,a8 
	 +dDz
		$$7	8

3"
		$$7	8****+ + 5
+ +s   5D",A,D''D0c                  P   t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d      t              t        j
                  t        d      D  cg c]  } d|  	 c} t                    }d	d
d}t        j                         }|j                  ||d       |j                         }t        j                  d       t        j                         }|j                  ||d       ||j                         k(  sJ yc c} w )zL
    Gzip should create reproducible archives with mtime.

    GH 28103
    rU   rV   rW   rZ   r[   rX   r]   r^   rq   rr   rs   r_   )r   r   ru   N)r6   r7   ra   rb   rc   rd   re   rf   rg   rk   rl   r   getvaluerv   rw   )rm   rR   ry   bufferr?   s        r&   %test_gzip_reproducibility_file_objectr~      s     
biin$$W--fV4hh%)4Q"QC4FC
B
 &,a8 ZZ\FIIf"5DIA__FJJsOZZ\FIIf"5DIAV__&&&& 5s   5D#c                      t        j                  d      } t        j                  t        j
                  d| gt        j                         y)z6Tests if import pandas works when lzma is not present.zT        import sys
        sys.modules['lzma'] = None
        import pandas
        -cstderrNtextwrapdedent
subprocesscheck_outputsys
executablePIPEcodes    r&   test_with_missing_lzmar      s8     ??	D S^^T48Q    c                      t        j                  d      } t        j                  t        j
                  d| gt        j                         y)z\Tests if RuntimeError is hit when calling lzma without
    having the module available.
    z
        import sys
        import pytest
        sys.modules['lzma'] = None
        import pandas as pd
        df = pd.DataFrame()
        with pytest.raises(RuntimeError, match='lzma module'):
            df.to_csv('foo.csv', compression='xz')
        r   r   Nr   r   s    r&   test_with_missing_lzma_runtimer      s8    
 ??	
D S^^T48Qr   c                 8   t        j                         5 } t        | |      |d       t        j                  j                  |      } t        | |      |ddd       t        j                  j                  |      }||k  sJ 	 d d d        y # 1 sw Y   y xY w)Nrq   r   rr   r   compresslevelr   r   r   r!   compressed_size_defaultcompressed_size_fasts        r&   test_gzip_compression_levelr      s     
	 >dVTv6"$''//$"7VT&ST/UV!wwt4&)====> > >s   A1BBc                 n   t        j                         5 } t        | |      |d       t        j                  j                  |      } t        | |      |ddd       t        j                  j                  |      }||k  sJ |dk(  rt        j                  |d       d d d        y # 1 sw Y   y xY w)Nxzr   rr   )r   presetr   )r   r   r   r    r!   r"   r6   rj   r   s        r&   test_xz_compression_level_readr     s     
	 0dVTt4"$''//$"7VT$!/LM!wwt4&)====XKK$/0 0 0s   BB++B4c                     t        j                         5 } t        | |      |ddd       ddd       y# 1 sw Y   yxY w)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.
    bz2rr   r   r   N)r   r   r   )r   r   r!   s      r&   test_bzip_compression_levelr   &  sB      
	 VdVT%RS/TUV V Vs   6?zsuffix,archive.zipz.tarc                 "   t        j                  |       5 } ||d      5  	 d d d        t        j                  t        d      5  t        j                  |       d d d        d d d        y # 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nfilenamer)   zZero files foundmatch)r   r   pytestraises
ValueErrorr6   rj   )suffixarchiver!   s      r&   test_empty_archive_zipr   :  s~     
&	) TT3 		]]:-?@ 	KK	 	 		 	 s9   
BA-#BA9B-A6	2B9B	>BBc                     t        j                  d      5 } t        j                  | d      5 }|j	                  dd       |j	                  dd       d d d        t        j                  t        d      5  t        j                  |        d d d        d d d        y # 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   y xY w)	Nr   r   r)   a.csvzfoo,barb.csvz Multiple files found in ZIP filer   )
r   r   zipfileZipFilewritestrr   r   r   r6   rj   )r!   rn   s     r&   test_ambiguous_archive_zipr   I  s    	&	) T__T3' 	.4MM'9-MM'9-	. ]]:-OP 	KK		 	. 	.	 		 s:   B5%B#B56B)B5B&	"B5)B2	.B55B>c                    | dz  }t        |dd      5 }|j                  d       d d d        | dz  }t        |dd      5 }|j                  d       d d d        | dz  }t        j                  |d      5 }|j	                  |d       |j	                  |d       d d d        t        j                  t        d	      5  t        j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   y xY w)
Nr   r)   zutf-8)encodingzfoo,bar
r   zarchive.tarz#Multiple files found in TAR archiver   )
rh   writetarfileTarFileaddr   r   r   r6   rj   )tmp_pathcsvAPathacsvBPathbtarpathr   s          r&   test_ambiguous_archive_tarr   R  s    '!H	hg	. !	'!H	hg	. !	 &G	#	& ##'"'"# 
z)N	O 
G   # # s/   CC)6%C5>DC&)C25C>D
c                  6   t        j                  d      5 } t        j                  ddggddg      j	                  | dd	d
d       t        j                  |       5 }t        j                  |      5 }|j                         }t        |      dk(  sJ |j                  |d         j                         j                  d      }t               rd}nd}||k(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz.foor   12foobarr   r   r   r   F)r   r0   )fileobjrr   r   utf8zfoo,bar
1,2
zfoo,bar
1,2
)r   r   r6   r7   r   rq   rh   r   r   
getmemberslenextractfilereaddecoder   )rn   uncompressedr   memberscontentexpecteds         r&   !test_tar_gz_to_different_filenamer   c  s   	&	) +T
3ZLEN	
 &eV#DE&
RYYt_ 	+6 
+'!,,.7|q(((!--gaj9>>@GGO&(3H/H(***
+	++ +
+ 
+	+ 	++ +s=   ADD5A(C7D&D7D <DD	DDc                      t        j                         5 } t        j                  | d      5  	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr)   )r   r   )rk   rl   r*   _BytesTarFile)r}   s    r&   test_tar_no_error_on_closer   w  sO    	 S9 		 	 	 s!   AA A A		AA)4rq   rk   r    pathlibr   r   r   r   r   rv   r   numpyra   r   pandas.compatr   pandasr6   pandas._testing_testingr   pandas.io.commoncommonr*   markparametrizer7   rI   r'   r/   rj   	read_jsonread_pickler@   rN   rS   ro   rz   r~   
single_cpur   r   r   r   r   r   r   r   r   r   r   r    r   r&   <module>r      s-    	 	   
       -     	13QRR#	
 			#66SA	 #EF	3 G		3 	13QRR#	
 			#66SA	 Hi#893 :	3$ -	GU#R[[1	B%	b"..)	)	) 7	Ud3R[[9dBST	Buh&78	b".."-==0
H<+2'. 
R 
R R R$ 	13QRR#	
 			#66SA	 #EF> G	> 	13QRR#	
 			#66SA	 #EF0 G	0 	13QRR#	
 			#66SA	 #EFV G	V 	!	!"+(r   