o
    %j0                     @   s  d Z ddlmZ ddlZddlZddlZddlZddlm	  m
Z ddlmZ ddlmZ ddlmZ ddlmZ ejdZejjejjejdd	d
gejdddgdd Zejjejjdd Zejdd Zejjejde  G dd dZ!dS )zl
Tests parsers ability to read and parse non-local files
and hence require a network connection to be read.
    )BytesION)	DataFrame)read_featherread_csvz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningmodeexplicitinferenginepythoncc                 C   s   |dkr	t d || }t|dddd| d}| j| d W d    n1 s,w   Y  | jd	 | }	|d
kr>|}t|	d||d}
t|
| d S )Ntarz5TODO: Add tar salaraies.csv to pandas/io/parsers/dataioparserdatazsalaries.csvrbcontentz/salaries.csvr   	)sepcompressionr
   )	pytestskipopenserve_contentreadurlr   tmassert_frame_equal)
httpserverdatapathZsalaries_tabler   r
   Zcompression_onlyZcompression_to_extension	extensionfr   Z	url_table r#   d/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/io/parser/test_network.pytest_compressed_urls   s   
r%   c                 C   sj   t |ddddd}| j| d t| jddd	}W d   n1 s%w   Y  |jd
 dks3J dS )zN
    read_csv should honor the requested encoding for URLs.

    GH 10424
    r   r   r   zunicode_series.csvr   r   zlatin-1N)encodingheader)      u$   Á köldum klaka (Cold Fever) (1994))r   r   r   r   r   loc)r   r    r"   dfr#   r#   r$   test_url_encoding_csv8   s
   r,   c                 C   s   t | ddddS )z DataFrame with the tips dataset.r   r   csvtips.csvr   )r    r#   r#   r$   tips_dfF   s   r/   Zs3_resourcec                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zejjddddd Zejjddddd Zejjd d! Zejjd"d# Zd$d% Zd&d' Zd(S ))TestS3c                 C   s\   t d dD ]$\}}td|j d| ||d}t|ts J |jr%J t|| qd S )Ns3fs) N).gzgzip).bz2bz2s3://	/tips.csv)r   storage_options	r   importorskipr   name
isinstancer   emptyr   r   selfs3_public_bucket_with_datar/   s3soextcompr+   r#   r#   r$   test_parse_public_s3_bucketP   s   

z"TestS3.test_parse_public_s3_bucketc                 C   sH   t d td|j d|d}t|tsJ |jrJ t|| d S )Nr1   r8   r9   r:   r;   )rA   Zs3_private_bucket_with_datar/   rC   r+   r#   r#   r$   test_parse_private_s3_bucket^   s   

z#TestS3.test_parse_private_s3_bucketc                 C   J   t d|j dd|d}t|tsJ |jrJ t|jd d | d S )Nzs3n://r9   
   nrowsr:   r   r=   r>   r   r?   r   r   ilocrA   rB   r/   rC   r+   r#   r#   r$   test_parse_public_s3n_bucketh      
z#TestS3.test_parse_public_s3n_bucketc                 C   rI   )Nzs3a://r9   rJ   rK   rM   rO   r#   r#   r$   test_parse_public_s3a_buckets   rQ   z#TestS3.test_parse_public_s3a_bucketc                 C   s^   dD ]*\}}t d|j d| d||d}t|tsJ |jr!J t|jd d | qd S )Nr2   r8   r9   rJ   )rL   r   r:   rM   r@   r#   r#   r$   !test_parse_public_s3_bucket_nrows~   s   
z(TestS3.test_parse_public_s3_bucket_nrowsc              	   C   s   d}dD ]R\}}t d|j d| |||d7}|j|ksJ dD ]%}| }	t|	ts.J |	jr3J |j|| ||d   }
t	|
|	 q!W d    n1 sQw   Y  qd S )N   r2   r8   r9   )	chunksizer   r:   r   r)      r)   
r   r=   rU   Z	get_chunkr>   r   r?   rN   r   r   rA   rB   r/   rC   rU   rD   rE   Z	df_readerZi_chunkr+   Ztrue_dfr#   r#   r$   #test_parse_public_s3_bucket_chunked   s,   
z*TestS3.test_parse_public_s3_bucket_chunkedc              	   C   s   d}dD ]S\}}t d|j d| ||d|d7}|j|ks J dD ]%}| }	t|	ts/J |	jr4J |j|| ||d   }
t	|
|	 q"W d    n1 sRw   Y  qd S )	NrT   r2   r8   r9   r   )rU   r   r
   r:   rV   r)   rX   rY   r#   r#   r$   *test_parse_public_s3_bucket_chunked_python   s.   
z1TestS3.test_parse_public_s3_bucket_chunked_pythonc                 C   sT   dD ]%\}}t d|j d| d||d}t|tsJ |jr!J t|| qd S )Nr2   r8   r9   r   r
   r   r:   r   r=   r>   r   r?   r   r   r@   r#   r#   r$   "test_parse_public_s3_bucket_python   s   
z)TestS3.test_parse_public_s3_bucket_pythonc                 C   sP   dD ]#}t d|j d| dd|d}t|tsJ |jrJ t|| qd S )N)r3   r4   r6   r8   r9   r   r	   r\   r]   )rA   rB   r/   rC   rD   r+   r#   r#   r$   test_infer_s3_compression   s   
z TestS3.test_infer_s3_compressionc                 C   s`   dD ]+\}}t d|j d| dd||d}t|tsJ |jr"J t|jd d | qd S )Nr2   r8   r9   r   rJ   )r
   rL   r   r:   rM   r@   r#   r#   r$   (test_parse_public_s3_bucket_nrows_python   s   
z/TestS3.test_parse_public_s3_bucket_nrows_pythonc                 C   sD   d}t jt|d td|d W d    d S 1 sw   Y  d S )N#The specified bucket does not existmatchzs3://nyqpug/asdf.csvrG   )r   raisesOSErrorr   )rA   rC   msgr#   r#   r$   test_read_s3_fails   s   "zTestS3.test_read_s3_failsc                 C   sJ   d}t jt|d td|j d W d    d S 1 sw   Y  d S )Nra   rb   r8   z	/file.csv)r   rd   re   r   r=   )rA   Zs3_private_bucketrC   rf   r#   r#   r$   test_read_s3_fails_private   s   "z!TestS3.test_read_s3_fails_privatezGH#39155 s3fs upgradeF)reasonstrictc                 C   sV   dd l }t|jjf}tj|dd |jd|d W d    d S 1 s$w   Y  d S )Nr   ra   rb   z/s3://an_s3_bucket_data_doesnt_exit/not_real.csvrG   )botocoreFileNotFoundError
exceptionsClientErrorr   rd   to_csvrA   r/   rC   rk   errorr#   r#   r$   test_write_s3_csv_fails   s   "zTestS3.test_write_s3_csv_failsc                 C   s`   t d dd l}t|jjf}t j|dd |jd|d W d    d S 1 s)w   Y  d S )Npyarrowr   ra   rb   z3s3://an_s3_bucket_data_doesnt_exit/not_real.parquetrG   )r   r<   rk   rl   rm   rn   rd   Z
to_parquetrp   r#   r#   r$   test_write_s3_parquet_fails  s   
"z"TestS3.test_write_s3_parquet_failsc                 C   sz   | d}t| d  }t|dd}W d    n1 s w   Y  t|ts,J |jr1J t|}t	|| d S )Nr.   Bodyutf8)r&   )
ZObjectr   getr   r   r>   r   r?   r   r   )rA   rB   Z	tips_fileZ	s3_objectbufferresultexpectedr#   r#   r$   $test_read_csv_handles_boto_s3_object  s   

z+TestS3.test_read_csv_handles_boto_s3_objectc           
   	   C   s   t tdtdd}t| db}|jd|d |j d}t	
d| d	}|jtjd
d+ td| d|d |jD ]}t	|| }	rVt|	ddk sVJ qAW d    n1 saw   Y  W d    d S W d    d S 1 syw   Y  d S )N)i    abcd)columnszutf-8zlarge-file.csv)Keyru   z/large-file.csvz^Fetch: z, 0-(?P<stop>\d+)$r1   )loggerr8   rT   rK   stopi z )r   npZzeroslistr   ro   encodeZ
put_objectr=   recompileZat_levelloggingDEBUGr   messagesrc   intgroup)
rA   Zs3_public_bucketZcaplogrC   r+   bufuriZmatch_relogrc   r#   r#   r$   test_read_csv_chunked_download#  s(   
"z%TestS3.test_read_csv_chunked_downloadc                 C   s&   t d|j d|d}t|| d S )Nr8   z/tips#1.csvrG   )r   r=   r   r   )rA   rB   r/   rC   ry   r#   r#   r$   test_read_s3_with_hash_in_key6  s   z$TestS3.test_read_s3_with_hash_in_keyc                 C   s8   t d t|}td|j d|d}t|| d S )Nrs   r8   z/simple_dataset.featherrG   )r   r<   r   r=   r   r   )rA   rB   Zfeather_filerC   rz   resr#   r#   r$   test_read_feather_s3_file_path=  s   
z%TestS3.test_read_feather_s3_file_pathN)__name__
__module____qualname__rF   rH   rP   rR   rS   rZ   r[   r^   r_   r`   rg   rh   r   markZxfailrr   rt   
single_cpur{   r   r   r   r#   r#   r#   r$   r0   L   s.    




r0   )"__doc__r   r   r   r   numpyr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   Zpandas._testingZ_testingr   Zpandas.io.feather_formatr   Zpandas.io.parsersr   r   filterwarningsZ
pytestmarknetworkr   Zparametrizer%   r,   Zfixturer/   ZusefixturesZskip_if_not_us_localer0   r#   r#   r#   r$   <module>   s8    

