o
    �¨Êh²(  ã                   @   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¡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j'd*d+„ ƒƒZ,e -d,¡d-d.„ ƒZ.d/d0„ Z/d1d2„ Z0d3d4„ Z1d5d6„ Z2d7d8„ Z3d9d:„ Z4dS );é    N)
Ú	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   úM/var/www/html/env/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   Ú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é   )Úperiods)ÚintÚfloatÚstrÚdt)r   ÚnpÚnanr   r   r   r   r   Údf10   s   
üÿr8   c                  c   s*   � t  d¡} |  d¡}|V  |j ¡  d S )Nr   Úmemory)r$   r%   Ú
filesystemr(   r)   )r   Ú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.csvr5   )Úparse_dates)r4   Úto_csvÚencodeÚopenÚwriter   ÚtmÚassert_frame_equal)r<   r8   ÚtextÚwÚdf2r   r   r   Útest_read_csvE   s   ÿrK   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_implementationsÚnosuchprotocol©Úmatchznosuchprotocol://test/test.csvztest error messageÚ
couldexistzunimportable.CouldExist)ÚclassÚerrzcouldexist://test/test.csv)r'   rL   r$   ÚraisesÚ
ValueErrorr   ÚsetitemÚImportError)Úmonkeypatchr<   rL   Úerr_msgr   r   r   Útest_reasonable_errorN   s   
ÿý
"ÿrY   c                 C   s.   |j ddd� tddgdd�}t ||¡ d S )Nr@   Tr=   r5   r   ©rA   Ú	index_col)rB   r   rF   rG   )r<   r8   rJ   r   r   r   Útest_to_csv]   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=   r5   r   rZ   )r$   r%   Úto_excelr   rF   rG   )r<   r8   ÚextÚpathrJ   r   r   r   Útest_to_excele   s   

rb   Ú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?   rI   )ÚmodeTr=   Úrr5   r   rZ   )	r$   r%   rD   rB   ÚclosedÚreplacer   rF   rG   )r<   rc   r8   r   ra   rd   Úfsspec_objectrJ   r   r   r   Útest_to_csv_fsspec_objectp   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.csvr   Ú	csv_writeF©Ústorage_optionsr>   Úcsv_read©rp   )r   rB   r   r   ©r+   Údfr   r   r   Útest_csv_options†   s   
ÿru   c                 C   rj   rk   )r   rB   r   r   rs   r   r   r   Útest_read_table_options�   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.r   rE   Fro   Úreadrr   )r$   r%   r   r_   r   r   )r+   Ú	extensionrt   ra   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<   r8   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   Nr   Úparquet_write©r|   r}   rp   Úparquet_read©r|   rp   ©r$   r%   r   r~   r   r   rs   r   r   r   Útest_arrowparquet_options²   s   
üýr‡   c                 C   r€   )rz   r{   rl   r   rm   Nr   r‚   rƒ   r„   r…   r†   rs   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.csvrr   z/tips.csv.gzz/tips.csv.bz2©r$   r%   rF   Úassert_equalr   Úname)Ús3_public_bucket_with_dataÚ	tips_fileÚs3sor   r   r   Útest_from_s3_csvÚ   s&   
ÿüÿüÿür’   r    )Ús3Ús3aÚs3nc                 C   s4   t  d¡ t t|› d| j› d�|d�t|ƒ¡ d S )Nr‰   z://r‹   rr   rŒ   )r�   r�   r    r‘   r   r   r   Útest_s3_protocolsò   s   
þûr–   c                 C   sT   t  d¡ t  d¡ d| j› d�}|j|ddd |d� t|d|d�}t ||¡ d S )Nr{   r‰   rŠ   z/test.parquetF)r>   r|   r}   rp   r…   )r$   r%   rŽ   r~   r   rF   r�   )Ús3_public_bucketr‘   r8   ÚfnrJ   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 requiredrN   r@   )r$   rS   rV   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 )	Nr�   rl   r   útestmem://mockfiler   Úfeather_writerr   Úfeather_read)r$   r%   r   Ú
to_featherr   r   rF   rG   ©r+   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   rœ   r   Úpickle_writerr   Úpickle_read)r   Ú	to_pickler   r	   rF   rG   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 )Nrl   r   rœ   r   Ú
json_write)r}   rp   Ú	json_read)r   Úto_jsonr   r   rF   rG   )r+   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   rœ   r   Ústata_writeF)rp   Úwrite_indexÚ
stata_readrr   Úint64)r   Úto_statar   r
   rF   rG   Úastyper    r   r   r   Útest_stata_options8  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   rœ   r   Úmd_writerr   )r$   r%   r   Úto_markdownr   Úcatrs   r   r   r   Útest_markdown_optionsC  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 s‰w   Y  d S )
Nr�   rp   rN   Ú	localfilerl   Trr   r   Únonfsspecpath)
r$   r%   rS   rT   r   r   ÚioÚBytesIOr   r~   )Úbyrt   r   r   r   Útest_non_fsspec_optionsK  s   
ÿþÿ"ÿr¼   )5r¹   Únumpyr6   r$   Úpandasr   r   r   r   r   r   r   r	   r
   r   Úpandas._testingÚ_testingrF   Úpandas.utilr   ÚtdÚmarkÚfilterwarningsÚ
pytestmarkÚfixturer+   r8   r<   rK   rY   r\   rb   Úparametrizeri   ru   rv   ry   r   r‡   Ú&skip_array_manager_not_yet_implementedrˆ   Ú
single_cpur’   r–   r™   Úskip_if_installedr›   r¢   r¦   rª   r±   r¶   r¼   r   r   r   r   Ú<module>   sX    0ÿ


	

	



	