o
    Û­j™  ã                   @   s–  d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
m  mZ d dlm  mZ d dlmZ ejdd„ ƒZejdd„ ƒZejdd	„ ƒZejd
d„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZ ejdd„ ƒZ!ddd d!d"d#d$d%d&d'ej"d(e #d)¡d*�ej"d+e #d)¡d*�gZ$eje$d,d… d-�d.d/„ ƒZ%eje$d-�d0d1„ ƒZ&dS )2é    N)Úis_ci_environmentÚis_platform_armÚis_platform_macÚis_platform_windows©Úread_csvc                   C   s   dd„ t j ¡ D ƒS )Nc                 S   s   i | ]\}}||“qS © r   )Ú.0ÚkeyÚvaluer   r   úU/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/io/conftest.pyÚ
<dictcomp>   s    z,compression_to_extension.<locals>.<dictcomp>)ÚicomÚextension_to_compressionÚitemsr   r   r   r   Úcompression_to_extension   s   r   c                 C   ó   | ddddƒS )zPath to the tips datasetÚioÚdataÚcsvútips.csvr   ©Údatapathr   r   r   Ú	tips_file   ó   r   c                 C   r   )zPath to a JSONL datasetr   Úparserr   úitems.jsonlr   r   r   r   r   Ú
jsonl_file   r   r   c                 C   s   t | ddddƒdd�S )z#DataFrame with the salaries datasetr   r   r   zsalaries.csvú	)Úsepr   r   r   r   r   Úsalaries_table%   s   r    c                 C   r   )Nr   r   Úfeatherzfeather-0_3_1.featherr   r   r   r   r   Úfeather_file+   ó   r"   c                 C   r   )Nr   r   Úxmlú	books.xmlr   r   r   r   r   Úxml_file0   r#   r&   c              	   c   sN  � t  d¡ t  d¡ | dd¡ | dd¡ tƒ r/tƒ s#tƒ s#tƒ r*t  d¡ dS dV  dS t  d	¡}t  d
¡ t  d¡ | dkrDdn|  d¡} d| › �}d|› d�}t	j
t d|› �¡t	jt	jd��9}d}|dkrŽz| |¡}|jrvW nW n	 ty€   Y nw |d8 }t d¡ |dksk|V  | ¡  W d  ƒ dS 1 s w   Y  dS )z�
    Fixture for mocking S3 interaction.

    Sets up moto server in separate process locally
    Return url for motoserver/moto CI service
    Ús3fsÚboto3ÚAWS_ACCESS_KEY_IDÚ
foobar_keyÚAWS_SECRET_ACCESS_KEYÚfoobar_secretzJS3 tests do not have a corresponding service on Windows or macOS platformszhttp://localhost:5000ÚrequestsÚmotoÚflaskÚmasterÚ5ÚgwÚ555zhttp://127.0.0.1:ú/zmoto_server s3 -p )ÚstdoutÚstderré   r   gš™™™™™¹?N)ÚpytestÚimportorskipÚsetenvr   r   r   r   ÚskipÚlstripÚ
subprocessÚPopenÚshlexÚsplitÚDEVNULLÚgetÚokÚ	ExceptionÚtimeÚsleepÚ	terminate)Ú	worker_idÚmonkeypatchr-   Úendpoint_portÚendpoint_uriÚprocÚtimeoutÚrr   r   r   Ús3_base5   sN   €

ÿ




ý
ÿÿ
÷

"îrO   c                 C   s   dd| iiS )NÚclient_kwargsÚendpoint_urlr   )rO   r   r   r   Ús3sos   s   rR   c                 C   s   dd l }|jd| d�}|S )Nr   Ús3)rQ   )r(   Úresource)rO   r(   rS   r   r   r   Ús3_resourcex   s   rU   c                 c   s:   � |   dt ¡ › �¡}| ¡  |V  |j ¡  | ¡  d S )Nzpandas-test-©ÚBucketÚuuidÚuuid4ÚcreateÚobjectsÚdelete©rU   Úbucketr   r   r   Ús3_public_bucket€   s   €
r_   c           	   	   C   ó€   d|fd|fd|d fd|d fd|fd|fd	|fg}|D ] \}}t |d
ƒ�}| j||d� W d  ƒ n1 s8w   Y  q| S ©zw
    The following datasets
    are loaded.

    - tips.csv
    - tips.csv.gz
    - tips.csv.bz2
    - items.jsonl
    z
tips#1.csvr   ztips.csv.gzú.gzztips.csv.bz2ú.bz2r   zsimple_dataset.featherr%   Úrb)ÚKeyÚBodyN©ÚopenÚ
put_object)	r_   r   r   r"   r&   Útest_s3_filesÚs3_keyÚ	file_nameÚfr   r   r   Ús3_public_bucket_with_data‰   ó   

ù	ÿ€rn   c                 c   s>   � |   dt ¡ › �¡}|jdd� |V  |j ¡  | ¡  d S )Nzcant_get_it-Úprivate)ÚACLrV   r]   r   r   r   Ús3_private_bucket¥   s   €
rr   c           	   	   C   r`   ra   rg   )	rr   r   r   r"   r&   rj   rk   rl   rm   r   r   r   Ús3_private_bucket_with_data®   ro   rs   )z.no_compressN)Ú N)rb   Úgzip)z.GZru   )rc   Úbz2)z.BZ2rv   )z.zipÚzip)z.ZIPrw   )z.xzÚxz)z.XZrx   )z.zstÚzstdÚ	zstandard)Úmarks)z.ZSTry   é   )Úparamsc                 C   s   | j S )N©Úparam©Úrequestr   r   r   Úcompression_formatÚ   s   r‚   c                 C   s
   | j d S )Nr   r~   r€   r   r   r   Úcompression_extß   s   
rƒ   )'r?   r=   rE   rX   r8   Úpandas.compatr   r   r   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandas.io.commonr   Úcommonr   Úpandas.io.parsersr   Úfixturer   r   r   r    r"   r&   rO   rR   rU   r_   rn   rr   rs   r   Ú
skip_if_noÚ_compression_formats_paramsr‚   rƒ   r   r   r   r   Ú<module>   sh    






=





ô

