U
    /e                     @  sx  U d dl mZ 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 d dlmZ d dlmZ ddgZedZejjefZd	ed
< eejedkredZeejjf Zejdd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)ej#j*ej#$d#d$d%d& Z+ej#j,d'd(d)d*ej#j*d+d, Z-ej#j*d-d. Z.dS )/    )annotationsN)
open_files)parse)tmpdirabrequestsztuple[type[Exception], ...]errsz0.7.4aiohttpmodule)Zscopec                  c  s   t  } tD ]2}ttj| |d}|dd  W 5 Q R X qtjdddg}t	j
|| d}d}ztd	 W qW q` tjjk
r } z(td
 |d
8 }|dk rtd|W 5 d }~X Y q`X q`| V  |  W 5 Q R X d S )Nwb   ai'  z-mzhttp.serverZ8999)cwd
   zhttp://localhost:8999g?r   zServer did not appear)r   filesopenospathjoinwritesys
executable
subprocessPopenr   get
exceptionsConnectionErrortimesleepRuntimeError	terminate)dfnfcmdptimeoute r(   >/tmp/pip-unpacked-wheel-dbjnr7gq/dask/bytes/tests/test_http.py
dir_server   s"    

r*   c              	   C  sh   d}t d }t|| d }|}| }W 5 Q R X ttj| |d}|| ksZtW 5 Q R X d S )Nhttp://localhost:8999/r   rbr   r   readr   r   r   r   AssertionError)r*   rootr"   r#   dataexpectedr(   r(   r)   test_simple3   s    r3   c              
   C  s   d}t d }t|| d }ttj| |d}| }|t}|d}||d d ks^t|jdkslt|	d |d}||d d kst|	dd |jdkstW 5 Q R X W 5 Q R X d S )Nr+   r   r,               )
r   r   r   r   r   r   r.   r/   locseek)r*   r0   r"   r#   r2   r1   r(   r(   r)   test_loc=   s    


r:   c              	   C  s   d}t d }ddi}t|| |dd }|}|jdd|jdd }W 5 Q R X ttj| |d	}|| ksvtW 5 Q R X d S )
Nr+   r   DatezWed, 21 Oct 2015 07:28:00 GMT)headersr6   )lengthr,   r-   )r*   r0   r"   r<   r#   r1   r2   r(   r(   r)   test_fetch_range_with_headersN   s    "r?   
block_sizei c              
   C  s   d}t d }t|| d }ttj| |d}| }|}|d|d d ksZt|d |d|d d ks~t|d|dd kst|dd | |dd  kstW 5 Q R X W 5 Q R X d S )Nr+   r   r,   r      ir4   )	r   r   r   r   r   r   r.   r/   r9   )r*   r@   r0   r"   r#   r2   r(   r(   r)   test_opsZ   s    
rB   c                 C  s  d}t d }t|| ddd }ttj| |d}| }|(}| |ksTt|jt	|ksftW 5 Q R X t d }t|| ddd }|d}t
tjt
dk rtt  |d|d d kstW 5 Q R X n|d|d d kstW 5 Q R X W 5 Q R X d S )	Nr+   r   r4   )r@   r,   r6   z	2021.11.1r   )r   r   r   r   r   r   r.   r/   sizelenparse_versionfsspec__version__pytestraises
ValueError)r*   r0   r"   r#   r2   r(   r(   r)   test_ops_blocksizek   s    &rK   c              
   C  s  t dd }tt |}|  W 5 Q R X W 5 Q R X t dd }t}t| |}|  W 5 Q R X W 5 Q R X d}td }t || ddd }tt | W 5 Q R X W 5 Q R X t || d }|&}tt |	d W 5 Q R X W 5 Q R X d S )Nz"http://localhost:8999/doesnotexistr   zhttp://nohost/r+   r   )moder>   )
r   rH   rI   r	   r.   FileNotFoundErrorr   NotImplementedErrorrJ   r9   )r*   r#   r2   r0   r"   r(   r(   r)   test_errors   s&    rO   c                   sv   d t  fddtD }t|tD ]L\}}|:}ttj| |d}| | ks\tW 5 Q R X W 5 Q R X q$d S )Nr+   c                   s   g | ]} | qS r(   r(   ).0r#   r0   r(   r)   
<listcomp>   s     ztest_files.<locals>.<listcomp>r,   )	r   r   zipr   r   r   r   r.   r/   )r*   fsr#   f2r2   r(   rQ   r)   
test_files   s    rV   c                 C  s8   d}t |d }|d jdks"t|d jdks4td S )Nr+   z/*r   zhttp://localhost:8999/ar6   zhttp://localhost:8999/b)r   r   r/   )r*   r0   rT   r(   r(   r)   test_open_glob   s    rW   engine)ZpyarrowZfastparquetc                 C  sn   t jddd t d}t |  |jdg| d }|j ttdksPt|j	 dd	d
dgksjtd S )Nr   z2.21.0)Z
minversiondask.dataframezthttps://github.com/Parquet/parquet-compatibility/raw/master/parquet-testdata/impala/1.1.1-NONE/nation.impala.parquet)rX      n_nationkeyZn_nameZn_regionkeyZ	n_comment)
rH   importorskipZread_parquetcomputer[   tolistlistranger/   columns)rX   ddZdfr(   r(   r)   test_parquet   s    


rc   r      z(https://github.com/dask/dask/issues/3696)ZrerunsZreruns_delayreasonc                  C  s,   ddg} t | }|jdks t|  d S )Nrhttps://raw.githubusercontent.com/weierophinney/pastebin/master/public/js-src/dojox/data/tests/stores/patterns.csvzhttps://en.wikipedia.orgr4   )db	read_textZnpartitionsr/   r]   )urlsr   r(   r(   r)   test_bag   s    
rj   c                  C  s$   t d} d}| |}|  d S )NrY   rf   )rH   r\   Zread_csvr]   )rb   urlr   r(   r(   r)   test_read_csv   s
    

rl   )/
__future__r   r   r   r   r   rF   rH   Zfsspec.corer   Zpackaging.versionr   rE   Zdask.bagZbagrg   Z
dask.utilsr   r   r\   r   r   RequestExceptionrM   r	   __annotations__rG   r
   Zclient_exceptionsZClientResponseErrorZfixturer*   r3   r:   r?   markZparametrizerB   rK   rO   rV   rW   networkrc   Zflakyrj   rl   r(   r(   r(   r)   <module>   sT    





	  