a
    nÝEbM  ã                   @   sB  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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�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#�d&d'„ ƒZdS )(é    N)Úis_ci_environmentÚis_platform_armÚis_platform_macÚis_platform_windows©Úread_csvc                 C   s   | ddddƒS )zPath to the tips datasetÚioÚdataÚcsvútips.csv© ©Údatapathr   r   úX/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/conftest.pyÚ	tips_file   s    r   c                 C   s   | ddddƒS )zPath to a JSONL datasetr   Úparserr	   úitems.jsonlr   r   r   r   r   Ú
jsonl_file   s    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   s   | ddddƒS )Nr   r	   Zfeatherzfeather-0_3_1.featherr   r   r   r   r   Úfeather_file'   s    r   c                 C   s:   t ƒ rd}n"| dkrdn|  d¡} d| › d�}dd|iiS )	Nzhttp://localhost:5000/ÚmasterÚ5Úgwzhttp://127.0.0.1:555ú/Úclient_kwargsÚendpoint_url)r   Úlstrip)Ú	worker_idÚurlr   r   r   Ús3so,   s
    r!   Úsession)Úscopec              
   c   s|  t  d¡ t  d¡ t ¡ ��H tj dd¡ tj dd¡ tƒ rhtƒ sTt	ƒ sTt
ƒ r`t  d¡ ndV  nðt  d	¡}t jd
dd� t  d¡ | dkr–dn|  d¡} d| › �}d|› d�}tjt d|› �¡tjtjd��p}d}|dk�r*z| |¡}|jrþW �q*W n t�y   Y n0 |d8 }t d¡ qÜ|V  | ¡  W d  ƒ n1 �sN0    Y  W d  ƒ n1 �sn0    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Úboto3ZAWS_ACCESS_KEY_IDZ
foobar_keyZAWS_SECRET_ACCESS_KEYZfoobar_secretzOS3 tests do not have a corresponding service in Windows, MacOS or ARM platformszhttp://localhost:5000ÚrequestsZmotoz1.3.14)Z
minversionZflaskr   r   r   Z555zhttp://127.0.0.1:r   zmoto_server s3 -p )ÚstdoutÚstderré   r   çš™™™™™¹?N)ÚpytestZimportorskipÚtmZ!ensure_safe_environment_variablesÚosÚenvironÚ
setdefaultr   r   r   r   Úskipr   Ú
subprocessÚPopenÚshlexÚsplitÚDEVNULLÚgetÚokÚ	ExceptionÚtimeÚsleepÚ	terminate)r   r&   Zendpoint_portZendpoint_uriÚprocÚtimeoutÚrr   r   r   Ús3_base6   sF    

ÿ


ý


r?   c                 #   sš  ddl }ddl}d|fd|fd|d fd|d fd	|fd
|fg‰‡ ‡fdd„}d}|jd| d�}|jd| d�‰ zˆ j|d� W n ty�   Y n0 zˆ jddd� W n ty¶   Y n0 d}	ˆ  ¡ d sä|	dkrät d¡ |	d8 }	q¼||ƒ |dƒ |j	 
¡  |V  |j	d| id�}
z|
j|dd� W n t�y:   Y n0 z|
jddd� W n t�yb   Y n0 d}	ˆ  ¡ d �r–|	dk�r–t d¡ |	d8 }	�qhdS )a0  
    Sets up S3 bucket with contents

    The primary bucket name is "pandas-test". The following datasets
    are loaded.

    - tips.csv
    - tips.csv.gz
    - tips.csv.bz2
    - items.jsonl

    A private bucket "cant_get_it" is also created. The boto3 s3 resource
    is yielded by the fixture.
    r   Nz
tips#1.csvr   ztips.csv.gzú.gzztips.csv.bz2ú.bz2r   zsimple_dataset.featherc              	      sL   ˆD ]B\}}t |dƒ� }ˆ j| ||d� W d   ƒ q1 s<0    Y  qd S )NÚrb)ÚBucketÚKeyZBody)ÚopenZ
put_object)Zbucket_nameZs3_keyÚ	file_nameÚf©ÚcliZtest_s3_filesr   r   Úadd_tips_files’   s    z#s3_resource.<locals>.add_tips_fileszpandas-testÚs3)r   )rC   Zcant_get_itÚprivate)rC   ZACLé   ZBucketsr*   r   )r   T)Ú	recursive)r%   r$   ÚresourceÚclientZcreate_bucketr8   Zlist_bucketsr9   r:   ZS3FileSystemZclear_instance_cacheZrm)r?   r   r   r   r%   r$   rJ   ZbucketÚconnr=   rK   r   rH   r   Ús3_resourcev   sT    

ú	



rR   )z.no_compressN)Ú N)r@   Úgzip)z.GZrT   )rA   Úbz2)z.BZ2rU   )z.zipÚzip)z.ZIPrV   )z.xzÚxz)z.XZrW   )z.zstÚzstdZ	zstandard)Zmarks)z.ZSTrX   é   )Ú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-   r3   r1   r9   r+   Zpandas.compatr   r   r   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandas._testingZ_testingr,   Zpandas.io.parsersr   Zfixturer   r   r   r   r!   r?   rR   r\   Z
skip_if_noZ_compression_formats_paramsr_   r`   r   r   r   r   Ú<module>   sN   




	

?
Iô

