
    A>i.              	       d   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKr	S SK
r
S SKJr  S SKrS SKJr  S SKJs  Jr  \
R*                  R-                  S\R.                  " S/ SQ/ SQ/-  / SQS9\R0                  " S/ SQ-  S	S
9/5      \
R*                  R-                  S/ SQ5      S 5       5       r\
R*                  R-                  S\R.                  " S/ SQ/ SQ/-  / SQS9\R0                  " S/ SQ-  S	S
9/5      \
R*                  R-                  SSS/5      S 5       5       r\
R*                  R-                  SSSS0\R6                  4S0 \R8                  4S0 \R:                  4/5      S 5       r\
R*                  R-                  SSSSS.\R6                  SS04S0 \R8                  SS04S0 \R:                  0 4/5      S 5       rS r S r!S r"S  r#\
R*                  RH                  S! 5       r%\
R*                  RH                  S" 5       r&\
R*                  R-                  S\R.                  " S/ SQ/ SQ/-  / SQS9\R0                  " S/ SQ-  S	S
9/5      \
R*                  R-                  S/ SQ5      S# 5       5       r'\
R*                  R-                  S\R.                  " S/ SQ/ SQ/-  / SQS9\R0                  " S/ SQ-  S	S
9/5      \
R*                  R-                  S/ SQ5      S$ 5       5       r(\
R*                  R-                  S\R.                  " S/ SQ/ SQ/-  / SQS9\R0                  " S/ SQ-  S	S
9/5      \
R*                  R-                  S/ SQ5      S% 5       5       r)\
R*                  R-                  S&S'\RT                  4S(\RV                  4/5      S) 5       r,S* r-S+ r.S, r/S- r0g).    N)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                     US:X  a  SSS.nUn[        X5      " XBS9  [        R                  R                  U5      n[        X5      " US S9  [        R                  R                  U5      nXe:  d   eg )Ntarw:gzr   modecompressiongetattrospathgetsize)r   r   compression_only	temp_filer   compressed_sizeuncompressed_sizes          _/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/test_compression.pytest_compression_sizer%      si     5 &+V<DC<ggood+OC40-...    r   r   c                    Un[         R                  " UUS:X  a  SOSUS9 n[        X5      " UR                  5        UR                  R                  (       a   e S S S 5        [
        R                  R                  U5      nUR                  UR                   SUR                   3-  nUR                  5         [         R                  " USS S9 n[        X5      " UR                  5        UR                  R                  (       a   e S S S 5        [
        R                  R                  U5      nX:  d   eg ! , (       d  f       N= f! , (       d  f       NF= f)Nr   r   wr   _uncompressed)icom
get_handler   handleclosedr   r   r   parentstemsuffixtouch)	r   r   r    r!   r   handlesr"   path2r#   s	            r$   test_compression_size_fhr4   ,   s    D	"e+$
 
W^^,>>(((((
 ggood+O )..!1y?O?O>PQQE	KKM		6'W^^,>>((((( 
7 ....!
 
 
7	6s   9D99E
9
E

Ez'write_method, write_kwargs, read_methodindexFr   c                     [         R                  " / SQ/ SQ// SQS9nXC   nUR                  SU 3-  n[        X`5      " U40 UD6  U" XS9n	[        R
                  " X5        g )N)g      ?r   )g333333@      r   r   
compressedr   )pd	DataFramer.   r   tmassert_frame_equal)
write_methodwrite_kwargsread_methodr    compression_to_extensionr!   input	extensionr   outputs
             r$   ,test_dataframe_compression_defaults_to_inferrF   L   sb    " LL,4oNE(:I
9+66DE 66<F&(r&   z1write_method,write_kwargs,read_method,read_kwargsT)r5   headersqueezetypseriesc                 *   [         R                  " / SQSS9nXT   nUR                  SU 3-  n	[        Xp5      " U	40 UD6  SU;   a.  UR	                  5       n
U
S	 U" U	4SU0U
D6R                  S5      nOU" U	4SU0UD6n[        R                  " XSS	9  g )
N)r   r8   
   r	   r   r:   rH   r   r   F)check_names)r;   Seriesr.   r   copyrH   r=   assert_series_equal)r?   r@   rA   read_kwargsr    rB   r!   rC   rD   r   kwargsrE   s               r$   )test_series_compression_defaults_to_inferrT   e   s    $ IIn3/E(:I
9+66DE 66K!!#9TJ/?J6JRR
 TO/?O;O6e<r&   c                 B   [         R                  " S/ SQ/ SQ/-  / SQS9nUn[        R                  " USU S9 n[        R
                  " [        SS	9   UR                  UR                  U S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
Nr   r   r   r   r   r(   r   zhas no effectmatch)	r;   r<   r*   r+   r=   assert_produces_warningRuntimeWarningr   r,   )r    r!   dfr   r2   s        r$   test_compression_warningr[      s     
-/MNN
B D	s0@	AW''oNIIgnn2BIC O 
B	ANN 
B	As#   BA?.B?
B		B
Bc                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9nUn[        USS	9 nUR                  USU S
9  UR                  S5        SSS5        [        R                  " U[         R                  " USU S95        [        R                  " 5       nUR                  USU S
9  UR                  S5        [        R                  " U[         R                  " USU S95        gs  snf ! , (       d  f       N= f)z3
Binary file handles support compression.

GH22555
皙?x         ABCDr`   i-r   r5   wb)r   )r   r   r   N)	index_colr   )r;   r<   nparangereshapeIndexlistrangeopenr   seekr=   r>   read_csvioBytesIO)r    r!   irZ   r   files         r$   test_compression_binaryrt      s    
biin$$W--f&hh%)4)Q"QC)45
B D	d	$
		$T/?	@		! 
 
BKK7GH
 ::<DIId+;I<IIaL
BKK7GH! 5
 
	s   3E#E
E#c                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9nSS	S
.nU nUR                  XCS9  UR                  5       nUR                  XCS9  XTR                  5       :X  d   egs  snf )z
Gzip should create reproducible archives with mtime.

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

GH 28103
r]   r^   r_   rb   r`   rc   rd   gzip   r   mtimer   N)
r;   r<   rg   rh   ri   rj   rk   rl   r   
read_bytes)r!   rr   rZ   compression_optionsr   rE   s         r$   #test_gzip_reproducibility_file_namer|      s     
biin$$W--f&hh%)4)Q"QC)45
B
 &,a8 DIIdI4__FIIdI4__&&&& 5s   3Cc                  
   [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       V s/ s H  n SU  3PM
     sn 5      S9nSS	S
.n[        R                  " 5       nUR                  X2SS9  UR                  5       n[        R                  " 5       nUR                  X2SS9  XCR                  5       :X  d   egs  sn f )z@
Gzip should create reproducible archives with mtime.

GH 28103
r]   r^   r_   rb   r`   rc   rd   rv   rw   rx   re   )r   r   N)r;   r<   rg   rh   ri   rj   rk   rl   rp   rq   r   getvalue)rr   rZ   r{   bufferrE   s        r$   %test_gzip_reproducibility_file_objectr      s     
biin$$W--f&hh%)4)Q"QC)45
B
 &,a8 ZZ\FIIfDIA__FZZ\FIIfDIA__&&&& 5s   3D c                      [         R                  " S5      n [        R                  " [        R
                  SU /[        R                  S9  g)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Qr&   c                      [         R                  " S5      n [        R                  " [        R
                  SU /[        R                  S9  g)z[Tests if ModuleNotFoundError is hit when calling lzma without
having the module available.
a	  
        import sys
        import pytest
        sys.modules['lzma'] = None
        import pandas as pd
        df = pd.DataFrame()
        with pytest.raises(ModuleNotFoundError, match='import of lzma'):
            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                     Un[        X5      " USS9  [        R                  R                  U5      n[        X5      " USSS.S9  [        R                  R                  U5      nXE:  d   eg )Nrv   r   rw   r   compresslevelr   r   r   r!   r   compressed_size_defaultcompressed_size_fasts         r$   test_gzip_compression_levelr      s^     DC62 ggood3Cfq+QR77??40"999r&   c                    Un[        X5      " USS9  [        R                  R                  U5      n[        X5      " USSS.S9  [        R                  R                  U5      nXE:  d   eUS:X  a  [        R
                  " USS9  g g )Nxzr   rw   )r   presetr   )r   r   r   r   r;   ro   r   s         r$   test_xz_compression_level_readr     sy     DC40 ggood3Cda+HI77??40"999
Dd+ r&   c                 .    Un[        X5      " USSS.S9  g)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.
bz2rw   r   r   N)r   )r   r   r!   r   s       r$   test_bzip_compression_levelr   *  s      DCea+PQr&   zsuffix,archivez.zipz.tarc                    UR                   SU  3-  nU" US5          S S S 5        [        R                  " [        SS9   [        R
                  " U5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Narchiver(   zZero files foundrV   )r.   pytestraises
ValueErrorr;   ro   )r0   r   r!   r   s       r$   test_empty_archive_zipr   >  s`     x00D	s	 
	z);	<
D 
=	< 
		<	<s   AA0
A-0
A>c                 ^   U R                   S-  n[        R                  " US5       nUR                  SS5        UR                  SS5        S S S 5        [        R
                  " [        SS9   [        R                  " U5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nzarchive.zipr(   a.csvzfoo,barb.csvz Multiple files found in ZIP filerV   )	r.   zipfileZipFilewritestrr   r   r   r;   ro   )r!   r   rs   s      r$   test_ambiguous_archive_zipr   M  s|    m+D	s	#tgy)gy) 
$ 
z)K	L
D 
M	L 
$	# 
M	Ls   %B-B
B
B,c                 6   U S-  n[        USSS9 nUR                  S5        S S S 5        U S-  n[        USSS9 nUR                  S5        S S S 5        U S-  n[        R                  " US5       nUR	                  US5        UR	                  US5        S S S 5        [
        R                  " [        SS	9   [        R                  " U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ni= f! , (       d  f       g = f)
Nr   r(   zutf-8)encodingzfoo,bar
r   zarchive.tarz#Multiple files found in TAR archiverV   )
rm   writetarfileTarFileaddr   r   r   r;   ro   )tmp_pathcsvAPathacsvBPathbtarpathr   s          r$   test_ambiguous_archive_tarr   V  s    '!H	hg	.!	 
/'!H	hg	.!	 
/ &G	#	&#'"'" 
' 
z)N	O
G 
P	O 
/	. 
/	. 
'	& 
P	Os.   CC(1%C97D

C%(
C69
D

Dc                    U R                   S-  n[        R                  " SS//SS/S9R                  USSS	.S
S9  [        R
                  " U5       n[        R                  " US9 nUR                  5       n[        U5      S:X  d   eUR                  US   5      R                  5       R                  S5      n[        5       (       a  SnOSnXV:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nzarchive.foo12foobarr   r   r   r   F)r   r5   )fileobjrw   r   utf8zfoo,bar
1,2
zfoo,bar
1,2
)r.   r;   r<   r   rv   rm   r   r   
getmemberslenextractfilereaddecoder   )r!   rs   uncompressedr   memberscontentexpecteds          r$   !test_tar_gz_to_different_filenamer   g  s    m+DLL
s fT%@fN	4L__\2g((*Gw<1$$$))'!*5::<CCFKG"$$/+&&& 3 
22 
s%   C8'A.C'C8'
C5	1C88
Dc                      [         R                  " 5        n [        R                  " U SS9    S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr(   )r   r   )rp   rq   r*   _BytesTarFile)r   s    r$   test_tar_no_error_on_closer   {  s;    	S9 : 
99 
s   A?A
A		A
A)1rv   rp   r   r   r   r   r   r   numpyrg   r   pandas.compatr   pandasr;   pandas._testing_testingr=   pandas.io.commoncommonr*   markparametrizer<   rO   r%   r4   ro   	read_jsonread_picklerF   rT   r[   rt   r|   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	/ G		/ 	
13QRR#	
 			#66SA	 Hi#89/ :	/* -	GU#R[[1	B%	b"..)))" 7	Ud3R[[9dBST	Buh&78	b".."-==2
D<'.', 
R 
R R R$ 	
13QRR#	
 			#66SA	 #EF: G	: 	
13QRR#	
 			#66SA	 #EF, G	, 	
13QRR#	
 			#66SA	 #EFR G	R 	!	!"'(r&   