
    .ik                     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    e/var/www/app/trading-bot/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      sN    F	dD	 Qvvxt$H4!!	 s	   >Acompression)zipinferzip2c                 \   |\  }}}| dz  }t        j                  |d      5 }|j                  d|       d d d        |dk(  r)t        |d      5 }|j	                  |d      }	d d d        n|j	                  ||      }	t        j                  	|       y # 1 sw Y   axY w# 1 sw Y   ,xY w)	Ntest_file.zipwmode	test_filer   r   r   r   )zipfileZipFilewritestrr   r   tmassert_frame_equal)
tmp_pathr   r   r   r   r   pathtmpr   results
             r	   test_zipr,   %   s    ,FD(o%D	C	( (C[$'( f$ 	;__QE_:F	; 	; ;?&(+( (	; 	;s   BB"B"B+r   r   c                 4   |\  }}}| dz  }ddg}t        j                  |d      5 }|D ]  }	|j                  |	|        	 d d d        t        j                  t
        d      5  |j                  ||       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)	Nzcombined_zip.zipr!   second_filer   r   zMultiple filesmatchr"   )r#   r$   r%   pytestraises
ValueErrorr   )
r(   r   r   r   r   r   r)   inner_file_namesr*   	file_names
             r	   test_zip_error_multiple_filesr6   6   s    ,FD(((D#]3	C	( *C) 	*ILLD)	** 
z)9	: 7+67 7	* *7 7s   B%BBBc                     |\  }}}| dz  }t        j                  |d      5  	 d d d        t        j                  t        d      5  |j                  |d       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)Nr   r   r   z
Zero filesr/   r   r"   )r#   r$   r1   r2   r3   r   )r(   r   r   _r)   s        r	   test_zip_error_no_filesr9   E   sw    "LFAqo%D	C	(  
z	6 1%01 1 1 1s   A%A1%A.1A:c                    |\  }}}| dz  }|j                          t        |d      5 }t        j                  t        j
                  d      5  |j                  |d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nzinvalid_file.zipr   zFile is not a zip filer/   r   r"   )touchr   r1   r2   r#   
BadZipFiler   )r(   r   r   r8   r)   r   s         r	   test_zip_error_invalid_zipr=   P   s    "LFAq((DJJL	dD	 2Q]]7--5MN 	2OOA5O1	22 2	2 	22 2s#   &A?A3"A?3A<	8A??Bfilenamez
test.{ext}c                    |\  }}}	|}
||
   }||n|j                  |      }|r1|r/|j                  t        j                  j	                  d             |r| |z  n| dz  }t        j                  |
||       |rdn|
}|r)t        |d      5 }|j                  ||      }d d d        n|j                  ||      }t        j                  |	       y # 1 sw Y    xY w)N)extz9Cannot deduce compression from buffer of compressed data.)reasonr!   r   r   r"   )
formatapplymarkerr1   markxfailr&   write_to_compressedr   r   r'   )r(   r   r   compression_onlyr
   r>   compression_to_extensionr   r   r   compress_typer@   r)   r   r   r+   s                   r	   test_compressionrJ   Z   s     -FD($M
"=
1C#+xS1IHFKKR  	
 #+8h;0FD=$5%'=K$ 	A__QK_@F	A 	A ;?&(+	A 	As   C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_compressionrV   ~   s     FT2Fvt.v.H#F=$) 	2Q$V__Q1&1F	2 	2 cCiB 6v6&(+	2 	2s   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   	)rR   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   rR   r)   r+   r   s	            r	   test_compression_utf_encodingrf      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   rg   r   compress_kwargsmsgs        r	   test_invalid_compressionrn      sT    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)ra   r)   rb   r   listcolumns)r   rc   r   r)   dfs        r	   test_compression_tar_archivert      sC    F77<<&67D		B

u$$$r   c                    |}t        dddgi      }| dz  }| dz  }|j                  |d       t        |      j                  t        |      j	                  d	      d	       t        j                  |j                  |d 
      |       y )Nrp   r      ztest.csvztest.csv.zipFindexrP   rQ   r"   )r   to_csvr   
write_text	read_textr&   r'   r   )r(   r   r   rs   path_csvpath_zips         r	   !test_ignore_compression_extensionr~      s    F	C!Q=	!B*$H.(HIIheI$NX  ' 2W   &//(/ErJr   c                    |}t        ddgddgd      }| dz  }|j                  |d       t        j                  |j	                  |      |       t        j                  |d      5 }|j	                  |j                  |j                         d	         d
      }t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr[   r\   r]   r^   ztest.tar.gzFrw   zr:gzr   r   r"   )	r   ry   r&   r'   r   tarfiler   extractfilegetnames)r(   r   r   r   tar_pathtarr+   s          r	   test_writes_tar_gzr      s    F#[1-/EF	
D -'HKKK& &//(3T: 
h	' ,3OOCLLN1-.G ! 
 	fd+	, , ,s   (A
B;;C)__doc__ra   pathlibr   r   r#   r1   pandasr   pandas._testing_testingr&   rD   filterwarnings
pytestmarkfixturer
   r   parametrizer,   r6   r9   r=   rJ   rV   rf   rn   rt   r~   r    r   r	   <module>r      s\  
 
      [[''C

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