o
    g                     @   s   d dl Z 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 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 dd ZdS )    Nread_csvc                 C      | ddddS )zPath to the tips datasetiodatacsvtips.csv datapathr	   r	   V/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/io/conftest.py	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    s   r   c                 C   s*   | dkrdn|  d} ddd|  diiS )Nmaster5gwclient_kwargsendpoint_urlzhttp://127.0.0.1:555/)lstrip)	worker_idr	   r	   r   s3so%   s   r   session)scopec              	   c   sB   t d t d t d}dtd_t } tj	dd tj	d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}d}|dkrz||}|jrlW nW n	 tyv   Y nw |d8 }td |dksa|V  |  |  W d   dS 1 sw   Y  dS )zZ
    Fixture for mocking S3 interaction.

    Sets up moto server in separate process
    s3fsboto3requestsTAWS_ACCESS_KEY_ID
foobar_keyAWS_SECRET_ACCESS_KEYfoobar_secretmotoz1.3.14)
minversionflaskr   r   r   555zhttp://127.0.0.1:r   zmoto_server s3 -p )stdoutstderr   r   皙?N)pytestimportorskiplogging	getLoggerdisabledtm!ensure_safe_environment_variablesosenviron
setdefaultr   
subprocessPopenshlexsplitDEVNULLgetok	Exceptiontimesleep	terminatewait)r   r$   endpoint_portendpoint_uriproctimeoutrr	   r	   r   s3_base+   sF   









"rL   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   Y z	 jddd W n   Y d}	  d sr|	dkrrtd |	d8 }	  d sr|	dks_|| |d |j	  |V  |jd| id}
z	|
j
|dd W n   Y z	|
j
ddd W n   Y d}	  d r|	dkrtd |	d8 }	  d r|	dksdS dS dS d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.gzz.gzztips.csv.bz2z.bz2r   zsimple_dataset.featherc              	      sL   D ]!\}}t |d} j| ||d W d    n1 sw   Y  qd S )Nrb)BucketKeyBody)open
put_object)bucket_names3_key	file_namefclitest_s3_filesr	   r   add_tips_files{   s   z#s3_resource.<locals>.add_tips_fileszpandas-tests3)r   )rN   cant_get_itprivate)rN   ACL   Bucketsr0   r   )r   T)	recursive)r#   r"   resourceclientcreate_bucketlist_bucketsrC   rD   S3FileSystemclear_instance_cacherm)rL   r   r   r   r#   r"   rZ   bucketconnrJ   r[   r	   rW   r   s3_resource_   sZ   

	


$rk   )r3   r8   r=   r;   rC   r1   pandas._testing_testingr6   pandas.io.parsersr   fixturer   r   r   r   r   rL   rk   r	   r	   r	   r   <module>   s,    






3