o
    Û­j3)  ã                   @   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   úX/var/www/html/CropPilot/venv/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   Údf12   s   
üÿr9   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.csvr6   )Úparse_dates)r5   Úto_csvÚencodeÚopenÚwriter   ÚtmÚassert_frame_equal)r=   r9   ÚtextÚwÚdf2r   r   r   Útest_read_csvG   s   ÿrL   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(   rM   r%   ÚraisesÚ
ValueErrorr   ÚsetitemÚImportError)Úmonkeypatchr=   rM   Úerr_msgr   r   r   Útest_reasonable_errorP   s   
ÿý
"ÿrZ   c                 C   s.   |j ddd� tddgdd�}t ||¡ d S )NrA   Tr>   r6   r   ©rB   Ú	index_col)rC   r   rG   rH   )r=   r9   rK   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>   r6   r   r[   )r%   r&   Úto_excelr   rG   rH   )r=   r9   ÚextÚpathrK   r   r   r   Útest_to_excelg   s   

rc   Ú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   rA   r@   rJ   )ÚmodeTr>   Úrr6   r   r[   )	r%   r&   rE   rC   ÚclosedÚreplacer   rG   rH   )r=   rd   r9   r   rb   re   Úfsspec_objectrK   r   r   r   Útest_to_csv_fsspec_objectr   s"   
þýúrj   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©rq   )r   rC   r   r   ©r,   Údfr   r   r   Útest_csv_optionsˆ   s   
ÿrv   c                 C   rk   rl   )r   rC   r   r   rt   r   r   r   Útest_read_table_options’   s   
ÿrw   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_   rm   r   ztestmem://test/test.r   rF   Frp   Úreadrs   )r%   r&   r   r`   r   r   )r,   Ú	extensionru   rb   r   r   r   Útest_excel_options�   s   

rz   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.ÚfastparquetrA   TN)r?   ÚengineÚcompression)r%   r&   Ú
to_parquet)r=   r9   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 )r{   Úpyarrowrm   r   rn   Nr   Úparquet_write©r}   r~   rq   Úparquet_read©r}   rq   ©r%   r&   r   r   r   r	   rt   r   r   r   Útest_arrowparquet_options´   s   
üýrˆ   c                 C   r�   )r{   r|   rm   r   rn   Nr   rƒ   r„   r…   r†   r‡   rt   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.csvrs   z/tips.csv.gzz/tips.csv.bz2©r%   r&   rG   Ú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Œ   rs   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 )Nr|   rŠ   r‹   z/test.parquetF)r?   r}   r~   rq   r†   )r%   r&   r�   r   r	   rG   rŽ   )Ús3_public_bucketr’   r9   ÚfnrK   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 requiredrO   rA   )r%   rT   rW   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‚   rm   r   útestmem://mockfiler   Úfeather_writers   Úfeather_read)r%   r&   r   Ú
to_featherr   r   rG   rH   ©r,   ru   Ú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 )Nrm   r   rž   r   Úpickle_writers   Úpickle_read)r   Ú	to_pickler   r
   rG   rH   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 )Nrm   r   rž   r   Ú
json_write)r~   rq   Ú	json_read)r   Úto_jsonr   r   rG   rH   )r,   r~   ru   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 )Nrm   r   rž   r   Ústata_writeF)rq   Úwrite_indexÚ
stata_readrs   Úint64)r   Úto_statar   r   rG   rH   Ú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Útabulaterm   r   rž   r   Úmd_writers   )r%   r&   r   Úto_markdownr   Úcatrt   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 s‰w   Y  d S )
Nr‚   rq   rO   Ú	localfilerm   Trs   r   Únonfsspecpath)
r%   r&   rT   rU   r   r	   ÚioÚBytesIOr   r   )Úbyru   r   r   r   Útest_non_fsspec_optionsN  s   
ÿþÿ"ÿr¾   )8r»   Únumpyr7   r%   Úpandas._configr   Úpandasr   r   r   r   r   r   r	   r
   r   r   Úpandas._testingÚ_testingrG   Úpandas.utilr   ÚtdÚmarkÚfilterwarningsÚ
pytestmarkÚfixturer,   r9   r=   rL   rZ   r]   rc   Úparametrizerj   rv   rw   rz   r€   rˆ   Ú&skip_array_manager_not_yet_implementedr‰   Ú
single_cpur“   r—   Úxfailr›   Úskip_if_installedr�   r¤   r¨   r¬   r³   r¸   r¾   r   r   r   r   Ú<module>   s\    0ÿ


	

	



	