a
    j=ic%                     @   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ejdddgdd Zejdddgdd Zdd Zdd Z ejdddgdd Z!e"dd d! Z#ej"d"d#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,g d-e"d)d.d/ Z)ejj'ej%e"d)e"dd0d1 Z*e+d2d3d4 Z,e"d"d5d6 Z-d7d8 Z.d9d: Z/d;d< Z0e"d=d>d? Z1e"d"d@dA Z2dS )B    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   l/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/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@0    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} ddlm} |j  tjtdd t	d W d    n1 sN0    Y  d}| 
|dd	|d
 tjt|d t	d W d    n1 s0    Y  d S )Nr   )registry)known_implementationsZnosuchprotocolmatchznosuchprotocol://test/test.csvztest error messageZ
couldexistzunimportable.CouldExist)classerrzcouldexist://test/test.csv)r   r1   Zfsspec.registryr2   targetr    r   raises
ValueErrorr   setitemImportError)Zmonkeypatchr!   r1   r2   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_csvE   s    r?   extxlsZxlsxc                 C   sV   |dkrt d n
t d d| }|j|dd t|dgdd	}t|| d S )
NrA   xlwtopenpyxlzmemory://test/test.Tr"   r   r   r>   )r   r   to_excelr   r+   r,   )r!   r@   r   pathr/   r   r   r   test_to_excelM   s    

rF   binary_modeFTc                 C   s   t d}d}|rdnd}|j||d }|j|dd |jrDJ |  |dd}|j||d }t|d	gd
d}|jrJ |  t	|| d S )Nr   r%   r$   r.   )modeTr"   rr   r   r>   )
r   r   r)   r'   closedclosereplacer   r+   r,   )r!   rG   r   r   rE   rH   Zfsspec_objectr/   r   r   r   test_to_csv_fsspec_object\   s"    


rM   c                 C   sZ   t ddgi}|jdddidd | jd dks4J tdddid	 | jd dksVJ d S 
Nar   testmem://test/test.csvtestZ	csv_writeFstorage_optionsr#   Zcsv_readrS   )r   r'   rQ   r   
fsspectestdfr   r   r   test_csv_optionsv   s    
rX   c                 C   sZ   t ddgi}|jdddidd | jd dks4J tdddid	 | jd dksVJ d S rN   )r   r'   rQ   r   rU   r   r   r   test_read_table_options   s    
rY   	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 )NrA   rB   rC   rO   r   ztestmem://test/test.rQ   r*   FrR   readrT   )r   r   r   rD   rQ   r   )rV   rZ   rW   rE   r   r   r   test_excel_options   s    

r\   fastparquetc                 C   s   |j ddddd dS )CRegression test for writing to a not-yet-existent GCS Parquet file.r%   Tr]   N)r#   enginecompression)
to_parquet)r!   r   r   r   r   test_to_parquet_new_file   s    rb   pyarrow2)min_versionc                 C   s^   t ddgi}|jdddddid | jd dks6J tdddd	id
 | jd d	ksZJ dS )r^   rO   r   rP   rc   NrQ   parquet_writer_   r`   rS   parquet_readr_   rS   r   ra   rQ   r   rU   r   r   r   test_arrowparquet_options   s    rk   c                 C   s^   t ddgi}|jdddddid | jd dks6J tdddd	id
 | jd d	ksZJ dS )r^   rO   r   rP   r]   NrQ   rf   rg   rh   ri   rj   rU   r   r   r   test_fastparquet_options   s    rl   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.csvrT   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    

rr   protocol)Zs3Zs3aZs3nc                 C   s    t td| |dt| d S )Nz%s://pandas-test/tips.csvrT   rm   )ro   rp   rs   rq   r   r   r   test_s3_protocols   s    rt   c                 C   s6   d}|j |ddd |d t|d|d}t|| d S )Nzs3://pandas-test/test.parquetFr]   )r#   r_   r`   rS   ri   )ra   r   r+   rn   )ro   rq   r   fnr/   r   r   r   test_s3_parquet   s    
rv   r   c                  C   s>   d} t jt| d td W d    n1 s00    Y  d S )Nz?Missing optional dependency 'fsspec'|fsspec library is requiredr3   r%   )r   r8   r;   r   )msgr   r   r   test_not_present_exception   s    rx   c                 C   sd   t ddgi}|jdddid | jd dks2J tdddid}| jd dksTJ t|| d S )NrO   r   testmem://afilerQ   Zfeather_writerT   Zfeather_read)r   Z
to_featherrQ   r   r+   r,   rV   rW   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s2J tdddid}| jd dksTJ t|| d S )NrO   r   ry   rQ   Zpickle_writerT   Zpickle_read)r   Z	to_picklerQ   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s4J td|ddid}| jd dksXJ t|| d S )NrO   r   ry   rQ   Z
json_write)r`   rS   Z	json_read)r   to_jsonrQ   r   r+   r,   )rV   r`   rW   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s4J tdddid	}| jd dksVJ t||d
 d S )NrO   r   ry   rQ   Zstata_writeF)rS   Zwrite_indexZ
stata_readrT   int64)r   Zto_statarQ   r
   r+   r,   Zastyperz   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s2J | ds@J d S )NrO   r   ry   rQ   Zmd_writerT   )r   Zto_markdownrQ   catrU   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 s40    Y  t jtdd  tdddid W d    n1 sr0    Y  t } t jtdd  t| ddid W d    n1 s0    Y  tddgi}t jtdd" |jdddid W d    n1 s0    Y  d S )	NrS   r3   	localfilerO   TrT   r   Znonfsspecpath)	r   r8   r9   r   r   ioBytesIOr   ra   )ZbyrW   r   r   r   test_non_fsspec_options1  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?   markZparametrizerF   rM   rX   rY   r\   Z
skip_if_norb   rk   Z&skip_array_manager_not_yet_implementedrl   Z
single_cpurr   rt   rv   Zskip_if_installedrx   r|   r}   r   r   r   r   r   r   r   r   <module>   sd   0

	





	

		
