
    >ieK                    l   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Z ej        d          Z ej        d          Z ej        dd	          Z ej        d
            ej        d          Zd dlmZ d dlmZmZ d dlmZ d dlmZmZ 	 d dlmZ n# e$ r dZY nw xY wd dl m!Z! d dl"m#Z# d dl$m%Z%  ee!d          Z!dZ&dddZ'e	d             Z(ej)        d             Z*dZ+ ej)        d          d             Z,ej)        d             Z-e	e&e'fd             Z. ej)                    ej/        j0        d!                         Z1d" Z2d# Z3d$ Z4d% Z5d& Z6d' Z7d( Z8ej/        9                    d)g d*          d+             Z:ej/        9                    d)g d*          d,             Z;ej/        9                    d-d. eD             d/ eD             z             d0             Z<ej/        9                    d1d2d3g          d4             Z=d5 Z>d6 Z?ej/        9                    d7d8d9g          ej/        9                    d:d;d<g          d=                         Z@ej/        9                    d7d8d9g          d>             ZAej/        9                    d7d8d9g          d?             ZBdS )@    )annotationsN)contextmanager)partials3fsboto3motoz1.3.14)
minversionflaskrequests)compr)get_fs_token_paths
open_files)S3FileSystem)concatvalmap)compute)
read_bytes)compresssync)	schedulertests   {"amount": 100, "name": "Alice"}
{"amount": 200, "name": "Bob"}
{"amount": 300, "name": "Charlie"}
{"amount": 400, "name": "Dennis"}
s   {"amount": 500, "name": "Alice"}
{"amount": 600, "name": "Bob"}
{"amount": 700, "name": "Charlie"}
{"amount": 800, "name": "Dennis"}
)ztest/accounts.1.jsonztest/accounts.2.jsonc               #  D  K   t          t          j                  } 	 dV  t          j                                         t          j                            |            dS # t          j                                         t          j                            |            w xY w)z
    Get a context manager to safely set environment variables
    All changes will be undone on close, hence environment variables set
    within this contextmanager will neither persist nor change global state.
    N)dictosenvironclearupdate)saved_environs    8lib/python3.11/site-packages/dask/bytes/tests/test_s3.py!ensure_safe_environment_variablesr    6   s       $$M)



-((((( 	


-((((s   A   ?Bc                 &    t          ddi          S )Nendpoint_urlhttp://127.0.0.1:5555/)client_kwargs)r        r   s3sor'   E   s    ~/GHIIIIr&   r#   module)scopec               #    K   t                      5  dt          j        d<   dt          j        d<   dt          j        d<   dt          j        d<   t          j        t          j        d          t          j        	          } d
}	 	 t          	                    t                    }|j        rn;n# t          $ r Y nw xY w|dz  }t          j        d           |dk    s
J d            cd V  |                                  	 |                     d           nV# t          j        $ rD |                                  t&          j        dk    rt          j        d| j         d           Y nw xY wd d d            d S # 1 swxY w Y   d S )N
foobar_keyAWS_ACCESS_KEY_IDfoobar_secretAWS_SECRET_ACCESS_KEY AWS_SHARED_CREDENTIALS_FILEAWS_CONFIG_FILEzmoto_server s3 -p 5555)stdout   Tg?r   z!Timed out waiting for moto server   )timeoutwin32zTASKKILL /F /PID z /T)r    r   r   
subprocessPopenshlexsplitDEVNULLr   getendpoint_uriok	Exceptiontimesleep	terminatewaitTimeoutExpiredkillsysplatformcallpid)procr5   rs      r   s3_baserL   M   s     	*	,	, "C "C*6
&'.=
*+46
01(*
$% K011*:L
 
 
 
	DLL..4    sNGJsOOOQ;;; C;;;
	D 	 		CIIaI    ( 	C 	C 	CIIKKK|w&& ADH A A ABBB		C="C "C "C "C "C "C "C "C "C "C "C "C "C "C "C "C "C "Cs\   A2E9&B,*E9,
B96E98B99AE9?DE9AE)&E9(E))E99E= E=c              #  `   K   t                      5 }|V  d d d            d S # 1 swxY w Y   d S N)
s3_context)rL   fss     r   s3rQ   t   sz      	                  s   #''c              #    K   t                               dt                    }|                    | d           |                                D ]\  }}|                    | ||           t                              dddi	          }t          j                                         |	                                 	 |V  |
                    | d
           d S # |
                    | d
           w xY w)NrQ   r"   zpublic-read-write)BucketACLrT   KeyBodyTr"   r#   )anonr$   )	recursive)r   clientr=   create_bucketitems
put_objectr   r   clear_instance_cacheinvalidate_cacherm)bucketfilesr[   fdatarP   s         r   rO   rO   z   s     \\$\\::F
,?@@@;;== ; ;4QT::::			.2J!K 
 
 
B 	**,,,&
f%%%%%f%%%%s   >C C4c              #     K   t          j        d          }t          j        d          }i dddddddddd	d	d
d
dddddddddddddddddddddddddddddddd d!d"d#dd$ddddddd%d&d&d&d&d&dd'd(d)d*d+d,dd-d.d/d0d1d2dd3ddddddd4d5d6d7d8d9dd:d;dddddd<ddddddd=d>d?d@d@d@ddAd@d@d@d@d@ddBdBdBdBdBddCdDdEdFdGddH}|                    |          }|                    |                    dI                              dJ                    }t          j                    }t          j        |          }|	                    |dKL           dM}t                              dNdOP          }	|	                    t          ||Q           dR}t          ddS          D ]G}
|                    dT           |	                    t          |                    |
          |Q           HdUV  dUS )Vz
    Fixture with sample yellowtrip CSVs loaded into S3.

    Provides the following CSVs:

    * s3://test/nyc-taxi/2015/yellow_tripdata_2015-01.csv
    * s3://test/nyc-taxi/2014/yellow_tripdata_2015-mm.csv
      for mm from 01 - 12.
    numpypandasVendorID      )r   rk   rj   r4      tpep_pickup_datetimez2015-01-15 19:05:39z2015-01-10 20:33:38z2015-01-10 20:33:39tpep_dropoff_datetimez2015-01-15 19:23:42z2015-01-10 20:53:28z2015-01-10 20:43:41z2015-01-10 20:35:31z2015-01-10 20:52:58passenger_counttrip_distancegq=
ףp?gffffff
@g?g      ?g      @pickup_longitudeg    Rg    Rg   `}Rg   Rg   '~Rpickup_latitudeg   `D@g    \D@g   fD@g   `^[D@g   @aD@
RateCodeIDstore_and_fwd_flagNdropoff_longitudeg   b~Rg   Rg   |Rg  FRg   DRdropoff_latitudeg   @`D@g   *aD@g   `iD@g   (\D@g   @_D@payment_typefare_amountg      (@g      -@g      #@g      @g      .@extrag      ?mta_tax
tip_amountg      
@g       @g        tolls_amountg333333?g1@g1@g%@g333333@gL0@)improvement_surchargetotal_amount   i'  Findexz)nyc-taxi/2015/yellow_tripdata_2015-01.csvrQ   r#   rS   rV   z.nyc-taxi/2014/yellow_tripdata_2014-{:0>2d}.csv   r   N)pytestimportorskip	DataFrametakearangerepeatioBytesIOTextIOWrapperto_csvr   r[   r^   test_bucket_namerangeseekformat)rQ   nppdre   sampledffilesfilekeyr[   is              r   s3_with_yellow_tripdatar      sl      
	W	%	%B		X	&	&B8aA!228$$$$$!
 !
8 	 $$$$$"
 "
8  	qQ1q99!8" 	TccccBB#8$ 	!!!!
 
%82 	  !
 
38@ 	!aA!44A8B 	#####FFC8D 	!!!!!
 
E8R 	    !
 
S8` 	A!aA66a8b 	4DSSTBBc8d 	SSSSS99e8f 	sssss;;g8h 	$3333??i8j 	CCCCC@@k8l &)SSSS!I!I!dtEEo8 8 8Dr \\$F	RYYq\\((//	0	0B:<<DT""EIIe5I!!!
5C\\$-E\FFF
-3TBBB
:C1b\\ Q Q		!!1szz!}}4PPPP	EEEEEr&   c                    t          dd          } | j        dk    sJ | j        dk    sJ t          dd          } | j        dk    sJ | j        dk    sJ t          j        t
                    5  t          dd           d d d            n# 1 swxY w Y   t          j        t
                    5  t          dd           d d d            d S # 1 swxY w Y   d S )Nr   secret)r   r   )usernamepassword)r   r   )r   r   )DaskS3FileSystemr   r   r   raisesKeyError)rQ   s    r   test_get_s3r      si   	eH	5	5	5B6U????9    	58	<	<	<B6U????9    	x	 	  4 4UU33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	x	 	  7 766667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s$   0BBB2CCCc                   d t           D             }t          |fddi|}t          |t                                                     D ]4\  }}|5 }|                    |           d d d            n# 1 swxY w Y   5t          dt          z   dz   fi |\  }}t          t          |           }	t          t          t                                                               t          |	          k    sJ d S )Nc                .    g | ]}d t           z   dz   |z   S )s3://z/more/)r   .0rd   s     r   
<listcomp>z)test_open_files_write.<locals>.<listcomp>   s(    FFF1W''(2Q6FFFr&   modewbr   z/more/test/accounts.*)rc   r   zipvalueswriter   r   r   r   setlist)
rQ   r'   pathsfilsfilre   rd   r   r   resultss
             r   test_open_files_writer      s2   FFFFFEe//$/$//Du||~~..  	T 	AGGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	""%<< @D NFF vf~~&GtELLNN##$$G444444s   A11A5	8A5	c                   t          dt          z   dz   fi |\  }}t          |t                    sJ |d d         t          t          t                    d                  d d         k    sJ |                    d          sJ t          |t          t          f          sJ t          |d         t          t          f          sJ t          |d         d         d          sJ t          t          t          |                    t          t                    k    sJ t          t          |           }t          |          t          t                                                    k    sJ d S )Nr   /test/accounts.*r   r      
dask)r   r   
isinstancebytesrc   sortedendswithr   tuplehasattrsummaplenr   r   r   r   )rQ   r'   r   r   r   s        r   test_read_bytesr      sD   *: :=O OXXSWXXNFFfe$$$$$"1":ve}}Q/0!44444??5!!!!!ftUm,,,,,fQi$/////6!9Q<(((((s3  CJJ....vf~~&Gw<<3u||~~........r&   c                D   t          dt          z   dz   fddd|\  }}|                    d          sJ t          dt          z   dz   fddd|\  }}|                    d          sJ t          dt          z   dz   fddd|\  }}|                    d          sJ d S )Nr   r   P   r   )r   	delimiterz/test/accounts.1.jsonrj   )r   r   r   )rQ   r'   r   r   s       r    test_read_bytes_sample_delimiterr     s
   ""%77  	 NFF ??5!!!!!""%<<  	 NFF ??5!!!!!""%<<  	 NFF ??5!!!!!!!r&   c                    t          j        t                    5  t          dt          z   dz   fi | d d d            d S # 1 swxY w Y   d S )Nr   z/non-existing/*)r   r   IOErrorr   r   )rQ   r'   s     r   !test_read_bytes_non_existing_globr   '  s    	w		 K K7--0AAJJTJJJK K K K K K K K K K K K K K K K K Ks   A  AAc                    t          dt          z   dz   fdd i|\  }}t          t          t          |                    t	          t
                    k    sJ d S )Nr   r   	blocksize)r   r   r   r   r   rc   )rQ   r'   _r   s       r   test_read_bytes_blocksize_noner   ,  sj    ""%77 CGKO IAv s3  CJJ......r&   c                    t          dt           dfd dd|\  }}t          |          dk    sJ t          dt           dfd dd|\  }}t          |          dk    sJ d S )Nr   z*/nyc-taxi/2015/yellow_tripdata_2015-01.csvT)r   rY   rk   z/nyc-taxi/2014/*.csv   )r   r   r   )r   r'   r   Ls       r   'test_read_bytes_blocksize_on_large_datar   3  s    L LLL  	 DAq q66Q;;;;6 666  	 DAq q66R<<<<<<r&   r   )r      -   i  c                   t          dt          z   dz   fdi|\  }}t          t          t          |                    fdt
                                          D             k    sJ t          t          |           }t          d |D                       t          d t
                                          D                       k    sJ d
                    |                              d          }d
                    t
                                                                        d          }t          |          t          |          k    sJ d S )	Nr   z/test/account*r   c                P    g | ]"}t          t          |          z  d           #S )rk   )maxr   )r   vr   s     r   r   z)test_read_bytes_block.<locals>.<listcomp>J  s;     $ $ $*+SVVy 1%%$ $ $r&   c              3  4   K   | ]}t          |          V  d S rN   r   r   rK   s     r   	<genexpr>z(test_read_bytes_block.<locals>.<genexpr>O  s(      ''!s1vv''''''r&   c              3  4   K   | ]}t          |          V  d S rN   r   r   r   s     r   r   z(test_read_bytes_block.<locals>.<genexpr>O  s(      .N.N!s1vv.N.N.N.N.N.Nr&   r&   r   )r   r   r   r   r   rc   r   r   r   r   joinr:   r   )rQ   r   r'   r   valsr   ourlines	testliness    `      r   test_read_bytes_blockr   E  sS   ""%55 AJNR GAt C $ $ $ $/4||~~$ $ $     vd||$G''w'''''3.N.Nu||~~.N.N.N+N+NNNNNxx  &&u--H((..u55Ix==C	NN******r&   c                   t          dt          z   dz   f|dd|\  }}t          dt          z   dz   f|dd|\  }}d t          |          D             d t          |          D             k    sJ t          t          |           }d |D             }t	          d	 |D                       sJ d
                    |                              d          }d
                    d t          t                    D                                           d          }	||	k    sJ d}
t          dt          z   dz   f||
d|\  }}t          t          |           }d |D             }t          d |D                       t          |          dz
  k    sJ d
                    |          }d
                    d t          t                    D                       }||k    sJ d S )Nr   z/test/accounts*r   )r   r   s   fooc                    g | ]	}|j         
S r%   r   )r   as     r   r   z-test_read_bytes_delimited.<locals>.<listcomp>d  s    ***aAE***r&   c                    g | ]	}|j         
S r%   r   )r   bs     r   r   z-test_read_bytes_delimited.<locals>.<listcomp>d  s    .N.N.Nqu.N.N.Nr&   c                    g | ]}||S r%   r%   r   s     r   r   z-test_read_bytes_delimited.<locals>.<listcomp>g      
#
#
#
#1
#
#
#r&   c              3  @   K   | ]}|                     d           V  dS )r   Nr   r   s     r   r   z,test_read_bytes_delimited.<locals>.<genexpr>h  s.      ..Qqzz%  ......r&   r&   c              3  0   K   | ]}t           |         V  d S rN   rc   r   ks     r   r   z,test_read_bytes_delimited.<locals>.<genexpr>j  s&      99aq999999r&      }c                    g | ]}||S r%   r%   r   s     r   r   z-test_read_bytes_delimited.<locals>.<listcomp>v  r   r&   c              3  @   K   | ]}|                     d           V  dS )r   Nr   r   s     r   r   z,test_read_bytes_delimited.<locals>.<genexpr>x  s.      --Aqzz$------r&   rj   c              3  0   K   | ]}t           |         V  d S rN   r   r   s     r   r   z,test_read_bytes_delimited.<locals>.<genexpr>z  s&      44E!H444444r&   )r   r   r   r   allr   r:   r   rc   r   r   )rQ   r   r'   r   r   values2r   resr   r   doursr   s                r   test_read_bytes_delimitedr   V  s@   ""%66  	 IAv ""%66  	 JAw +*6&>>***.N.NfWoo.N.N.NNNNNvf~~&G
#
#g
#
#
#C..#........xx}}""5))H996%==99999??FFIy     	A""%66  	 IAv vf~~&G
#
#g
#
#
#C-------SA====88C==D8844fUmm44444D4<<<<<<r&   zfmt,blocksizec                    g | ]}|d fS rN   r%   r   fmts     r   r   r     s    """Sc4["""r&   c                    g | ]}|d fS )
   r%   r   s     r   r   r     s    %A%A%ACsBi%A%A%Ar&   c                @   |t           vrt          j        d           | j                                         t          dt          t           |         t                              5  |rQ|rOt          j        t                    5  t          	 d
||d| d d d            n# 1 swxY w Y   	 d d d            d S t          	 d
||d|\  }}|                    t          t          t                    d                  d d                   sJ |                    d          sJ t          t          |           }d                    |          d                    d	 t          t                    D                       k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nz!compression function not providedr   s3://compress/test/accounts.*)compressionr   r   r   r   r&   c                (    g | ]}t           |         S r%   r   r   s     r   r   z$test_compression.<locals>.<listcomp>  s    -N-N-N1eAh-N-N-Nr&   r  )r   r   skip_cacher   rO   r   rc   r   
ValueErrorr   
startswithr   r   r   r   r   )rQ   r   r   r'   r   r   r   s          r   test_compressionr	  ~  sp   
 (7888IOO	Jx}e < <	=	= P P 	9 	z**  3 #'  	                 P P P P P P P P $+

 
 	
 
   ve}}Q'7!8"!=>>>>>u%%%%%6&>>*xx  CHH-N-Nu-N-N-N$O$OOOOOO)P P P P P P P P P P P P P P P P P Ps=   %FB F B$	$F'B$	(F9CFFFr   rtrbc                   t          dt          z   dz   fd|i|}t          |          t          t                    k    sJ t	          |t          t                              D ]c\  }}|5 }|                                }t          |         }|dk    r||k    sn|                                sJ d d d            n# 1 swxY w Y   dd S )Nr   r   r   r  )r   r   r   rc   r   r   readdecode)	rQ   r   r'   myfiles	lazy_filepathrd   re   sols	            r   test_open_filesr    s'   ""%77 >BFJ G w<<3u::%%%%wu66 A A	4 	A!6688D+C"&$,,43;;;CJJLL;;;	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	AA As   +AB<<C 	C 	c                    | dz  S )Nrj   r%   )xs    r   <lambda>r    s
    1q5 r&   c                    t          dt                    5  t          d	ddi|\  }}t          d	ddi|\  }}d t          |          D             d t          |          D             k    sJ 	 d d d            n# 1 swxY w Y   t          dt	          t
          t                              5  t          d	ddi|\  }}d d d            n# 1 swxY w Y   d t          |          D             d t          |          D             k    sJ d S )
Nr   r  rY   Tc                    g | ]	}|j         
S r%   _keyr   aas     r   r   z5test_modification_time_read_bytes.<locals>.<listcomp>  s    ,,,B,,,r&   c                    g | ]	}|j         
S r%   r  )r   bbs     r   r   z5test_modification_time_read_bytes.<locals>.<listcomp>  s    0M0M0MR0M0M0Mr&   c                    g | ]	}|j         
S r%   r  r  s     r   r   z5test_modification_time_read_bytes.<locals>.<listcomp>  s    (((BG(((r&   c                    g | ]	}|j         
S r%   r  )r   ccs     r   r   z5test_modification_time_read_bytes.<locals>.<listcomp>  s    ,I,I,IRW,I,I,Ir&   r  )rO   rc   r   r   r   double)rQ   r'   r   r   r   cs         r   !test_modification_time_read_bytesr$    s   	J	&	& N NMMMMM1MMMMM1,,&)),,,0M0M6!990M0M0MMMMMM	N N N N N N N N N N N N N N N 
Jvu 5 5	6	6 N NMMMMM1N N N N N N N N N N N N N N N )(fQii(((,I,Ivayy,I,I,IIIIIIIs$   AA<<B B /CCCenginepyarrowfastparquetmetadata_fileTFc           
        t          j        d          }t          j        d          }t          j        d          }t          j        |           dt          z  }|                    |                    d|j                  |                    d|j                  |                    d|j                  |j        	                    g dd          
                    d	          d
|                    |                    d          d                    }|                    |d          }	|	                    ||||           d |                     |          D             }
|rd|
v sJ d|
v sJ d|
v sJ |                    |dd||          }t!          |j                  dk    sJ |j                            ||           t(          rt          j        t,                    5  |                    |||ddddi                                           d d d            n# 1 swxY w Y   |                    |||ddddi                                           t1          ||          d         dd fd!
}t          j        t2                    5  |                    ||||d"d#                                           d d d            n# 1 swxY w Y   |                    |||d$|i          }|j                            ||           |                    |||d%d&i          }|j                            ||           d S )'Ndask.dataframerh   rg   s3://%s/test.parquet  dtypehelloyoupeoplesizeOi32i64rd   bhellofoo)namer     	chunksize)r%  storage_optionswrite_metadata_filec                D    g | ]}|                     d           d         S /r:   r   s     r   r   z test_parquet.<locals>.<listcomp>  '    222!QWWS\\"222r&   _common_metadata	_metadatapart.0.parquetT)r   calculate_divisionsr%  r?  rk   precache_optionsparquet)methodr%  )r%  r?  open_file_optionsi@  )rM  	max_block)r?  r   )checkc                &    | sJ  j         |i |S rN   )open)rP  argskwargsrP   s      r   _openztest_parquet.<locals>._open  s#    rw''''r&   F)open_file_funcrP  rV  
cache_typer   )r   r   r   r   r   int32int64float64randomchoiceastypeIndexfrom_pandas
to_parquetlsread_parquetr   	divisionsutils	assert_eqfsspec_parquetr   r  r   r   AssertionError)rQ   r%  r'   r(  ddr   r   urlre   r   rc   df2rU  df3df4rP   s                  @r   test_parquetrm    sN    
	-	.	.B		X	&	&B		W	%	%B

 #3
3C<<99T92299T9224rz22i&&'A'A'A&MMTT 		
 	
 hhryyUh33  
 
D 
	,	,BMMFDm     32ruuSzz222E $!U****e####u$$$$
//5d6SW   C s}!!!!HtS!!!   ]:&& 	 	OO $&9(N(N#	    giii	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 "yu$M$M	 	 	
 	
 '))) 
C	6	6	6q	9B ( ( ( ( ( ( (
 
~	&	&  
 16GG	 	 	
 	

 ')))               //+U3	   C HtS!!! //'/	   C HtS!!!!!s$   /1H,,H03H0/KK!Kc           	     x   t          j        |           t          j        d          }t          j        d          }t          j        d          }dt          z  }|                    |                    d|j                  |                    d|j                  |                    d|j                  |j        	                    g dd          
                    d	          d
          }|                    |d          }|                    |||dd           |                    |||ddd           d |                     |          D             }	d|	v sJ d|	v sJ d|	v sJ |                    |d||          }
|j                            |                    ||g          |
d           d S )Nr*  rh   rg   zs3://%s/test.parquet.appendr,  r-  r/  r3  r5  r6  r<  r=  FT)r%  r?  write_indexr@  )r%  r?  ro  appendignore_divisionsc                D    g | ]}|                     d           d         S rB  rE  r   s     r   r   z'test_parquet_append.<locals>.<listcomp>A  rF  r&   rG  rH  rI  )r   r%  r?  )check_index)r   r   r   r   r   rX  rY  rZ  r[  r\  r]  r_  r`  ra  rb  rd  re  r   )rQ   r%  r'   rh  r   r   ri  re   r   rc   rj  s              r   test_parquet_appendrt    s   
		-	.	.B		X	&	&B		W	%	%B
'*:
:C<<99T92299T9224rz22i&&'A'A'A&MMTT 		
 	
	 	D 
	,	,BMM      MM     32ruuSzz222E&&&&%u$$$$
//	   C H
		4,      r&   c           
        t          j        |           t          j        d          }t          j        d          }t          j        d          }dt          z  }|                    d|                    g d          i          }|                    |d          }|                    ||d	|d
           |                    ||t          di |dd	i           | 	                                j
        d	u sJ |                    ||t          di |dd
i           | 	                                j
        d
u sJ |                    ||t          di |ddi           | 	                                j        dk    sJ | 	                                                    |dz             5 }	|	j        dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr*  rh   rg   r+  r7  )r   r   rj   r   r<  r=  FT)r%  ro  r?  r@  default_fill_cache)r%  r?  default_block_sizei   z
/_metadatar%   )r   r   r   r   arrayr_  r`  rb  r   currentrv  rw  rR  r   )
rQ   r'   r%  rh  r   r   ri  re   r   rd   s
             r   test_parquet_wstorageparsrz  T  s^   
		-	.	.B		X	&	&B		W	%	%B
 #3
3C<< 6 6788D		,	,BMM      OOEEtE(<e'DEE    
 ::<<*e3333OOFD,X,X4,X<PRV;W,X,X     ::<<*d2222OOEEtE(<e'DEE    
 ::<<*e3333			3-	.	. $!{e#####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   -G		GG)C
__future__r   r   r   r9   r7   rF   r@   
contextlibr   	functoolsr   r   r   r   r   r   r   fsspec.compressionr   fsspec.corer   r   r   r   tlzr   r   fsspec.parquetrL  rf  ImportErrorr   r   dask.bytes.corer   dask.bytes.utilsr   r   rc   r    fixturer'   r=   rL   rQ   rO   markslowr   r   r   r   r   r   r   r   parametrizer   r   r	  r  r"  r$  rm  rt  rz  r%   r&   r   <module>r     s   " " " " " " 				 				      



  % % % % % %       v6""G$$v6h777  G   6z** $ $ $ $ $ $ 6 6 6 6 6 6 6 6 1 1 1 1 1 1        +++++++   NNN       & & & & & & % % % % % %
''V
,
,
,  	/	/	 	  ) ) ) J J J ( h#C #C  #CL   
 &e & & & &  T
 T
  T
n7 7 7
5 
5 
5/ / /" " "0K K K
/ / /  $ &7&7&788+ + 98+  &7&7&788$ $ 98$N ""E"""%A%A5%A%A%AA P P	 P6 $..	A 	A /.	A 

J 
J 
J I}#=>>4-88^" ^" 98 ?>^"B I}#=>>3 3 ?>3l I}#=>>$$ $$ ?>$$ $$ $$s   B% %B/.B/