U
    ¾mœd>$  ã                   @   sà  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!e "d¡dd„ ƒZ#e "d¡dd „ ƒZ$ej%e "d¡d!d"„ ƒƒZ&ejj'e "d#¡d$d%„ ƒƒZ(ejj'ej d&d'd(d)g¡e "d#¡d*d+„ ƒƒƒZ)ejj'ej%e "d#¡e "d¡d,d-„ ƒƒƒƒZ*e +d.¡d/d0„ ƒZ,e "d¡d1d2„ ƒZ-d3d4„ Z.d5d6„ Z/d7d8„ Z0e "d9¡d:d;„ ƒZ1e "d¡d<d=„ ƒZ2dS )>é    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   úT/home/sam/Atlas/atlas_env/lib/python3.8/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   sT   t |jdd�ƒ ¡ }|  dd¡�}| |¡ W 5 Q R X 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   sl   ddl m} tjtdd�� tdƒ W 5 Q R X d}|  |dd|d	œ¡ tjt|d�� td
ƒ W 5 Q R X 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rFt‚W 5 Q R X | dd¡}|j||d�� }t|d	gd
d�}|jr†t‚W 5 Q R X t 	||¡ d S )Nr   r%   r$   r.   )ÚmodeTr"   Úrr   r   r<   )
r   r   r)   r'   ÚclosedÚAssertionErrorÚreplacer   r+   r,   )r!   rD   r   r   rB   rE   Zfsspec_objectr/   r   r   r   Útest_to_csv_fsspec_objectV   s    
ýrJ   c                 C   sZ   t ddgiƒ}|jdddidd� | jd dks4t‚tdddid	� | jd dksVt‚d S ©
NÚar   útestmem://test/test.csvÚtestZ	csv_writeF©Ústorage_optionsr#   Zcsv_read©rP   )r   r'   rN   rH   r   ©Ú
fsspectestÚdfr   r   r   Útest_csv_optionsl   s      ÿrU   c                 C   sZ   t ddgiƒ}|jdddidd� | jd dks4t‚tdddid	� | jd dksVt‚d S rK   )r   r'   rN   rH   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sLt‚t|dd
id� | jd d
ksnt‚d S )Nr>   r?   rL   r   ztestmem://test/test.rN   r*   FrO   ÚreadrQ   )r   r   r   r@   rN   rH   r   )rS   Ú	extensionrT   rB   r   r   r   Útest_excel_options�   s    

rY   Úfastparquetc                 C   s   |j ddddd� dS )úCRegression test for writing to a not-yet-existent GCS Parquet file.r%   TrZ   N)r#   ÚengineÚcompression)Ú
to_parquet)r!   r   r   r   r   Útest_to_parquet_new_file�   s       ÿr_   Úpyarrowc                 C   s^   t ddgiƒ}|jdddddid� | jd dks6t‚tdddd	id
� | jd d	ksZt‚dS )r[   rL   r   rM   r`   NrN   Úparquet_write©r\   r]   rP   Úparquet_read©r\   rP   ©r   r^   rN   rH   r   rR   r   r   r   Útest_arrowparquet_options—   s    üýrf   c                 C   s^   t ddgiƒ}|jdddddid� | jd dks6t‚tdddd	id
� | jd d	ksZt‚dS )r[   rL   r   rM   rZ   NrN   ra   rb   rc   rd   re   rR   r   r   r   Útest_fastparquet_optionsª   s    üýrg   Zs3fsc                 C   sL   t  td|d�t|ƒ¡ t  td|d�t|ƒ¡ t  td|d�t|ƒ¡ d S )Nzs3://pandas-test/tips.csvrQ   zs3://pandas-test/tips.csv.gzzs3://pandas-test/tips.csv.bz2©r+   Úassert_equalr   )Ús3_resourceÚ	tips_fileÚs3sor   r   r   Útest_from_s3_csv¾   s    
 ÿ
þ
þrm   ÚprotocolZs3Zs3aZs3nc                 C   s"   t  t|› d�|d�t|ƒ¡ d S )Nz://pandas-test/tips.csvrQ   rh   )rj   rk   rn   rl   r   r   r   Útest_s3_protocolsÏ   s    þro   c                 C   s6   d}|j |ddd |d� t|d|d�}t ||¡ d S )Nzs3://pandas-test/test.parquetFrZ   )r#   r\   r]   rP   rd   )r^   r   r+   ri   )rj   rl   r   Úfnr/   r   r   r   Útest_s3_parquetÙ   s        ÿrq   r   c               	   C   s*   d} t jt| d�� tdƒ W 5 Q R X d S )Nz?Missing optional dependency 'fsspec'|fsspec library is requiredr2   r%   )r   r6   r9   r   )Úmsgr   r   r   Útest_not_present_exceptionæ   s    rs   c                 C   sd   t ddgiƒ}|jdddid� | jd dks2t‚tdddid�}| jd dksTt‚t ||¡ d S )NrL   r   útestmem://afilerN   Zfeather_writerQ   Zfeather_read)r   Z
to_featherrN   rH   r   r+   r,   ©rS   rT   Úoutr   r   r   Útest_feather_optionsí   s    rw   c                 C   sd   t ddgiƒ}|jdddid� | jd dks2t‚tdddid�}| jd dksTt‚t ||¡ d S )NrL   r   rt   rN   Zpickle_writerQ   Zpickle_read)r   Z	to_picklerN   rH   r	   r+   r,   ru   r   r   r   Útest_pickle_options÷   s    rx   c                 C   sh   t ddgiƒ}|jd|ddid� | jd dks4t‚td|ddid�}| jd dksXt‚t ||¡ d S )NrL   r   rt   rN   Z
json_write)r]   rP   Z	json_read)r   Úto_jsonrN   rH   r   r+   r,   )rS   r]   rT   rv   r   r   r   Útest_json_options   s    ýýrz   c                 C   sl   t ddgiƒ}|jdddidd� | jd dks4t‚tdddid	�}| jd dksVt‚t || d
¡¡ d S )NrL   r   rt   rN   Zstata_writeF)rP   Zwrite_indexZ
stata_readrQ   Zint64)r   Zto_statarN   rH   r
   r+   r,   Zastyperu   r   r   r   Útest_stata_options  s      ÿr{   Útabulatec                 C   sD   t ddgiƒ}|jdddid� | jd dks2t‚|  d¡s@t‚d S )NrL   r   rt   rN   Zmd_writerQ   )r   Zto_markdownrN   rH   ÚcatrR   r   r   r   Útest_markdown_options  s    r~   c               	   C   sÄ   t jtdd�� tdddid� W 5 Q R X t jtdd�� tdddid� W 5 Q R X t ¡ } t jtdd�� t| ddid� W 5 Q R X tddgiƒ}t jtdd�� |jdddid� W 5 Q R X d S )	NrP   r2   Ú	localfilerL   TrQ   r   Znonfsspecpath)	r   r6   r7   r   r   ÚioÚBytesIOr   r^   )ZbyrT   r   r   r   Útest_non_fsspec_options$  s    r‚   )3r€   Ú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parametrizerJ   rU   rV   rY   Z
skip_if_nor_   rf   Z&skip_array_manager_not_yet_implementedrg   Z
single_cpurm   ro   rq   Zskip_if_installedrs   rw   rx   rz   r{   r~   r‚   r   r   r   r   Ú<module>   s`   0

	



	

		
