a
    é´«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   sx   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dœ‡ fdd„Z‡  ZS )z fsspectest.<locals>.TestMemoryFSÚtestmemN)Úreturnc                    s(   |  dd ¡| jd< tƒ jf i |¤Ž d S )NÚtestr   )Úpopr   ÚsuperÚ__init__)ÚselfÚkwargs©Ú	__class__© úZ/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/test_fsspec.pyr   '   s    z)fsspectest.<locals>.TestMemoryFS.__init__)Ú__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@0    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 s80    Y  d}|  |dd|d	œ¡ tjt|d�� td
ƒ W d   ƒ n1 s†0    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rFJ ‚W d   ƒ n1 sZ0    Y  | dd¡}|j||d��*}t|d	gd
d�}|jršJ ‚W d   ƒ n1 s®0    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   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.csvr   Z	csv_writeF©Ústorage_optionsr;   Zcsv_read©rf   )r   r?   r   r   ©r+   Údfr   r   r   Útest_csv_optionsˆ   s    
ÿrj   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 rb   )r   r?   r   r   rh   r   r   r   Útest_read_table_options’   s    
ÿrk   c                 C   sr   t  d¡ d}tddgiƒ}d|› �}|j|ddidd	� | jd dksLJ ‚t|dd
id� | jd d
ksnJ ‚d S )NrV   rW   rc   r   ztestmem://test/test.r   rB   Fre   Úreadrg   )r%   r&   r   rX   r   r   )r+   Ú	extensionri   rZ   r   r   r   Útest_excel_options�   s    

rn   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    
ÿrt   c                 C   sh   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sdJ ‚dS )ro   Úpyarrowrc   r   rd   Nr   Úparquet_write©rq   rr   rf   Úparquet_read©rq   rf   ©r%   r&   r   rs   r   r	   rh   r   r   r   Útest_arrowparquet_options´   s    
üýr{   c                 C   sh   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sdJ ‚dS )ro   rp   rc   r   rd   Nr   rv   rw   rx   ry   rz   rh   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.csvrg   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   rg   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 )Nrp   r}   r~   z/test.parquetF)r;   rq   rr   rf   ry   )r%   r&   r‚   rs   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   ƒ n1 s00    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 )	Nru   rc   r   útestmem://mockfiler   Zfeather_writerg   Zfeather_read)r%   r&   r   Z
to_featherr   r   rC   rD   ©r+   ri   Ú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 )Nrc   r   r�   r   Zpickle_writerg   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s4J ‚td|ddid�}| jd dksXJ ‚t ||¡ d S )Nrc   r   r�   r   Z
json_write)rr   rf   Z	json_read)r   Úto_jsonr   r   rC   rD   )r+   rr   ri   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 )Nrc   r   r�   r   Zstata_writeF)rf   Zwrite_indexZ
stata_readrg   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¡sJJ ‚d S )NÚtabulaterc   r   r�   r   Zmd_writerg   )r%   r&   r   Zto_markdownr   Úcatrh   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>0    Y  t jtdd��  tdddid� W d   ƒ n1 s|0    Y  t ¡ } t jtdd��  t| ddid� W d   ƒ n1 sÂ0    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 )
Nru   rf   rJ   Ú	localfilerc   Trg   r   Znonfsspecpath)
r%   r&   rN   rO   r   r	   ÚioÚBytesIOr   rs   )Zbyri   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   rj   rk   rn   rt   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>   sZ   0ÿ


	

	



	