
    o[we[                        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                            d          Z ej        ddg          d	             Zej        d
             Zeej                            dg d          d                         Zeej                            dddg          d                         Zed             Zed             Zeej                            dddg          d                         Zeej                            dg d          d                         Zed             Zeej                            dg d          d                         Zed             Zd Zed             ZdS ) zZ
Tests compressed data parsing functionality for all
of the parsers defined in parsers.py
    N)Path)	DataFramepyarrow_skipTF)paramsc                     | j         S )N)param)requests    Glib/python3.11/site-packages/pandas/tests/io/parser/test_compression.pybufferr      s
    =    c                     | }t          |d          5 }|                                }d d d            n# 1 swxY w Y   |                    |          }|||fS )Nrb)openreadread_csv)all_parserscsv1parserfdataexpecteds         r
   parser_and_datar      s    F	dD		 Qvvxx              t$$H4!!s   488compression)zipinferzip2c                    | \  }}}t          j        d          5 }t          j        |d          5 }|                    d|           d d d            n# 1 swxY w Y   |dk    r@t          |d          5 }|                    |d          }d d d            n# 1 swxY w Y   n|                    ||          }t          j        ||           d d d            d S # 1 swxY w Y   d S )	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(		)	) 
0T_T,,, 	,LLd+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, &  dD!! ?Q>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? __T{_CCF
fh///
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0sX   CA	CA	CA	C6BCB	C!B	"0CC#&C#r   r   c                    | \  }}}t          j        d          5 }ddg}t          j        |d          5 }|D ]}|                    ||           	 d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	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_filesr7   5   s    -FD(	+	,	, ;'7_T,,, 	.- . .	Y----.	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ]:-=>>> 	; 	;OODkO:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;sX   CACA#	#C&A#	'CB)C)B-	-C0B-	1CCCc                 \   | \  }}}t          j                    5 }t          j        |d          5  	 d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r    z
Zero filesr0   r   r#   )r$   r%   r&   r'   r2   r3   r4   r   )r   r   _r*   s       r
   test_zip_error_no_filesr:   E   sk   "LFAq			 5d_T,,, 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:\::: 	5 	5OODeO444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5	5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5sU   B!?B!A	B!A	B!%B	=B!	B	B!B	B!!B%(B%c                 X   | \  }}}t          j                    5 }t          |d          5 }t          j        t
          j        d          5  |                    |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   zFile is not a zip filer0   r   r#   )r$   r%   r   r2   r3   r&   
BadZipFiler   )r   r   r9   r*   r   s        r
   test_zip_error_invalid_zipr=   Q   sb   "LFAq			 6d$ 	6w19QRRR 6 6u5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	66 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6sX   B!BA0$B0A44B7A48B;BB	BB	BB#&B#filenamez
test.{ext}c                 B   |\  }}}|}	||	         }
||n|                     |
          }|r:|r8| j                            t          j                            d                     t          j        |          5 }t          j        |	||           |rdn|	}|r@t          |d          5 }|
                    ||          }d d d            n# 1 swxY w Y   n|
                    ||          }t          j        ||           d d d            d S # 1 swxY w Y   d S )N)extz9Cannot deduce compression from buffer of compressed data.)reason)r>   r   r   r#   )formatnode
add_markerr2   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_compressionrK   [   s    -FD($M
"=
1C#+xxS1I1IH 
F 
KR   	
 	
 	
 
(	+	+	+ 
0t
}dD999!)<gg} 	DdD!! EQDDE E E E E E E E E E E E E E E __T{_CCF
fh///
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0s6   </D+CDC	DC	0DDDr@   )Ngzbz2c                    | }ddd} |j         |fi |}d|d<   |r8t          |d          5 } |j         |fi |}d d d            n# 1 swxY w Y   n|rd|z   nd	} |j         ||z   fi |}t          j        ||           d S )
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_compressionrW      s
    FT22Fvt..v..H#F= 7$))) 	2Q$V_Q11&11F	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 &cCiiB 66v66&(+++++s   A		AAc                    | }|                     |          }t          j                            |d| d          }|                    ||dd          }t          ddgddgd	          }t          j        ||           d S )
Nutfz_ex_small.zipr   	)rS   r   sep	Venezuela   Hugo Chávez FríasHenrique Capriles R.CountryTwitter)rB   osr*   joinr   r   r$   r)   )	r   csv_dir_path	utf_valueencoding_fmtr   rS   r*   r,   r   s	            r
   test_compression_utf_encodingrg      s     F""9--H7<<&DI&D&D&DEED__TH%T_RRF#[1-/EF	
 	
 H &(+++++r   invalid_compression)sfarkbz3zipperc                     | }d|i}d| }t          j        t          |          5   |j        di | d d d            d S # 1 swxY w Y   d S )Nr   zUnrecognized compression type: r0   r   )r   )r2   r3   r4   r   )r   rh   r   compress_kwargsmsgs        r
   test_invalid_compressionro      s     F$&9:O
A,?
A
AC	z	-	-	- < <;;?;;;< < < < < < < < < < < < < < < < < <s   AA	Ac                     | }t           j                            |d          }|                    |          }t	          |j                  dgk    sJ d S )Nztar_csv.tar.gza)rb   r*   rc   r   listcolumns)r   rd   r   r*   dfs        r
   test_compression_tar_archiveru      sQ    F7<<&677D			B
u$$$$$$r   c                    | }t          dddgi          }t          j        d          5 }t          j        d          5 }|                    |d           t	          |                              t	          |                              d	          d	           t          j        |                    |d 
          |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrq   r      ztest.csvztest.csv.zipFindexrQ   rR   r#   )	r   r$   r%   to_csvr   
write_text	read_textr)   r   )r   r   rt   path_csvpath_zips        r
   !test_ignore_compression_extensionr      s   F	C!Q=	!	!B		$	$ S_^,, 	SIIheI,,,NN%%X(('(::W &    !&//(/"M"MrRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	SS S S S S S S S S S S S S S S S S Ss5   C*BCC*C	C*C	C**C.1C.c                    | }t          ddgddgd          }t          j        d          5 }|                    |d           t          j        |                    |          |           t          j        |d          5 }|                    |                    |	                                d	                   d
          }t          j        ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr\   r]   r^   r_   ztest.tar.gzFrx   zr:gzr   r   r#   )
r   r$   r%   rz   r)   r   tarfiler   extractfilegetnames)r   r   r   tar_pathtarr,   s         r
   test_writes_tar_gzr      s   F#[1-/EF	
 	
 D 
	'	' 08HE*** 	fooh77>>> \(F++ 	0s__q 122 %  F !&$///		0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s7   AC>AC&C>&C*	*C>-C*	.C>>DD)__doc__rb   pathlibr   r   r&   r2   pandasr   pandas._testing_testingr$   rE   usefixturesskip_pyarrowfixturer   r   parametrizer-   r7   r:   r=   rK   rW   rg   ro   ru   r   r    r   r
   <module>r      s   
 
			                     {&&~66 e}%%%  &% " " " (@(@(@AA0 0 BA 0  (899; ; :9 ; 5 5 5 6 6 6 dL%9::0 0 ;: 0D  3 3 344, , 54 ,$ , , ," .0J0J0JKK< < LK < % % %S S S 0 0 0 0 0r   