
    d                     &   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 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)_compression_to_extensionpyarrow_skipTF)paramsc                     | j         S )N)param)requests    c/var/www/html/t/fyr/venv311/lib/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_filesr8   6   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 filesr1   r   r$   )r%   r&   r'   r(   r3   r4   r5   r   )r   r   _r+   s       r   test_zip_error_no_filesr;   F   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 filer1   r   r$   )r%   r&   r   r3   r4   r'   
BadZipFiler   )r   r   r:   r+   r   s        r   test_zip_error_invalid_zipr>   R   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                 L   |\  }}}|}t           |         }	||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$   )r   formatnode
add_markerr3   markxfailr%   r&   write_to_compressedr   r   r*   )r
   r   compression_onlyr   r?   r   r   r   compress_typerA   r+   r   r   r-   s                 r   test_compressionrK   \   s    -FD($M
#M
2C#+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0CDC	DC	0DD DrA   )Ngzbz2c                    | }ddd} |j         |fi |}d|d<   |r6t          |          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   . )r   r   r%   r*   )	r   r   r   rA   r   kwargsr   r   r-   s	            r   test_infer_compressionrT   y   s    FT22Fvt..v..H#F= 7$ZZ 	21$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   	)encodingr   sep	Venezuela   Hugo Chávez FríasHenrique Capriles R.CountryTwitter)rC   osr+   joinr   r   r%   r*   )	r   csv_dir_path	utf_valueencoding_fmtr   rX   r+   r-   r   s	            r   test_compression_utf_encodingre      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: r1   r   )r   )r3   r4   r5   r   )r   rf   r   compress_kwargsmsgs        r   test_invalid_compressionrm      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)r`   r+   ra   r   listcolumns)r   rb   r   r+   dfs        r   test_compression_tar_archivers      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	          |                                                     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 )	Nro   r      ztest.csvztest.csv.zipFindexr$   )	r   r%   r&   to_csvr   
write_text	read_textr*   r   )r   r   rr   path_csvpath_zips        r   !test_ignore_compression_extensionr}      sw   F	C!Q=	!	!B		$	$ S_^,, 	SIIheI,,,NN%%d8nn&>&>&@&@AAA!&//(/"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*-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 )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 
	'	' 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__r`   pathlibr   r   r'   r3   pandasr   pandas._testing_testingr%    pandas.tests.io.test_compressionr   rF   usefixturesskip_pyarrowfixturer   r   parametrizer.   r8   r;   r>   rK   rT   re   rm   rs   r}   r    r   r   <module>r      s   
 
			                      F F F F F F{&&~66 e}%%%  &% " " " (@(@(@AA0 0 BA 0  (899; ; :9 ; 5 5 5 6 6 6 dL%9::0 0 ;: 06  3 3 344, , 54 ,$ , , ," .0J0J0JKK< < LK < % % %	S 	S 	S 0 0 0 0 0r   