
    g                     h   d 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mZ ddl	m
Z ej                  j                  d      Z ej                  ddg      d	        Zej                  d
        Zej                  j%                  dg d      d        Zej                  j%                  dddg      d        Zd Zd Zej                  j%                  dddg      d        Zej                  j%                  dg d      d        Zd Zej                  j%                  dg d      d        Zd Zd Zd Zy) zZ
Tests compressed data parsing functionality for all
of the parsers defined in parsers.py
    N)Path)	DataFramez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningTF)paramsc                     | j                   S )N)param)requests    \/var/www/openai/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_compression.pybufferr
      s    ==    c                     | }t        |d      5 }|j                         }d d d        |j                  |      }||fS # 1 sw Y   xY w)Nrb)openreadread_csv)all_parserscsv1parserfdataexpecteds         r	   parser_and_datar      sG    F	dD	Qvvx 
t$H4!!	 
	s	   >Acompression)zipinferzip2c                    | \  }}}t        j                  d      5 }t        j                  |d      5 }|j	                  d|       d d d        |dk(  r)t        |d      5 }|j                  |d      }d d d        n|j                  ||      }t        j                  |       d d d        y # 1 sw Y   ixY w# 1 sw Y   4xY w# 1 sw Y   y xY w)	Ntest_file.zipwmode	test_filer   r   r   r   )tmensure_cleanzipfileZipFilewritestrr   r   assert_frame_equal)	r   r   r   r   r   pathtmpr   results	            r	   test_zipr,   %   s    ,FD(		)T__T,LLd+ - & dD!Q> "! __T{_CF
fh/ 
*	),, "! 
*	)s:   CB/C B;42C/B8	4C;C	 CCr   r   c                 ~   | \  }}}t        j                  d      5 }ddg}t        j                  |d      5 }|D ]  }|j	                  ||        	 d d d        t        j                  t        d      5  |j                  ||       d d d        d d d        y # 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   y xY w)	Nzcombined_zip.zipr!   second_filer   r   zMultiple filesmatchr"   )	r#   r$   r%   r&   r'   pytestraises
ValueErrorr   )	r   r   r   r   r   r)   inner_file_namesr*   	file_names	            r	   test_zip_error_multiple_filesr6   6   s    ,FD(	+	,'7__T,-	Y- . - ]]:-=>OODkO: ? 
-	, -, ?> 
-	,s:   B3B#B36B'
B3B$	 B3'B0	,B33B<c                 B   | \  }}}t        j                         5 }t        j                  |d      5  	 d d d        t	        j
                  t        d      5  |j                  |d       d d d        d d d        y # 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   z
Zero filesr/   r   r"   )r#   r$   r%   r&   r1   r2   r3   r   )r   r   _r)   s       r	   test_zip_error_no_filesr9   E   su    "LFAq		d__T, - ]]:\:OODeO4 ;	 
	,, ;:	 
	s9   BA=#BB	,B=B	B	B	BBc                 >   | \  }}}t        j                         5 }t        |d      5 }t        j                  t
        j                  d      5  |j                  |d       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   zFile is not a zip filer/   r   r"   )r#   r$   r   r1   r2   r%   
BadZipFiler   )r   r   r8   r)   r   s        r	   test_zip_error_invalid_zipr<   P   sv    "LFAq		d$w119QRu5 S  
	RR  
	s:   B&BA;"B*B;B BB	BBfilenamez
test.{ext}c                     |\  }}}|}	||	   }
||n|j                  |
      }|r1|r/| j                  t        j                  j	                  d             t        j                  |      5 }t        j                  |	||       |rdn|	}|r)t        |d      5 }|j                  ||      }d d d        n|j                  ||      }t        j                  |       d d d        y # 1 sw Y   (xY w# 1 sw Y   y xY w)N)extz9Cannot deduce compression from buffer of compressed data.)reason)r=   r   r   r"   )formatapplymarkerr1   markxfailr#   r$   write_to_compressedr   r   r(   )r   r   compression_onlyr
   r=   compression_to_extensionr   r   r   compress_typer?   r)   r   r   r+   s                  r	   test_compressionrI   Y   s     -FD($M
"=
1C#+xS1IHFKKR  	
 
(	+t
}dD9!)g}dD!QD "! __T{_CF
fh/ 
,	+
 "! 
,	+s$   -,C4C(-2C4(C1	-C44C=r?   )Ngzbz2c                    | }ddd} |j                   |fi |}d|d<   |r*t        |d      5 } |j                   |fi |}d d d        n|rd|z   nd	} |j                   ||z   fi |}t        j                  |       y # 1 sw Y    xY w)
Nr   T)	index_colparse_datesr   r   utf-8encoding. )r   r   r#   r(   )	r   r   r
   r?   r   kwargsr   r   r+   s	            r	   test_infer_compressionrU   |   s     FT2Fvt.v.H#F=$)Q$V__Q1&1F *) cCiB 6v6&(+ *)s   BBc                     | }|j                  |      }t        j                  j                  |d| d      }|j	                  ||dd      }t        ddgddgd	      }t        j                  ||       y )
Nutfz_ex_small.zipr   	)rQ   r   sep	Venezuela   Hugo Chávez FríasHenrique Capriles R.CountryTwitter)rA   osr)   joinr   r   r#   r(   )	r   csv_dir_path	utf_valueencoding_fmtr   rQ   r)   r+   r   s	            r	   test_compression_utf_encodingre      s|    F""9-H77<<I;m&DED__TH%T_RF#[1-/EF	
H &(+r   invalid_compression)sfarkbz3zipperc                     | }d|i}d| }t        j                  t        |      5   |j                  di | d d d        y # 1 sw Y   y xY w)Nr   zUnrecognized compression type: r/   )r   )r1   r2   r3   r   )r   rf   r   compress_kwargsmsgs        r	   test_invalid_compressionrm      sK    F$&9:O+,?+@
AC	z	-;?; 
.	-	-s   AAc                     | }t         j                  j                  |d      }|j                  |      }t	        |j
                        dgk(  sJ y )Nztar_csv.tar.gza)r`   r)   ra   r   listcolumns)r   rb   r   r)   dfs        r	   test_compression_tar_archivers      sC    F77<<&67D		B

u$$$r   c                    | }t        dddgi      }t        j                  d      5 }t        j                  d      5 }|j                  |d       t	        |      j                  t	        |      j                  d	      d	       t        j                  |j                  |d 
      |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nro   r      ztest.csvztest.csv.zipFindexrO   rP   r"   )	r   r#   r$   to_csvr   
write_text	read_textr(   r   )r   r   rr   path_csvpath_zips        r	   !test_ignore_compression_extensionr}      s    F	C!Q=	!B		$__^,IIheI,N%%X(('(:W &  !!&//(/"MrR - 
%	$,, 
%	$s#   C
A0B>-C
>C	C

Cc                    | }t        ddgddgd      }t        j                  d      5 }|j                  |d       t        j                  |j                  |      |       t        j                  |d      5 }|j                  |j                  |j                         d	         d
      }t        j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NrZ   r[   r\   r]   ztest.tar.gzFrv   zr:gzr   r   r"   )
r   r#   r$   rx   r(   r   tarfiler   extractfilegetnames)r   r   r   tar_pathtarr+   s         r	   test_writes_tar_gzr      s    F#[1-/EF	
D 
	'8HE* 	fooh7> \\(F+s__q 12 % F !!&$/	 , 
(	' ,+ 
(	's%   AC 9A
CC C	C  C))__doc__r`   pathlibr   r   r%   r1   pandasr   pandas._testing_testingr#   rC   filterwarnings
pytestmarkfixturer
   r   parametrizer,   r6   r9   r<   rI   rU   re   rm   rs   r}   r    r   r	   <module>r      s\  
 
      [[''C

 e}% & " " (@A0 B0  (89; :;56 dL%9:0 ;0D  34, 5,$," .0JK< L<%S0r   