o
    Ti%                     @   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   )Zperiods)intfloatstrdt)r   npnanr    r   r   [/var/www/html/evchargy.com/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fsspecZmemory)pytestimportorskip
filesystemstoreclear)r   Z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   r0   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_implementationsZnosuchprotocolmatchznosuchprotocol://test/test.csvztest error messageZ
couldexistzunimportable.CouldExist)classerrzcouldexist://test/test.csv)Zfsspec.registryr1   r   raises
ValueErrorr   setitemImportError)Zmonkeypatchr!   r1   err_msgr   r   r   test_reasonable_error4   s   

"r;   c                 C   s.   |j ddd tddgdd}t|| d S )Nr%   Tr"   r   r   r&   Z	index_col)r'   r   r+   r,   )r!   r   r/   r   r   r   test_to_csvC   s   r=   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   r<   )r   r   to_excelr   r+   r,   )r!   r   extpathr/   r   r   r   test_to_excelK   s   

rC   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$   r.   )modeTr"   rr   r   r<   )	r   r   r)   r'   closedreplacer   r+   r,   )r!   rD   r   r   rB   rE   Zfsspec_objectr/   r   r   r   test_to_csv_fsspec_objectV   s"   
rI   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testZ	csv_writeFstorage_optionsr#   Zcsv_readrP   )r   r'   rN   r   
fsspectestdfr   r   r   test_csv_optionsl   s   
rU   c                 C   rJ   rK   )r   r'   rN   r   rR   r   r   r   test_read_table_optionsv   s   
rV   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 )Nr>   r?   rL   r   ztestmem://test/test.rN   r*   FrO   readrQ   )r   r   r   r@   rN   r   )rS   	extensionrT   rB   r   r   r   test_excel_options   s   

rY   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   

r_   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 )rZ   pyarrowrL   r   rM   NrN   parquet_writer\   r]   rP   parquet_readr\   rP   r   r   r   r^   rN   r   rR   r   r   r   test_arrowparquet_options   s   
rg   c                 C   r`   )rZ   r[   rL   r   rM   NrN   rb   rc   rd   re   rf   rR   r   r   r   test_fastparquet_options   s   
rh   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.csvrQ   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&   
rr   protocol)Zs3Zs3aZs3nc                 C   s4   t d tt| d| j d|dt| d S )Nri   z://rk   rQ   rl   )ro   rp   rs   rq   r   r   r   test_s3_protocols   s   
rt   c                 C   sT   t d t d d| j d}|j|ddd |d t|d|d}t|| d S )Nr[   ri   rj   z/test.parquetF)r#   r\   r]   rP   re   )r   r   rn   r^   r   r+   rm   )Zs3_public_bucketrq   r   fnr/   r   r   r   test_s3_parquet   s   


rv   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 requiredr2   r%   )r   r6   r9   r   )msgr   r   r   test_not_present_exception   s   
"rx   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 )	Nra   rL   r   testmem://mockfilerN   Zfeather_writerQ   Zfeather_read)r   r   r   Z
to_featherrN   r   r+   r,   rS   rT   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 )NrL   r   ry   rN   Zpickle_writerQ   Zpickle_read)r   Z	to_picklerN   r	   r+   r,   rz   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 )NrL   r   ry   rN   Z
json_write)r]   rP   Z	json_read)r   to_jsonrN   r   r+   r,   )rS   r]   rT   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 )NrL   r   ry   rN   Zstata_writeF)rP   Zwrite_indexZ
stata_readrQ   Zint64)r   Zto_statarN   r
   r+   r,   Zastyperz   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tabulaterL   r   ry   rN   Zmd_writerQ   )r   r   r   Zto_markdownrN   catrR   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 )
Nra   rP   r2   	localfilerL   TrQ   r   Znonfsspecpath)
r   r   r6   r7   r   r   ioBytesIOr   r^   )ZbyrT   r   r   r   test_non_fsspec_options1  s   
"r   )2r   numpyr   r   Zpandasr   r   r   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr+   Zpandas.utilr   tdZfixturer   r!   r0   r;   r=   rC   markZparametrizerI   rU   rV   rY   r_   rg   Z&skip_array_manager_not_yet_implementedrh   Z
single_cpurr   rt   rv   Zskip_if_installedrx   r|   r}   r   r   r   r   r   r   r   r   <module>   sN    0

	

	



	