a
    d                     @   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e rdndddd Zeje rdndd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#d0e$d.d/gZ%eje%d1d d2d3d4 Z&eje%d2d5d6 Z'ejd7ej#d8e$d8d/gd2d9d: Z(dS );    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   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/io/conftest.py
<dictcomp>       z,compression_to_extension.<locals>.<dictcomp>)icomZextension_to_compressionitemsr   r   r   r   compression_to_extension   s    r   c                 C   s   | ddddS )zPath to the tips datasetiodatacsvtips.csvr   datapathr   r   r   	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   | ddddS )Nr   r   xml	books.xmlr   r   r   r   r   xml_file0   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/Zclient_kwargsendpoint_url)r   lstrip)	worker_idurlr   r   r   s3so5   s
    r+   functionsession)Zscopec                  c   s4   t j } | V  W d    n1 s&0    Y  d S N)pytestZMonkeyPatchcontext)mpr   r   r   monkeysession?   s    r2   c              	   c   sL  t d t d |dd |dd t rXt sDt sDt rPt d ndV  nt d	}t jd
dd t d | dkrdn| d} d|  }d| d}t	j
td| t	jt	jdp}d}|dkrz||}|jrW qW n ty   Y n0 |d8 }td q|V  |  W d   n1 s>0    Y  dS )z
    Fixture for mocking S3 interaction.

    Sets up moto server in separate process locally
    Return url for motoserver/moto CI service
    Z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   g?N)r/   ZimportorskipZsetenvr   r   r   r   skipr(   
subprocessPopenshlexsplitDEVNULLgetok	Exceptiontimesleep	terminate)r)   r2   r4   Zendpoint_portZendpoint_uriproctimeoutrr   r   r   s3_baseE   sD    







rG   c                 C   s   dd l }|jd| d}|S )Nr   s3)r'   )r3   resource)rG   r3   rH   r   r   r   s3_resource   s    rJ   c                 c   s8   |  dt  }|  |V  |j  |  d S )Nzpandas-test-ZBucketuuiduuid4createZobjectsdeleterJ   Zbucketr   r   r   s3_public_bucket   s
    
rQ   c           	   	   C   s   d|fd|fd|d fd|d fd|fd|fd	|fg}|D ]@\}}t |d
}| j||d W d   q:1 sp0    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)ZKeyZBodyNopenZ
put_object)	rQ   r   r   r   r"   test_s3_filess3_key	file_namefr   r   r   s3_public_bucket_with_data   s    

	.r\   c                 c   s<   |  dt  }|jdd |V  |j  |  d S )Nzcant_get_it-private)ZACLrK   rP   r   r   r   s3_private_bucket   s
    
r^   c           	   	   C   s   d|fd|fd|d fd|d fd|fd|fd	|fg}|D ]@\}}t |d
}| j||d W d   q:1 sp0    Y  q:| S rR   rV   )	r^   r   r   r   r"   rX   rY   rZ   r[   r   r   r   s3_private_bucket_with_data   s    

	.r_   )z.no_compressN) N)rS   gzip)z.GZra   )rT   bz2)z.BZ2rb   )z.zipzip)z.ZIPrc   )z.xzxz)z.XZrd   )z.zstzstdZ	zstandard)Zmarks)z.ZSTre      )paramsc                 C   s   | j S r.   paramrequestr   r   r   compression_format   s    rl   c                 C   s
   | j d S )Nr   rh   rj   r   r   r   compression_ext   s    rm   pythonZpyarrowc                 C   s   | j S )zb
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    rh   rj   r   r   r   string_storage   s    ro   ))r;   r9   rA   rL   r/   Zpandas.compatr   r   r   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandas.io.commonr   commonr   Zpandas.io.parsersr   Zfixturer   r   r   r   r   r"   r+   r2   rG   rJ   rQ   r\   r^   r_   ri   Z
skip_if_noZ_compression_formats_paramsrl   rm   ro   r   r   r   r   <module>   sv   






	

=







