o
    S+ i3)                     @   s  d dl Z d dlZd dlZd dlm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Zejdd 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 d+d,ejj+ej)d-d. Z/e0d/d0d1 Z1d2d3 Z2d4d5 Z3d6d7 Z4d8d9 Z5d:d; Z6d<d= Z7dS )>    N)using_string_dtype)
	DataFrame
date_rangeread_csv
read_excelread_feather	read_jsonread_parquetread_pickle
read_stata
read_table)_test_decoratorsz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                  c   sz    t d ddlm}  ddlm} ddlm} G dd d|}| d|d	d
 | V  |dd  d |j	d< |j
  d S )Nfsspecr   )register_implementation)MemoryFileSystem)	_registryc                       s(   e Zd ZdZdgZd fddZ  ZS )z fsspectest.<locals>.TestMemoryFStestmemNreturnc                    s(   | dd | jd< t jdi | d S )Ntestr    )popr   super__init__)selfkwargs	__class__r   g/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/pandas/tests/io/test_fsspec.pyr   '   s   z)fsspectest.<locals>.TestMemoryFS.__init__)r   N)__name__
__module____qualname__protocolr   r   __classcell__r   r   r   r   TestMemoryFS#   s    r#   r   T)clobber)pytestimportorskipr   r   Zfsspec.implementations.memoryr   fsspec.registryr   r   r   storeclear)r   r   registryr#   r   r   r   
fsspectest   s   

r+   c                   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   r   r   df12   s   
r7   c                  c   s*    t d} | d}|V  |j  d S )Nr   Zmemory)r%   r&   
filesystemr(   r)   )r   Zmemfsr   r   r   
cleared_fs>   s
   

r9   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.csvr4   )parse_dates)r3   to_csvencodeopenwriter   tmassert_frame_equal)r9   r7   textwdf2r   r   r   test_read_csvG   s   rH   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)r'   rI   r%   raises
ValueErrorr   setitemImportError)Zmonkeypatchr9   rI   err_msgr   r   r   test_reasonable_errorP   s   

"rS   c                 C   s.   |j ddd tddgdd}t|| d S )Nr=   Tr:   r4   r   r>   Z	index_col)r?   r   rC   rD   )r9   r7   rG   r   r   r   test_to_csv_   s   rU   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:   r4   r   rT   )r%   r&   to_excelr   rC   rD   )r9   r7   extpathrG   r   r   r   test_to_excelg   s   

r[   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<   rF   )modeTr:   rr4   r   rT   )	r%   r&   rA   r?   closedreplacer   rC   rD   )r9   r\   r7   r   rZ   r]   Zfsspec_objectrG   r   r   r   test_to_csv_fsspec_objectr   s"   
ra   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.csvr   Z	csv_writeFstorage_optionsr;   Zcsv_readrg   )r   r?   r   r   r+   dfr   r   r   test_csv_options   s   
rk   c                 C   rb   rc   )r   r?   r   r   ri   r   r   r   test_read_table_options   s   
rl   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 )NrV   rW   rd   r   ztestmem://test/test.r   rB   Frf   readrh   )r%   r&   r   rX   r   r   )r+   	extensionrj   rZ   r   r   r   test_excel_options   s   

ro   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)r9   r7   r   r   r   test_to_parquet_new_file   s   

ru   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 )rp   pyarrowrd   r   re   Nr   parquet_writerr   rs   rg   parquet_readrr   rg   r%   r&   r   rt   r   r	   ri   r   r   r   test_arrowparquet_options   s   
r}   c                 C   rv   )rp   rq   rd   r   re   Nr   rx   ry   rz   r{   r|   ri   r   r   r   test_fastparquet_options   s   
r~   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.csvrh   z/tips.csv.gzz/tips.csv.bz2r%   r&   rC   assert_equalr   name)s3_public_bucket_with_data	tips_files3sor   r   r   test_from_s3_csv   s&   
r   r!   )Zs3Zs3aZs3nc                 C   s4   t d tt| d| j d|dt| d S )Nr   z://r   rh   r   )r   r   r!   r   r   r   r   test_s3_protocols   s   
r   zTODO(infer_string) fastparquet)reasonc                 C   sT   t d t d d| j d}|j|ddd |d t|d|d}t|| d S )Nrq   r   r   z/test.parquetF)r;   rr   rs   rg   r{   )r%   r&   r   rt   r	   rC   r   )Zs3_public_bucketr   r7   fnrG   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 requiredrJ   r=   )r%   rN   rQ   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 )	Nrw   rd   r   testmem://mockfiler   Zfeather_writerh   Zfeather_read)r%   r&   r   Z
to_featherr   r   rC   rD   r+   rj   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 )Nrd   r   r   r   Zpickle_writerh   Zpickle_read)r   Z	to_pickler   r
   rC   rD   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 )Nrd   r   r   r   Z
json_write)rs   rg   Z	json_read)r   to_jsonr   r   rC   rD   )r+   rs   rj   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 )Nrd   r   r   r   Zstata_writeF)rg   Zwrite_indexZ
stata_readrh   Zint64)r   Zto_statar   r   rC   rD   Z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tabulaterd   r   r   r   Zmd_writerh   )r%   r&   r   Zto_markdownr   catri   r   r   r   test_markdown_optionsF  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 )
Nrw   rg   rJ   	localfilerd   Trh   r   Znonfsspecpath)
r%   r&   rN   rO   r   r	   ioBytesIOr   rt   )Zbyrj   r   r   r   test_non_fsspec_optionsN  s   
"r   )8r   numpyr5   r%   Zpandas._configr   Zpandasr   r   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingrC   Zpandas.utilr   tdmarkfilterwarningsZ
pytestmarkZfixturer+   r7   r9   rH   rS   rU   r[   Zparametrizera   rk   rl   ro   ru   r}   Z&skip_array_manager_not_yet_implementedr~   Z
single_cpur   r   Zxfailr   Zskip_if_installedr   r   r   r   r   r   r   r   r   r   r   <module>   s\    0


	

	



	