o
    gz#                     @   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 d dlmZ d dlmZ eddgdejgddged	d
ddZeejdd Zejdd Zdd Zdd Zdd Zej dddgdd Z!ej dddgdd Z"d d! Z#ej d"ddgd#d$ Z$e%d%d&d' Z&e%d(d)d* Z'ej(e%d%d+d, Z)e%d-d.d/ Z*ej d0g d1e%d-d2d3 Z+ej(e%d-e%d%d4d5 Z,e-d6d7d8 Z.e%d(d9d: Z/d;d< Z0d=d> Z1d?d@ Z2e%dAdBdC Z3e%d(dDdE Z4dS )F    N)		DataFrame
date_rangeread_csv
read_excelread_feather	read_jsonread_parquetread_pickle
read_stata)_test_decorators      g       @tsz
2018-06-18   )periods)intfloatstrdtFindexc                  c   s*    t d} | d}|V  |j  d S )Nfsspecmemory)pytestimportorskip
filesystemstoreclear)r   memfs r    Y/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/io/test_fsspec.py
cleared_fs   s
   

r"   c                 C   s:   ddl m} |td| jd< tddgd}tt| d S )Nr   )
MemoryFile)dataztest/test.csvmemory://test/test.csvr   )parse_dates)fsspec.implementations.memoryr#   textr   r   tmassert_frame_equaldf1)r"   r#   df2r    r    r!   test_read_csv(   s   r-   c                 C   s   ddl m} ddlm} |j  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 sOw   Y  d S )Nr   )registry)known_implementationsnosuchprotocolmatchznosuchprotocol://test/test.csvztest error message
couldexistzunimportable.CouldExist)classerrzcouldexist://test/test.csv)r   r.   fsspec.registryr/   targetr   r   raises
ValueErrorr   setitemImportError)monkeypatchr"   r.   r/   err_msgr    r    r!   test_reasonable_error1   s   


"r>   c                 C   s.   t jddd tddgdd}tt | d S )Nr%   Tr   r   r   r&   	index_col)r+   to_csvr   r)   r*   )r"   r,   r    r    r!   test_to_csvB   s   rB   extxlsxlsxc                 C   sV   |dkr
t d nt d d| }tj|dd t|dgdd	}tt| d S )
NrD   xlwtopenpyxlzmemory://test/test.Tr   r   r   r?   )r   r   r+   to_excelr   r)   r*   )r"   rC   pathr,   r    r    r!   test_to_excelJ   s   

rJ   binary_modeTc                 C   s   t d}d}|rdnd}|j||d }tj|dd |jr"J |  |dd}|j||d }t|d	gd
d}|jrBJ |  t	
t| d S )Nr   r%   wbw)modeTr   rr   r   r?   )r   r   openr+   rA   closedclosereplacer   r)   r*   )r"   rK   r   rI   rN   fsspec_objectr,   r    r    r!   test_to_csv_fsspec_objectY   s"   


rU   c                 C   sZ   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r[   )r   rA   rX   r   
fsspectestdfr    r    r!   test_csv_optionss   s   
ra   	extensionc                 C   s   |dkr
t d nt 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s?J d S )NrD   rF   rG   rV   r   ztestmem://test/test.rX   writeFrZ   readr]   )r   r   r   rH   rX   r   )r_   rb   r`   rI   r    r    r!   test_excel_options}   s   

re   fastparquetc                 C   s   t jddddd dS )CRegression test for writing to a not-yet-existent GCS Parquet file.r%   Trf   N)r   enginecompression)r+   
to_parquet)r<   r"   r    r    r!   test_to_parquet_new_file   s   
rk   pyarrowc                 C   ^   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s-J dS )rg   rV   r   rW   rl   NrX   parquet_writerh   ri   r[   parquet_readrh   r[   r   rj   rX   r   r^   r    r    r!   test_arrowparquet_options   s   rs   c                 C   rm   )rg   rV   r   rW   rf   NrX   rn   ro   rp   rq   rr   r^   r    r    r!   test_fastparquet_options   s   rt   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.csvr]   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   

r{   protocol)s3s3as3nc                 C   s    t td| |dt| d S )Nz%s://pandas-test/tips.csvr]   rv   )rx   ry   r|   rz   r    r    r!   test_s3_protocols   s   r   c                 C   s6   d}t j|ddd |d t|d|d}tt | d S )Nzs3://pandas-test/test.parquetFrf   )r   rh   ri   r[   rq   )r+   rj   r   r)   rw   )rx   rz   fnr,   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 requiredr1   r%   )r   r8   r;   r   )msgr    r    r!   test_not_present_exception   s   
"r   c                 C   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 )NrV   r   testmem://afilerX   feather_writer]   feather_read)r   
to_featherrX   r   r)   r*   r_   r`   outr    r    r!   test_feather_options   s   r   c                 C   r   )NrV   r   r   rX   pickle_writer]   pickle_read)r   	to_picklerX   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 )NrV   r   r   rX   
json_write)ri   r[   	json_read)r   to_jsonrX   r   r)   r*   )r_   ri   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 )NrV   r   r   rX   stata_writeF)r[   write_index
stata_readr]   int64)r   to_statarX   r
   r)   r*   astyper   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sJ | ds J d S )NrV   r   r   rX   md_writer]   afile)r   to_markdownrX   catr^   r    r    r!   test_markdown_options  s   r   c                  C   s  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 s9w   Y  t } t jtdd t| ddid W d    n1 s\w   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 )	Nr[   r1   	localfilerV   Tr]   r   nonfsspecpath)	r   r8   r9   r   r   ioBytesIOr   rj   )byr`   r    r    r!   test_non_fsspec_options   s   "r   )5r   numpynpr   pandasr   r   r   r   r   r   r   r	   r
   pandas._testing_testingr)   pandas.utilr   tdnanr+   r   rA   encoder(   fixturer"   r-   r>   rB   markparametrizerJ   rU   ra   re   
skip_if_nork   rs   &skip_array_manager_not_yet_implementedrt   r{   r   r   skip_if_installedr   r   r   r   r   r   r   r    r    r    r!   <module>   sj    ,

	






	

		
