o
    ҷh%                     @   sz  d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZ ejdd Zejdd Zdd	 Zd
d Zdd Zdd Zejdddgdd Zdd Zdd Z dd Z!dd Z"dd Z#ej$dd  Z%ejj&d!d" Z'ejj&ejd#g d$d%d& Z(ejj&ej$d'd( Z)e*d)d*d+ Z+d,d- Z,d.d/ Z-d0d1 Z.d2d3 Z/d4d5 Z0d6d7 Z1dS )8    N)
	DataFrame
date_rangeread_csv
read_excelread_feather	read_jsonread_parquetread_pickle
read_stata
read_table)_test_decoratorsc                   C   s(   t ddgdtjgddgtdddd	S )
N      g       @tsz
2018-06-18   )periods)intfloatstrdt)r   npnanr    r   r   N/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/io/test_fsspec.pydf1   s   
r   c                  c   s*    t d} | d}|V  |j  d S )Nfsspecmemory)pytestimportorskip
filesystemstoreclear)r   memfsr   r   r   
cleared_fs"   s
   

r$   c                 C   sh   t |jdd }| dd}|| W d    n1 s w   Y  tddgd}t|| d S )NFindexztest/test.csvwbmemory://test/test.csvr   )parse_dates)r   to_csvencodeopenwriter   tmassert_frame_equal)r$   r   textwdf2r   r   r   test_read_csv+   s   r3   c                 C   s   ddl m} tjtdd td W d    n1 sw   Y  d}| |dd|d	 tjt|d td
 W d    d S 1 sDw   Y  d S )Nr   )known_implementationsnosuchprotocolmatchznosuchprotocol://test/test.csvztest error message
couldexistzunimportable.CouldExist)classerrzcouldexist://test/test.csv)fsspec.registryr4   r   raises
ValueErrorr   setitemImportError)monkeypatchr$   r4   err_msgr   r   r   test_reasonable_error4   s   

"rB   c                 C   s.   |j ddd tddgdd}t|| d S )Nr(   Tr%   r   r   r)   	index_col)r*   r   r.   r/   )r$   r   r2   r   r   r   test_to_csvC   s   rE   c                 C   sF   t d d}d| }|j|dd t|dgdd}t|| d S )	Nopenpyxlxlsxzmemory://test/test.Tr%   r   r   rC   )r   r   to_excelr   r.   r/   )r$   r   extpathr2   r   r   r   test_to_excelK   s   

rK   binary_modeFTc                 C   s   t d}d}|rdnd}|j||d }|j|dd |jr#J W d    n1 s-w   Y  |dd}|j||d}t|d	gd
d}|jrMJ W d    n1 sWw   Y  t|| d S )Nr   r(   r'   r1   )modeTr%   rr   r   rC   )	r   r   r,   r*   closedreplacer   r.   r/   )r$   rL   r   r   rJ   rM   fsspec_objectr2   r   r   r   test_to_csv_fsspec_objectV   s"   
rR   c                 C   Z   t ddgi}|jdddidd | jd dksJ tdddid	 | jd dks+J d S 
Nar   testmem://test/test.csvtest	csv_writeFstorage_optionsr&   csv_readrZ   )r   r*   rW   r   
fsspectestdfr   r   r   test_csv_optionsl   s   
r`   c                 C   rS   rT   )r   r*   rW   r   r]   r   r   r   test_read_table_optionsv   s   
ra   c                 C   sr   t d d}tddgi}d| }|j|ddidd	 | jd dks&J t|dd
id | jd d
ks7J d S )NrF   rG   rU   r   ztestmem://test/test.rW   r-   FrY   readr\   )r   r   r   rH   rW   r   )r^   	extensionr_   rJ   r   r   r   test_excel_options   s   

rd   c                 C   s    t d |jddddd dS )CRegression test for writing to a not-yet-existent GCS Parquet file.fastparquetr(   TN)r&   enginecompression)r   r   
to_parquet)r$   r   r   r   r   test_to_parquet_new_file   s   

rj   c                 C   h   t d tddgi}|jdddddid | jd dks J tdddd	id
 | jd d	ks2J dS )re   pyarrowrU   r   rV   NrW   parquet_writerg   rh   rZ   parquet_readrg   rZ   r   r   r   ri   rW   r   r]   r   r   r   test_arrowparquet_options   s   
rr   c                 C   rk   )re   rf   rU   r   rV   NrW   rm   rn   ro   rp   rq   r]   r   r   r   test_fastparquet_options   s   
rs   c                 C   st   t d ttd| j d|dt| ttd| j d|dt| ttd| j d|dt| d S )Ns3fss3://	/tips.csvr\   z/tips.csv.gzz/tips.csv.bz2r   r   r.   assert_equalr   name)s3_public_bucket_with_data	tips_files3sor   r   r   test_from_s3_csv   s&   
r}   protocol)s3s3as3nc                 C   s4   t d tt| d| j d|dt| d S )Nrt   z://rv   r\   rw   )rz   r{   r~   r|   r   r   r   test_s3_protocols   s   
r   c                 C   sT   t d t d d| j d}|j|ddd |d t|d|d}t|| d S )Nrf   rt   ru   z/test.parquetF)r&   rg   rh   rZ   rp   )r   r   ry   ri   r   r.   rx   )s3_public_bucketr|   r   fnr2   r   r   r   test_s3_parquet   s   


r   r   c                  C   s@   d} t jt| d td W d    d S 1 sw   Y  d S )Nz?Missing optional dependency 'fsspec'|fsspec library is requiredr6   r(   )r   r<   r?   r   )msgr   r   r   test_not_present_exception   s   
"r   c                 C   sn   t d tddgi}|jdddid | jd dksJ tdddid}| jd dks/J t|| d S )	Nrl   rU   r   testmem://mockfilerW   feather_writer\   feather_read)r   r   r   
to_featherrW   r   r.   r/   r^   r_   outr   r   r   test_feather_options   s   
r   c                 C   sd   t ddgi}|jdddid | jd dksJ tdddid}| jd dks*J t|| d S )NrU   r   r   rW   pickle_writer\   pickle_read)r   	to_picklerW   r	   r.   r/   r   r   r   r   test_pickle_options  s   r   c                 C   sh   t ddgi}|jd|ddid | jd dksJ td|ddid}| jd dks,J t|| d S )NrU   r   r   rW   
json_write)rh   rZ   	json_read)r   to_jsonrW   r   r.   r/   )r^   rh   r_   r   r   r   r   test_json_options  s   r   c                 C   sl   t ddgi}|jdddidd | jd dksJ tdddid	}| jd dks+J t||d
 d S )NrU   r   r   rW   stata_writeF)rZ   write_index
stata_readr\   int64)r   to_statarW   r
   r.   r/   astyper   r   r   r   test_stata_options  s   
r   c                 C   sN   t d tddgi}|jdddid | jd dksJ | ds%J d S )NtabulaterU   r   r   rW   md_writer\   )r   r   r   to_markdownrW   catr]   r   r   r   test_markdown_options)  s
   
r   c                  C   s   t d t jtdd tdddid W d    n1 sw   Y  t jtdd tdddid W d    n1 s>w   Y  t } t jtdd t| ddid W d    n1 saw   Y  tddgi}t jtdd |j	d	ddid W d    d S 1 sw   Y  d S )
Nrl   rZ   r6   	localfilerU   Tr\   r   nonfsspecpath)
r   r   r<   r=   r   r   ioBytesIOr   ri   )byr_   r   r   r   test_non_fsspec_options1  s   
"r   )2r   numpyr   r   pandasr   r   r   r   r   r   r   r	   r
   r   pandas._testing_testingr.   pandas.utilr   tdfixturer   r$   r3   rB   rE   rK   markparametrizerR   r`   ra   rd   rj   rr   &skip_array_manager_not_yet_implementedrs   
single_cpur}   r   r   skip_if_installedr   r   r   r   r   r   r   r   r   r   r   <module>   sN    0

	

	



	