+
    nDjT                    *   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^ RIHt  ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIH t H!t!H"t"H#t#H$t$  ^ RI%t& ^ RI'H(t)  ^ RI*H+t, ]PZ                  PP                  t. ! R R4      t/R t0R	 t1R
 t2]Pf                  R 4       t4]Pf                  R 4       t5]Pf                  R 4       t6]Pf                  ! RR7      R 4       t7]Pf                  R 4       t(]Pf                  ! RR.RR.R7      R 4       t8]PZ                  PV                  R 4       t9R t:]PZ                  PV                  R 4       t;R t<R t=]PZ                  PV                  R 4       t>]PZ                  PV                  R 4       t?]PZ                  PV                  R 4       t@]PZ                  PV                  R  4       tA]PZ                  PV                  R! 4       tB]PZ                  PV                  R" 4       tCR# tDR$ tER% tF]PZ                  P                  R&. ERO4      R' R( l4       tHR) tIR* tJ]PZ                  PV                  R+ 4       tK]PZ                  PV                  R, 4       tL]PZ                  PV                  R- 4       tMR. tNR/ tO]PZ                  P                  R0]P                  ! R1RR27      R3R4..4      ]PZ                  P                  R5RR.4      ]PZ                  PV                  R6 4       4       4       tQ]PZ                  PV                  R7 4       tR]PZ                  PV                  ]PZ                  P                  R8 4       4       tTR9 tUR: tV]PZ                  PV                  R; 4       tW]PZ                  PV                  ERR< l4       tX]PZ                  PV                  R= 4       tY]PZ                  PJ                  ]PZ                  PV                  R> 4       4       tZ]PZ                  PV                  R? 4       t[]PZ                  PV                  R@ 4       t\]PZ                  PV                  RA 4       t]]PZ                  PJ                  ]PZ                  PV                  RB 4       4       t^]PZ                  PV                  RC 4       t_]PZ                  PV                  RD 4       t`ERRE lta]PZ                  PJ                  ]PZ                  PV                  RF 4       4       tb]PZ                  PV                  RG 4       tc]PZ                  PJ                  ]PZ                  PV                  RH 4       4       td]PZ                  PV                  RI 4       te]PZ                  PV                  RJ 4       tf]PZ                  PV                  RK 4       tg]PZ                  PV                  RL 4       th]PZ                  PV                  RM 4       ti]PZ                  PV                  RN 4       tj]PZ                  PJ                  ]PZ                  PV                  RO 4       4       tk]PZ                  PV                  ]PZ                  P                  RPRQ RR .4      RS 4       4       tl]PZ                  PV                  ]PZ                  P                  RTRR.4      ]PZ                  P                  RPRU RV .4      RW 4       4       4       tm]PZ                  P                  RPRX RY .4      RZ 4       tn]PZ                  P                  RPR[ R\ .4      R] 4       toR^ tpR_ tq]PZ                  PV                  ]PZ                  PJ                  R` 4       4       trRa tsRb ttRc tuRd tvRe twRf txRg ty]PZ                  PV                  Rh 4       tzRi t{ERRj lt|Rk t}Rl t~Rm t]PZ                  PV                  Rn 4       t]PZ                  PV                  Ro 4       t]PZ                  PV                  Rp 4       t]PZ                  PV                  Rq 4       t]PZ                  PV                  Rr 4       t]PZ                  PV                  Rs 4       t]PZ                  PV                  Rt 4       t]PZ                  PV                  Ru 4       t]PZ                  PV                  Rv 4       t]PZ                  PV                  Rw 4       tRx tRy tRz tR{ t]PZ                  P                  R|RR.4      R} 4       tR~ t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       tR tR t]PZ                  PV                  ]PZ                  P                  RRR.4      ]PZ                  P                  RRR.4      ]PZ                  P                  RTRR.4      ]PZ                  P                  R. ERO. ERO3. ERO. ERO3. ERO. ERO3. ERO. ERO3. ERO. ERO3. ERO. ER	O3. ER
O. ER
O3.4      R 4       4       4       4       4       t]PZ                  PJ                  R 4       t]Pf                  R 4       t]PZ                  PV                  ]PZ                  P                  R 4       4       t]PZ                  PV                  ]PZ                  P                  R 4       4       t]PZ                  PV                  ]PZ                  P                  R 4       4       t]PZ                  PV                  ]PZ                  P                  R 4       4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PJ                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       tR tR tR tR t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       tR t]PZ                  EPT                  R 4       t]PZ                  EPT                  R 4       tR t]PZ                  EPT                  R 4       t]PZ                  PJ                  R 4       t]PZ                  PJ                  ]PZ                  P                  R. ERO4      R 4       4       tR tR tR t]PZ                  PJ                  R 4       t]PZ                  PJ                  R 4       t]PZ                  PJ                  R 4       tR tR tR t]PZ                  PJ                  ]PZ                  P                  R. ERO4      R 4       4       tR t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  ]PZ                  EP{                  ]EP|                  R8H  RR7      R 4       4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  R 4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       tR tR t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  R 4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       tR t]PZ                  PJ                  ]PZ                  PV                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       tR tERR lt]PZ                  PV                  R 4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       tR tR tR t]PZ                  PV                  ]PZ                  P                  R 4       4       tR t]PZ                  PJ                  R 4       tERR ltR tR t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       tR tR tR tR tR t]PZ                  P                  ]PZ                  PV                  R 4       4       tR t]PZ                  PV                  R 4       t]PZ                  PV                  R 4       t]PZ                  PV                  ]PZ                  PJ                  R 4       4       tR t]PZ                  PV                  R 4       t]PZ                  PV                  ]PZ                  P                  R 4       4       tRt]PZ                  PV                  ]PZ                  P                  R 4       4       t]PZ                  PV                  R 4       t]PZ                  PP                  R 4       t]PZ                  PP                  R 4       t]PZ                  PP                  R 4       t]PZ                  PP                  R 4       t]PZ                  PP                  R 4       t]PZ                  PP                  R 4       t]PZ                  PP                  R 4       t]PZ                  P                  RRR.4      R 4       t]PZ                  P                  RRR.4      R 4       tR tR t]PZ                  P                  RER4      R 4       tR t]PZ                  PV                  R 4       Et R EtR Et]PZ                  P                  RRR.4      R 4       EtR EtR EtER  EtR#   ] d    Rt ELi ; i  ] d    Rt& ELi ; i  ] d    Rt) ELi ; i  ] d    Rt, ELi ; i(      N)copytree)quote)is_threading_enabled)FSProtocolClassProxyHandler_configure_s3_limited_user_filesystem_uri
change_cwdc                   0   a  ] tR t^Et o R tRR ltRtV tR# )TableStreamWrapperc                    Wn         R # Ntable)selfr   s   &&T/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/test_dataset.py__init__TableStreamWrapper.__init__F   s    
    Nc                8    V P                   P                  V4      # r   )r   __arrow_c_stream__)r   requested_schemas   &&r   r   %TableStreamWrapper.__arrow_c_stream__I   s    zz,,-=>>r   r   r   )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   E   s     ? ?r   r   c           	      >   ^ RI p^ RIpVP                   ! R^^4      pVP                  ! ^R7      pVP                  . RO4      p. p\	        V 4       F1  pVP                  W7\        V4      \        V4      34       W4,          pK3  	  \        P                  ! V. ROR7      # )r   Ni  )dayscolumns)greenblueyellowredorange)dateindexvaluecolor)
datetime	itertools	timedeltacyclerangeappendfloatnextpd	DataFrame)nr.   r/   dayintervalcolorsdatais   &       r   _generate_datar>   M   s    


D!Q
'C!!q)H__IJFD1XSU1XtF|45  <<&IJJr   c           
         \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P
                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p\         P                  P                  WRR7      pVP                  4       # )r*   r+   r,   r-   F)schemapreserve_index)
par@   fielddate32int64float64stringTablefrom_pandasreplace_schema_metadata)dfr@   r   s   &  r   _table_from_pandasrL   ]   s    YY
%
"((*%
"**,'
"))+&	 F HH  5 IE((**r   c                    V P                  4        F  pVP                  4       ;_uu_ 4       p\        V\        P                  4      '       g   Q hVP
                  '       d   Q hVP                  4       '       g   Q hVP                  4       '       g   Q hVP                  4       '       d   Q h R R R 4       K  	  R #   + '       g   i     K  ; ir   )	get_fragmentsopen
isinstancerB   
NativeFileclosedseekablereadablewritable)datasetfragmentnfs   &  r   +assert_dataset_fragment_convenience_methodsrY   h   s    ))+]]__b"--0000yyy =;;== =;;== ={{}}$$} _ ,__s#   4B:!B:9B:B:)B::Cc                  0   \         P                  ! 4       p R R.p\        V4       EF  w  r#V RV R2pV P                  V4       V P	                  V4      ;_uu_ 4       p\        \        ^4      4      \        \        \        \        ^4      4      4      \        \        \        \        ^4      4      4      V.^,          \        ^4       Uu. uF   pRV^,          R\        V^,          4      /NK"  	  up.p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R	\        P                  ! 4       3R
\        P                  ! R\        P                  ! 4       R\        P                  ! 4       /4      3.4      p\        P                   ! WxR7      p	\        P"                  P%                  V	.4      p
\&        P(                  ! W4       RRR4       EK  	  V # u upi   + '       g   i     EK  ; i)zsubdir/1/xxxzsubdir/2/yyyz/file.parquetabi64f64strconststructr@   N)fs_MockFileSystem	enumerate
create_diropen_output_streamlistr2   mapr4   r`   rB   r@   rE   rF   rG   rb   record_batchrH   from_batchespqwrite_table)mockfsdirectoriesr=   	directorypathoutjr<   r@   batchr   s              r   ro   ro   s   s   !F 	K
 "+.E!H-)$&&t,,U1XSa)*SeAh'(a8=aA1#q1uc3q1u:.AD YY
#

%		$"((*%299c288:sBIIK%HIJ  F OOD8EHH))5'2ENN5&% -, /. M B -,,s    A,H	&G>/D H>HHc                    \         P                  ! 4       p \        P                  ! R\        P                  ! ^^.\        P
                  ! 4       R7      R\        P                  P                  \        P                  ! ^ ^.\        P
                  ! 4       R7      RR.4      /4      p\        P                  ! R\        P                  ! ^^.\        P                  ! 4       R7      R\        P                  P                  \        P                  ! ^^ .\        P                  ! 4       R7      RR.4      /4      pV P                  R4       R	pV P                  V4      ;_uu_ 4       p\        P                  ! W4       R
R
R
4       RpV P                  V4      ;_uu_ 4       p\        P                  ! W$4       R
R
R
4       WV3#   + '       g   i     LN; i  + '       g   i     L'; i)z
Creates a _MockFileSystem with two parquet files that have promotable schemas.
- file1: value: int8, dictionary: dictionary<int8, string>
- file2: value: uint16, dictionary: dictionary<int16, string>
r,   type
dictionaryr\   r]   dcz
subdir/zzzzsubdir/zzz/file1.parquetNzsubdir/zzz/file2.parquet)rd   re   rB   r   arrayint8DictionaryArrayfrom_arraysuint16int16rg   rh   rm   rn   )ro   table1table2path1rs   path2s         r   promotable_mockfsr      s[    !FXX1a&rwwy1b((44HHaV"''),#J
 F XX1a&ryy{3b((44HHaV"((*-#J
 F l#&E		"	"5	)	)S
v# 
* 'E		"	"5	)	)S
v# 
* % 
*	) 
*	)s   "F?G?G	G"	c                    aaa	 ^ RI HpHp ^RIHp V! 4       oV3R lo\        4       o	VV	3R lpV P                  VRV4       V! V! S4      4      p\        P                  VV	3R l4       pWV3# )r   )LocalFileSystemPyFileSystem)r   c                 b   < V  Uu0 uF  pSP                  \        V4      4      kK  	  up# u upi r   )normalize_pathr`   )pathsplocalfss   & r   
normalized#open_logging_fs.<locals>.normalized   s*    8=>1&&s1v.>>>s   #,c                    < SP                  \        V4      4      pSP                  V4       V P                  P	                  V4      # r   )r   r`   add_fsopen_input_file)r   rr   r   openeds   &&r   r   (open_logging_fs.<locals>.open_input_file   s8    %%c$i0

4xx''--r   r   c              3      <"   SP                  4         R x  S! S4      S! V 4      8X  g   Q hR #   S! S4      S! T 4      8X  g   Q hi ; i5ir   )clear)expected_openedr   r   s   &r   assert_opens%open_logging_fs.<locals>.assert_opens   sH     	Ef%O)DDDD:f%O)DDDDs   A
0 A
AA
)	
pyarrow.fsr   r   test_fsr   setsetattr
contextlibcontextmanager)
monkeypatchr   r   r   r   rd   r   r   r   r   s
   &      @@@r   open_logging_fsr      sm    8%G? UF. &7I	l7+	,BE E r   module)scopec           
         V P                   P                  P                  R 4       V P                   P                  P                  R4       \        R4      p\        P
                  ! 4       p\        V4      p\        ^ W3^,          4       Uu. uF  qAP                  WDV^,          ,            NK   	  upw  rVrxVP                  R4       \        V4      p\        \        ^ W3^
,          4       Uu. uF  qEP                  WDV^
,          ,            NK   	  up4       FM  w  rIRV R2p
VP                  V
4      ;_uu_ 4       p\        P                  ! \        V	4      V4       RRR4       KO  	  VP                  R4       VP                  VP                   P"                  P$                  VP&                  .4       Fs  w  rRV^ ,           R	V^,           2pV R
2p
VP                  V4       VP                  V
4      ;_uu_ 4       p\        P                  ! \        V	4      V4       RRR4       Ku  	  VP                  R4       VP                  VP                   P"                  P(                  VP                   P"                  P*                  .4       Fs  w  rRV^ ,           RV^,           2pV R
2p
VP                  V4       VP                  V
4      ;_uu_ 4       p\        P                  ! \        V	4      V4       RRR4       Ku  	  VP                  R4       VP                  R4       Fb  w  rRV 2pV R
2p
VP                  V4       VP                  V
4      ;_uu_ 4       p\        P                  ! \        V	4      V4       RRR4       Kd  	  V# u upi u upi   + '       g   i     EK  ; i  + '       g   i     EK	  ; i  + '       g   i     EKG  ; i  + '       g   i     K  ; i)pandasparquet  plainzplain/chunk-r[   Nr@   zschema//z/chunk.parquethivez
hive/year=z/month=
hive_colorr-   zhive_color/color=)configpyarrowrequiresr>   rd   re   lenr2   ilocrg   rf   rh   rm   rn   rL   groupbyr*   dt	dayofweekr-   yearmonth)requestrK   ro   r8   r=   df_adf_bdf_cdf_dchunkrr   rs   partfolders   &             r   multisourcefsr      s#   NN##H-NN##I.		B!F 	BA9>q!T9JK9JAgga!Q$/9JKD gD	AU1aB=OP=OyyQU73=OPQaS)&&t,,NN-e4c: -, R h||TYY\\%;%;TZZ$HI47)1T!WI.(&!&&t,,NN-e4c: -,	 J f||TYY\\%6%6		8J8J$KLd1gYgd1gY7(&!&&t,,NN-e4c: -,	 M l#||G,$TF+(&!&&t,,NN-e4c: -,	 - MM L Q,,, -,, -,, -,,s<   $N+$N:!N=!N*!N?!ON'*N<?OO%c           
         \         P                  ! 4       p\        P                  ! R RR7      p\         P                  ! R 4      p\         P
                  ! \        P                  ! \        P                  ! R\        P                  ! 4       4      \        P                  ! R\        P                  ! 4       4      .4      4      Vn        \         P                  ! WW4      pVP                  4       # )subdirT	recursivegroupkey)dsParquetFileFormatrd   FileSelectorFileSystemFactoryOptionsDirectoryPartitioningrB   r@   rC   int32rG   partitioningFileSystemDatasetFactoryfinish)ro   formatselectoroptionsfactorys   &    r   rV   rV     s    !!#Fx48H))(3G33
		HHWbhhj)HHUBIIK(
 	G ))&FLG>>r   TFthreadedserial)paramsidsc                D   a V P                   o ! V3R lR4      pV! 4       # )zQ
Fixture which allows dataset scanning operations to be
run with/without threads
c                   ^   <a  ] tR tRt o V3R ltV3R ltR tR tR tR t	R t
R	 tR
tV tR# )dataset_reader.<locals>.readeri)  c                   < SV n         R # r   use_threads)r   r   s   &r   r   'dataset_reader.<locals>.reader.__init__+  s    *Dr   c                6   < R V9   d   \        R4      hSVR &   R# )r   z9Invalid use of dataset_reader, do not specify use_threadsN)	Exception)r   kwargsr   s   &&r   _patch_kwargs,dataset_reader.<locals>.reader._patch_kwargs.  s)    &$& & %0F=!r   c                H    V P                  V4       VP                  ! R/ VB # N )r   to_tabler   rV   r   s   &&,r   r   'dataset_reader.<locals>.reader.to_table5  s$    v&##-f--r   c                H    V P                  V4       VP                  ! R/ VB # r   )r   
to_batchesr   s   &&,r   r   )dataset_reader.<locals>.reader.to_batches9  $    v&%%///r   c                H    V P                  V4       VP                  ! R/ VB # r   )r   scannerr   s   &&,r   r   &dataset_reader.<locals>.reader.scanner=  s"    v&??,V,,r   c                J    V P                  V4       VP                  ! V3/ VB # r   )r   head)r   rV   num_rowsr   s   &&&,r   r   #dataset_reader.<locals>.reader.headA  s$    v&<<3F33r   c                J    V P                  V4       VP                  ! V3/ VB # r   )r   take)r   rV   indicesr   s   &&&,r   r   #dataset_reader.<locals>.reader.takeE  s$    v&<<2622r   c                H    V P                  V4       VP                  ! R/ VB # r   )r   
count_rowsr   s   &&,r   r   )dataset_reader.<locals>.reader.count_rowsI  r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r    r   s   @r   readerr   )  s2     	+	0	.	0	-	4	3	0 	0r   r   )param)r   r   r   s   & @r   dataset_readerr     s"     --K"0 "0H 8Or   c           	      \   \         P                  ! \         P                  ! R \         P                  ! 4       4      .4      p\        P
                  ! 4       pRR.p\        ^^4       Uu. uF  p\        P                  ! R4      V8H  NK  	  pp\        W54       UUu. uF  w  rgVP                  W`V4      NK  	  ppp\        P                  ! R4      \        P                  ! R4      8H  p	\        P                  ! WVW	R7      p
\        P                  P                  W1W WYR7      pW3 EFr  p\        V\        P                  4      '       g   Q h\        VP                  \        P
                  4      '       g   Q hVP                  P                  V	4      '       g   Q h\!        VP"                  4      \!        V4      8X  g   Q h\%        VP'                  4       4      p\        WV4       EFj  w  rpVP                  P                  V4      '       g   Q hVP(                  V8X  g   Q h\        VP                  \        P
                  4      '       g   Q h\        V\        P*                  4      '       g   Q hVP,                  ^ .8X  g   Q hVP.                  ^8X  g   Q h\%        VP1                  4       4      pVP.                  \3        V4      u;8X  d	   ^8X  g   Q h Q h\        V^ ,          \        P*                  4      '       g   Q hV^ ,          P(                  V8X  g   Q hV^ ,          P,                  ^ .8X  g   Q hV^ ,          P.                  ^8X  d   EKk  Q h	  \%        VP'                  \        P                  ! R 4      ^ 8H  R7      4      p\3        V4      ^8X  d   EKs  Q h	  \        P                  ! WW R	7      pVP                  P                  \        P                  ! R
4      4      '       g   Q h\        P                  P                  W1W R	7      pVP                  P                  \        P                  ! R
4      4      '       g   Q hVP'                  4        F:  pVP                  P                  \        P                  ! R
4      4      '       d   K:  Q h	  \4        P6                  ! \8        RR7      ;_uu_ 4        \        P                  ! WV4       RRR4       \4        P6                  ! \8        RR7      ;_uu_ 4        \        P                  ! WV^R7       RRR4       \4        P6                  ! \8        RR7      ;_uu_ 4        \        P                  P                  WR7       RRR4       R# u upi u uppi   + '       g   i     L; i  + '       g   i     L}; i  + '       g   i     R# ; i)ra   subdir/1/xxx/file0.parquetsubdir/2/yyy/file1.parquetr   leveli9  )r@   r   
filesystemroot_partition)r@   r   r  
partitionsr  filterr@   r   r  Tzincorrect typematchN)r@   r   r  r   )rB   r@   rC   rE   r   r   r2   zipmake_fragmentscalarFileSystemDataset
from_pathsrP   r   partition_expressionequalsr   filesri   rN   rr   ParquetFileFragment
row_groupsnum_row_groupssplit_by_row_groupr   pytestraises	TypeError)ro   r@   file_formatr   xr  rr   r   	fragmentsr  dataset_from_fragmentsdataset_from_pathsrV   rW   	partitionrow_group_fragmentss   &               r   test_filesystem_datasetr"  P  s   YY
"((*% F &&(K)+GHE16q!=A"((6"a'J=#&u#9;#9ZT **4>#9  ;XXg&"))D/9N11 --88[ 9 
 +?'2#7#78888'.."*>*>????++22>BBBB7==!SZ///..01	),YE)J%H0077	BBBB==D(((hoor/C/CDDDDh(>(>????&&1#---**a///"&x'B'B'D"E**c2E.FK!KKKKK1!4b6L6LMMMM&q)..$666&q)44;;;&q)88A=== *K ..bhhw6G16L.MN	9~"""/ @4 ""G ''..ryy???? ""--[ . G ''..ryy????))+,,33BIIdODDDD , 
y(8	9	9
YV< 
: 
y(8	9	9
Y$/	C 
: 
y(8	9	9
''	'F 
:	9{ >;j 
:	9 
:	9 
:	9	9s0   '"U)U.4U48V>!V4V	V	V+	c                    \         P                  ! \         P                  ! R \         P                  ! 4       4      .4      p\        P
                  ! 4       pR.p\        P                  P                  W1V\        P                  ! 4       R7      pVP                  4        \        P                  ! \        4      ;_uu_ 4        V P                  V4       RRR4       R#   + '       g   i     R# ; i)f1znonexistingfile.arrowr  N)rB   r@   rC   rE   r   IpcFileFormatr  r  rd   r   rN   r  r  FileNotFoundErrorr   )r   r@   r  r   rV   s   &    r   1test_filesystem_dataset_no_filesystem_interactionr'    s    YY
rxxz" F ""$K$%E ""--[%%' . G  
(	)	)( 
*	)	)	)s   ?CC,	c                 	   \        V \        P                  4      '       g   Q h\        V P                  \        P
                  4      '       g   Q h\        P                  ! R 4      p\        P                  ! \        RR7      ;_uu_ 4        V P                  VR7       RRR4       \        P                  ! R 4      ^,           p\        P                  ! \        RR7      ;_uu_ 4        V P                  VR7       RRR4       \        P                  ! . RO\        P                  ! 4       R7      p\        P                  ! . RO\        P                  ! 4       R7      pVP                  V 4       Fu  p\        V\        P                  4      '       g   Q hVP!                  ^ 4      P#                  V4      '       g   Q hVP!                  ^4      P#                  V4      '       d   Ku  Q h	  VP%                  V 4      P'                  4        FQ  p\        V\        P(                  4      '       g   Q h\        VP*                  \        P,                  4      '       d   KQ  Q h	  VP                  V 4      p\        V\        P.                  4      '       g   Q h\1        V4      ^
8X  g   Q h\        P                  ! R 4      ^8H  pV P                  RVR7      p	V	P3                  R4      P5                  4       p	V	R ,          ^^.8X  g   Q hV	R	,          R
R
.8X  g   Q h\7        V	R,          4      ^^.8X  g   Q h\7        V	R,          4      RR.8X  g   Q h\        P                  ! R4      R8H  pV P                  RVR7      p	V	P3                  R4      P5                  4       p	V	R ,          . RO8X  g   Q hV	R	,          . RO8X  g   Q hV	R,          . RO8X  g   Q hV	R,          . RO8X  g   Q hR \        P                  ! R 4      R	\        P                  ! R	4      R\        P                  ! R4      R8H  /p
V P                  RV
R7      p	V	P3                  R 4      P5                  4       p	\9        V	4      . RO8X  g   Q hV	R ,          . RO8X  g   Q hV	R	,          . RO8X  g   Q hV	R,          . RO8X  g   Q h\;        V 4       R#   + '       g   i     EL; i  + '       g   i     EL; i)r^   zmust evaluate to boolr	  r  Nrw   T)r   r  r   r_         ?r   xxxyyy1new)r   r$   r               )rb   r]   )r/  r2  r/  r2  )r)        @r)  r3  )r/  r/  r0  r0  )r*  r*  r+  r+  )r^   r_   r-  )
r   r   r/  r/  r0  r0  r1  r1  r2  r2  )
        r4  r)  r)         @r5        @r6  r3  r3  )
FFTTFFFFTT)rP   r   Datasetr@   rB   SchemarC   r  r  r  r   r|   rE   rF   r   RecordBatchcolumnr  r   scan_batchesTaggedRecordBatchrW   FragmentrH   r   sort_by	to_pydictsortedri   rY   )rV   r   non_boolean_exprnon_boolean_expr2expected_i64expected_f64ru   r   	conditionresult
projections   &&         r   test_datasetrH    s   grzz****gnnbii0000xx	y(?	@	@ 01 
A !+	y(?	@	@ 12 
A 88O"((*=L88O"**,?L**73%0000||A%%l3333||A%%l3333 4
  ''0==?%!5!56666%.."++6666 @ ##G,EeRXX&&&&u:1$I$yAF^^G$..0F%=QF"""%=RH$$$&/"q!f,,,&- UEN222 )S0I$yAF^^G$..0F%=L(((%=0000'?l***%=8888 	rxxrxxrxx(C/J
 $
CF^^E",,.F<0000%=::::%= ; ; ; ;%= 7 7 7 7/8u 
A	@	@ 
A	@	@s   	R%%R9%R6	9S
	c                    V w  rp\         P                  ! WV.\         P                  ! 4       4      p\        P                  ! \
        P                  R R7      ;_uu_ 4        VP                  4        RRR4       VP                  RR7      p\
        P                  ! \
        P                  ! R\
        P                  ! 4       4      \
        P                  ! R\
        P                  ! \
        P                  ! 4       \
        P                  ! 4       4      4      .4      pVP                  V4      '       g   Q hVP                  V4      pVP!                  4       pVP#                  RR7       \
        P$                  ! R\
        P&                  ! ^^.^^..\
        P                  ! 4       R	7      R\
        P&                  ! \
        P(                  P+                  \
        P,                  ! ^ ^.\
        P                  ! 4       R	7      R
R.4      \
        P(                  P+                  \
        P,                  ! ^^ .\
        P                  ! 4       R	7      RR.4      .4      /4      p	VP                  V	4      '       g   Q hVP                  R^R7      p
V
P                  R4      P.                  \
        P                  ! 4       8w  g   Q hR#   + '       g   i     ELW; i)zCUnable to merge: Field value has incompatible types: int8 vs uint16r	  N
permissivepromote_optionsr,   ry   Tfullrw   r\   r]   rz   r{   )rL  r  )r   r   r   r  r  rB   ArrowTypeErrorinspectr@   rC   r   ry   r   rG   r  r   r   validater   chunked_arrayr~   r   r|   rx   )r   ro   r   r   r   r@   expected_schemarV   r   expected_tableinspected_schema_one_frags   &          r   -test_dataset_factory_inspect_schema_promotionrV    s   ,F5)) 4 4 6G 

S
 
 		
 __\_:Fii
"((*%
r}}RXXZEF	! O ==))))nnV$GE	NNNXX!!Aq6Aq6"2Db&&**!Qbhhj1c
 **!Qbhhj1c
	(
 	 N <<'''' !($ !0 !3$**7388BHHJFFFG
 
 
s    J??K	c                 V   V w  rp\         P                  ! WV.\         P                  ! 4       4      p\        P                  ! \
        R R7      ;_uu_ 4        VP                  RR7       RRR4       \        P                  ! \
        RR7      ;_uu_ 4        VP                  RR7       RRR4       \        P                  ! \
        RR7      ;_uu_ 4        VP                  R	R7       RRR4       R#   + '       g   i     L; i  + '       g   i     Ld; i  + '       g   i     R# ; i)
z#Invalid promote_options: bad_optionr	  
bad_optionrK  Nz<Fragment count must be a non-negative int or None; got 'one'one)r  z9Fragment count must be a non-negative int or None; got -1)r   r   r   r  r  
ValueErrorrP  )r   ro   r   r   r   s   &    r   'test_dataset_factory_inspect_bad_paramsr\    s    ,F5)) 4 4 6G 
z)N	O	O5 
P 
X
 
 	%(

 
U
 
 	"%
 
 
P	O
 


 
 
s$   C1DD1D	D	D(	c                 h    V P                  ^^R7      p\        V4      pVP                  ^8X  g   Q hR# )   )fragment_readaheadbatch_readaheadN)r   r5   num_columns)rV   r   ru   s   &  r   test_scanner_optionsrb  1  s4      B JGME!!!r   c                    VP                  V \        P                  ! 4       R 7      p\        V\        P
                  4      '       g   Q h\        P                  ! \        P                  4      ;_uu_ 4        VP                  V R.R7       RRR4       VP                  V R.\        P                  ! 4       R7      pVP                  V P                  8X  g   Q hVP                  \        P                  ! R\        P                  ! 4       3.4      8X  g   Q h\        V\        P
                  4      '       g   Q hVP                  4       pVP                  4        F3  pVP                  VP                  8X  g   Q hVP                  ^8X  d   K3  Q h	  W2P!                  4       P#                  4       8X  g   Q hVP                  VP                  8X  g   Q h\%        VP&                  4       FA  p\        P(                  ! V.4      pVP+                  V4      VP+                  V4      8X  d   KA  Q h	  \        P                  ! \        P,                  4      ;_uu_ 4        VP+                  \        P(                  ! VP&                  .4      4       RRR4       VP&                  VP/                  4       8X  g   Q hVP                  V . RO\        P                  ! 4       R7      pVP                  4       p. ROpVP0                  V8X  g   Q hVP3                  R4      pVR,          P5                  4       R
.^,          R.^,          ,           8X  g   Q hVR,          P5                  4       ^ .^,          ^.^,          ,           8X  g   Q hVR,          P5                  4       ^ .^
,          8X  g   Q hVR	,          P5                  4       R.^
,          8X  g   Q hR#   + '       g   i     ELF; i  + '       g   i     EL_; i))memory_poolunknownr#   Nr^   )r$   rd  
__filename__fragment_index__batch_index__last_in_fragmentr   r  T)rf  rg  rh  ri  )r   rB   default_memory_poolrP   r   Scannerr  r  ArrowInvaliddataset_schemar@   projected_schemarE   r   r   ra  	to_readerread_allr2   r   r|   r   ArrowIndexErrorr   column_namesr>  	to_pylist)	rV   r   r   r   ru   r=   r   expected_namessorted_tables	   &&       r   test_scannerrv  8  s8   $$R335 % 7Ggrzz****	r	'	'w< 
( $$Wug131G1G1I % KG!!W^^333##ryy5"((*2E1F'GGGGgrzz****E##%||w77777  A%%% & %%'002222<<7333335>>"((A3-zz'"gll7&;;;; # 
r))	*	*RXXu~~./0 
+ >>W//1111$$W 7M 241G1G1I	 % KG
 E=N///==!34L%//1	%&*	%&*	+, , , *+557QC!GqcAg<MNNN(224b@@@,-779dVb[HHHQ 
(	'	'& 
+	*	*s   5O1OO	O,	c                    \         P                  ! 4       p\         P                  ! 4       p\         P                  ! V4        VP	                  4       p\
        P                  P                  V 4      pVP                  4       pVP	                  4       V8  g   Q h \         P                  ! V4       R #   \         P                  ! T4       i ; ir   )	rB   rj  system_memory_poolset_memory_poolbytes_allocatedr   rk  from_datasetr   )rV   old_poolpoolallocated_beforer   _s   &     r   test_scanner_memory_poolr  i  s     %%'H   "Dt%//1**))'2##%(8888
8$8$s   AB1 1C	c                    VP                  V ^ 4      pV\        P                  P                  . V P                  R7      8X  g   Q hVP                  V ^R.R7      P                  4       pVR^ ./8X  g   Q hVP                  V ^R.\        P                  ! R4      ^8  R7      P                  4       pVR^^./8X  g   Q hVP                  V RR.R7      P                  4       pVR\        \        ^4      4      ^,          /8X  g   Q h\        V P                  4       4      pVP                  ^R.R7      P                  4       pVR^ ./8X  g   Q hVP                  RR.R7      P                  4       pVR\        \        ^4      4      /8X  g   Q hR# )r   rc   r^   r#   r$   r     N)r   rB   rH   rl   r@   r?  r   rC   ri   r2   r5   rN   )rV   r   rF  rW   s   &&  r   	test_headr  |  s{     !,FRXX**2gnn*EEEE  !eW =GGIFeaS\!!!  !eW(*!(; ! ==FY[ eaV_$$$  $ @JJLFeT%(^a/0000G))+,H]]1ug].88:FeaS\!!!]]4%]1;;=FeT%(^,,,,r   c                 6   \        V P                  4       4      p^^.\        P                  ! ^^.4      3 F;  pVP	                  V4      P                  V4      pVP                  W#4      V8X  d   K;  Q h	  \        P                  ! \        4      ;_uu_ 4        VP                  V\        P                  ! ^.4      4       RRR4       ^^.\        P                  ! ^^.4      3 F9  pVP                  W4      VP	                  V 4      P                  V4      8X  d   K9  Q h	  \        P                  ! \        4      ;_uu_ 4        VP                  V \        P                  ! ^
.4      4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r/  N)	r5   rN   rB   r|   r   r   r  r  
IndexError)rV   r   rW   r   expecteds   &&   r   	test_taker    s?   G))+,HFBHHaV,-!**8499'B""85AAA . 
z	"	"Hbhhsm4 
# FBHHaV,-""!/!8!8!A!F!Fw!OP 	P P . 
z	"	"GRXXrd^4 
#	" 
#	" 
#	"	"s   (E4(F4F	F	c                     \        V P                  4       4      pVP                  V4      ^8X  g   Q hVP                  V\        P                  ! R4      ^8H  R7      ^8X  g   Q hVP                  V 4      ^
8X  g   Q hVP                  V \        P                  ! R4      ^8H  R7      ^8X  g   Q hVP                  V \        P                  ! R4      ^8  R7      ^8X  g   Q hVP                  V \        P                  ! R4      ^ 8  R7      ^ 8X  g   Q hR# )   r^   r  r   N)r5   rN   r   r   rC   )rV   r   rW   s   && r   test_count_rowsr    s   G))+,H$$X.!333$$%A- % /234 4 4 $$W-333$$)Q. % 0345 5 5 $$WRXXe_5I$JaOOO$$WRXXe_q5H$IQNNNr   c                     \         P                  \         P                  \         P                  .p V  F5  p\        P
                  ! \        4      ;_uu_ 4        V! 4        R R R 4       K7  	  R #   + '       g   i     KL  ; ir   )r   
FileFormatrk  Partitioningr  r  r  )classesklasss     r   test_abstract_classesr    sP    




G
 ]]9%%G &% %%%s   A--A>c                     \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \
        P                  \
        P                  \
        P                  3 FD  pV! V 4      p\        V\
        P                  4      '       g   Q hW!! V 4      8X  g   Q hVR8w  d   KD  Q h	  \         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \
        P                  ! V 4      p\        VP                  4      ^8X  g   Q h\        ;QJ d&    R VP                   4       F  '       d   K   RM	  RM! R VP                   4       4      '       g   Q hVP                  R4      p\        V\
        P                  4      '       g   Q h\
        P                  ! R4      ^8H  \
        P                  ! R4      R	8H  ,          pVP!                  V4      '       g   Q h\"        P$                  ! \         P&                  4      ;_uu_ 4        VP                  R
4       RRR4       VP                  R4      p\
        P                  ! R4      ^8H  pVP!                  V4      '       g   Q hV\
        P                  ! V RR7      8w  g   Q h\         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \
        P                  ! V RR7      p\        VP                  4      ^8X  g   Q h\        ;QJ d&    R VP                   4       F  '       d   K   RM	  RM! R VP                   4       4      '       g   Q hVP                  R4      p\
        P                  ! R4      \
        P(                  ! ^ 4      8H  \
        P                  ! R4      \
        P(                  ! ^4      8H  ,          pVP!                  V4      '       g   Q hVP                  R4      p\
        P                  ! R4      P+                  4       \
        P                  ! R4      \
        P(                  ! ^4      8H  ,          pVP!                  V4      '       g   Q hR$ FI  p\"        P$                  ! \         P&                  4      ;_uu_ 4        VP                  V4       RRR4       KK  	  V\
        P                  ! V RR7      8w  g   Q h\         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \
        P                  ! V 4      p\        VP                  4      ^8X  g   Q h\        ;QJ d&    R VP                   4       F  '       d   K   RM	  RM! R VP                   4       4      '       g   Q hVP                  R4      p\        V\
        P                  4      '       g   Q h\
        P                  ! R4      ^8H  \
        P                  ! R4      R	8H  ,          pVP!                  V4      '       g   Q h\"        P$                  ! \         P&                  4      ;_uu_ 4        VP                  R4       RRR4       V\
        P                  ! V RR7      8w  g   Q h\         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P,                  ! \         P.                  ! 4       \         P0                  ! 4       4      4      .4      p \
        P                  ! V R\         P2                  ! . R%O4      /R7      pVP                  ^ ,          e   Q hVP                  ^,          P5                  4       . R%O8X  g   Q hV\
        P                  ! V RR7      8w  g   Q h\
        P                  ! \         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P,                  ! \         P.                  ! 4       \         P0                  ! 4       4      4      .4      R\         P2                  ! . R%O4      /R7      pVP                  ^ ,          e   Q hVP                  ^,          P5                  4       . R%O8X  g   Q h\         P6                  ! \         P2                  ! \9        ^4      4      \         P2                  ! R \9        ^4       4       4      \         P2                  ! R.^
,          R.^
,          ,           4      .. R&OR7      p\         P                  ! R\         P0                  ! 4       3.4      p\
        P                  \
        P                  \
        P                  3 F  p\:        P<                  ! 4       ;_uu_ 4       pV! V4      p\
        P>                  ! WhR VR!7       \
        P@                  ! VR VR!7      p	V	PC                  4       p
V
P!                  V4      '       g   Q h RRR4       K  	  \:        P<                  ! 4       ;_uu_ 4       p\
        P                  ! V4      p\
        P>                  ! WhR VR!7       Rp	\"        P$                  ! \D        R"R#7      ;_uu_ 4        \
        P@                  ! VR \G        ^ 4      R!7      p	RRR4       V	e   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     EK  ; i  + '       g   i     EL; i  + '       g   i     EK  ; i  + '       g   i     Ls; i  + '       g   i     R# ; i)'r^   r_   zother objectr   r   c              3   (   "   T F  qR J x  K
  	  R # 5ir   r   .0r  s   & r   	<genexpr>$test_partitioning.<locals>.<genexpr>       <";QDy";   FTz/3/3.14/gQ	@z/prefix/3/aaaNz/3/nonesegment_encodingalphabetaxyz)null_fallbackc              3   (   "   T F  qR J x  K
  	  R # 5ir   r   r  s   & r   r  r    r  r  z/alpha=0/beta=3/z/alpha=xyz/beta=3/otherc              3   (   "   T F  qR J x  K
  	  R # 5ir   r   r  s   & r   r  r     r  r  z3_3.14_prefix_3_aaa_dictionariesc              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   randomr  r  s   & r   r  r  &       %Iy!fmmooy   "$r\   r]   r   namesipcr   r   z,Expected Partitioning or PartitioningFactoryr	  )z/alpha=one/beta=2/z/alpha=one/z
/beta=two/)firstsecondthirdr$  f2r   )$rB   r@   rC   rE   rF   r   r   HivePartitioningFilenamePartitioningrP   r  r   r  allparse
Expressionr  r  r  rl  r  is_nullry   r}   rG   r|   rs  r   r2   tempfileTemporaryDirectorywrite_datasetrV   r   r[  int)r@   r  r   exprr  
shouldfailr   partitioning_schematempdir	load_backload_back_tables              r   test_partitioningr    st   YY

#


% F **B,?,?))+V},8888uV},,,~---+ YY
"((*%


% F ++F3L|(()Q...3<,";";<333<,";";<<<<<j)DdBMM****!Q&288E?d+BCH;;x    	r	'	'?+ 
( e$Dxx A%H;;x    233FVTTTTYY
"((*%
$ F &&vUCL|(()Q...3<,";";<333<,";";<<<<<01D	'	biil	*	&	RYYq\	)	+  ;;x    23D	'		"	"	$(8BIIaL(H	I  ;;x    I
]]2??++z* ,+ J 2..vWMMMMYY
"((*%


% F **62L|(()Q...3<,";";<333<,";";<<<<<i(DdBMM****!Q&288E?d+BCH;;x    	r	'	'?+ 
( 2226FSSSSYY
"((*%
bggi=> F ++eRXX.J%KLL $$Q'///$$Q'113 8$ $ $ $233FNNNN**
		HHWbhhj)HHUBMM"'')RYY[AB
 	
 28889
L $$Q'///$$Q'113 8$ $ $ $ HH
rRXX%IuRy%II
#sebj()+ #E
 ))fbiik%:$;<**B,?,?))+((**g !45LU$)F

750<>I'002O"))%0000 +*+ 
	$	$	&	&'//0CD
 %L	B	]]:!OQ Q

75s1vNIQ     
'	&A 
(	'	'< ,++$ 
(	'	'L +**Q Q 
'	&	&sV   9m-n1nA$n*Ao1#n?	o-m>	nn'	*n<?o
oo#	c                 D   \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p\
        P                  ! V4      \
        P                  ! V4      \
        P                  ! V4      \
        P                  ! VRR7      \
        P                  ! VRR7      \
        P                  ! VRRR7      .pV F*  pV P                  V P                  V4      4      V8X  d   K*  Q h	  R# )r^   r_   r  r  r  )r  r  N)rB   r@   rC   rE   rF   r   r   r  r  loadsdumps)pickle_moduler@   partsr   s   &   r   test_partitioning_picklingr  B  s    YY

#


% F
 	  (
F#
'
  &A
@
FV5QE ""=#6#6t#<=EEE r   z@flavor, expected_defined_partition, expected_undefined_partitionc                <    V ^8  d   QhR\         R\        R\        /# )r0  flavorexpected_defined_partitionexpected_undefined_partition)r`   tuple)r   s   "r   __annotate__r  \  s&     8
 8
8
 %8
 #(8
r   c                    \         P                  ! R \         P                  ! 4       3R\         P                  ! 4       3.4      p\        \        V 4      ! VR7      pVP                  \        P                  ! R4      R8H  \        P                  ! R 4      R8H  ,          4      V8X  g   Q hVP                  RP                  V4      4      P                  \        P                  ! R 4      R8H  \        P                  ! R4      R8H  ,          4      '       g   Q hVP                  \        P                  ! R4      R8H  \        P                  ! R 4      R8H  ,          \        P                  ! R4      R8H  \        P                  ! R 4      R8H  ,          ,          4      V8X  g   Q hVP                  \        P                  ! R4      R8H  \        P                  ! R 4      R8H  ,          \        P                  ! R4      R8H  \        P                  ! R 4      R8H  ,          ,          4      V8X  g   Q hV R8w  db   \        P                  ! \         P                  RR7      ;_uu_ 4        VP                  \        P                  ! R4      R8H  4       R	R	R	4       R	# VP                  \        P                  ! R4      R8H  4      R
8X  g   Q hR	#   + '       g   i     R	# ; i)foobarrc   zant beeAr   r  zDNo partition key for foo but a key was provided subsequently for barr	  N)zbar=ant%20bee )rB   r@   rG   getattrr   r   pcrC   r  joinr  r  r  rl  )r  r  r  r  r   s   &&&  r    test_dataset_partitioning_formatr  T  sG    ))eRYY[%9E299;;O$PQ2v&.ABL 	RXXe_	9bhhuoQT>TUV%	&	&
 chh'ABCJJ	%C	BHHUOy$@A    	hhuo*rxx#/EF9,%C1GHJ	
 &		&	& 	hhuo*rxx#/EF9,%C1GHJ	
 (		(	( ## ]]OO(
 
 "((5/Y">A
 
 ""RXXe_	%AD I
 
 	
 

 
 
s   )J>>K	c                     \         P                  ! \        P                  ! R . R	OR. R
O/4      4      p \         P                  ! R 4      p\         P                  ! R4      pV P                  RV^,           RW!,
          RV^,          RVP                  R4      V,          /R7      p\        P                  ! R. ROR. ROR. ROR. RO/4      pVP                  V4      '       g   Q hR# )r\   r]   za+1zb-aza*2za/brF   r#   Nr/  r0  r1  )r0  r0  r0  r0  r1  r2  )r/  r   rZ  )r0  r2     )      ?r)  g      ?)r   rV   rB   r   rC   r   castr  )rV   r\   r]   rF  r  s        r   $test_expression_arithmetic_operatorsr    s    jj3	3	"BCDG
A
Aq1uquq1uqvvi 1$	' F xxy%y% H ==""""r   c                     R  U u. uF  p \         P                  ! V 4      V 8H  NK  	  up w  rp\         P                  ! V4      RR/8X  g   Q h\         P                  ! V4      \         P                  ! V4      8X  g   Q h\         P                  ! W,          V,          4      R  U u/ uF  q V bK  	  up 8X  g   Q h\         P                  ! R4      ^8  p\         P                  ! V4      / 8X  g   Q h\         P                  ! W,          4      RR/8X  g   Q h\         P                  ! R4      P	                  4       p\         P                  ! V4      RR/8X  g   Q hR# u up i u up i )abcr\   rz   N)r   rC   get_partition_keys_get_partition_keysr  )fr\   r]   r{   nopenulls         r   test_partition_keysr    s    )./Arxx{a/GA!  #Sz111  #r'='=a'@@@@  +e/De1e/DDDD88C=AD  &",,,  *sCj88888C=  "D  &3+555 0 0Es   "E#Ec                  0   \         P                  ! 4       p \         P                  ! R R.R7      p\         P                  ! RR7      p\         P                  ! \        P                  ! 4       R7      p\         P                  ! \        P                  R7      pV P
                  \        4       8X  g   Q hVP
                  R R08X  g   Q hV P                  R8X  g   Q hVP                  R8X  g   Q hV P                  \        P                  ! 4       8X  g   Q hVP                  \        P                  ! 4       8X  g   Q hV P                  \        P                  J g   Q hVP                  \        P                  J g   Q hW 8X  g   Q hW8w  g   Q hW8w  g   Q hW8w  g   Q hW8w  g   Q hRVn        VP                  \        P                  ! 4       8X  g   Q hW8X  g   Q h\        P                  ! 4       Vn        VP                  \        P                  ! 4       8X  g   Q hW8w  g   Q h\        P                  Vn
        VP                  \        P                  J g   Q hW@8X  g   Q h\        P                  Vn
        VP                  \        P                  J g   Q hW@8w  g   Q hR# )	r\   r]   dictionary_columnsmscoerce_int96_timestamp_unitbinary_type	list_typensN)r   ParquetReadOptionsrB   binary_viewLargeListTyper  r   r  r  binaryr  ListTypelarge_binary)opts1opts2opts3opts4opts5s        r   test_parquet_read_optionsr    s   !!#E!!c3Z@E!!dCE!!bnn.>?E!!B,<,<=E##su,,,##Sz111,,444,,444		+++ 0000??bkk)))??b.....>>>>>>>>>>E		+++>>)E 1111>>kkEO??bkk)))>>&&EO??b.....>>r   c                     \         P                  ! 4       p \         P                  ! R 0R7      p\         P                  ! RR7      p\         P                  ! \        P                  ! 4       R7      p\         P                  ! \        P                  R7      pV P
                  \         P                  ! 4       8X  g   Q hVP
                  \         P                  ! R .R7      8X  g   Q hVP
                  \         P                  ! RR7      8X  g   Q hVP
                  \         P                  ! \        P                  ! 4       R7      8X  g   Q hVP
                  \         P                  ! \        P                  R7      8X  g   Q hR# )r\   r  sr  r  r  N)r   r   rB   r  r  read_optionsr  )pff1pff2pff3pff4pff5s        r   %test_parquet_file_format_read_optionsr
    s"   !DC59DC@DBNN,<=D"*:*:;D 5 5 7777 5 5# OOOO 5 5$'!) ) ) ) 5 5NN$!& & & & 5 5""!$ $ $ $r   c                     \         P                  ! 4       p \         P                  ! R R7      p\         P                  ! RRR7      p\         P                  ! RRR7      p\         P                  ! RRR7      p\         P                  ! RR	7      p\        P                  ! RRRR
7      p\         P                  ! RVR7      pV P                  RJ g   Q hV P
                  R8X  g   Q h\        4       '       d   V P                  RJ g   Q hV P                  R8X  g   Q hV P                  R8X  g   Q hV P                  RJ g   Q hVP                  RJ g   Q hVP
                  R 8X  g   Q h\        4       '       d   VP                  RJ g   Q hVP                  RJ g   Q hVP
                  R8X  g   Q h\        4       '       d   VP                  RJ g   Q hVP                  RJ g   Q hVP
                  R8X  g   Q h\        4       '       d   VP                  RJ g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  RJ g   Q h\        4       '       d   VP                  RJ g   Q hVP                  V8X  g   Q hVP                  V P                  8w  g   Q hW 8X  g   Q hW8w  g   Q hW8w  g   Q hW#8w  g   Q hW@8w  g   Q hWP8w  g   Q hWp8w  g   Q hR# )   buffer_sizeT)r  use_buffered_streamF)r  
pre_bufferi@ i )thrift_string_size_limitthrift_container_size_limitpage_checksum_verification)hole_size_limitrange_size_limitlazy)r  cache_optionsi @B Ni    r  )r   ParquetFragmentScanOptionsrB   CacheOptionsr  r  r   r  r  r  r  r  )r  r  r  r  r   opts6
cache_optsopts7s           r   test_parquet_scan_optionsr    s   ))+E))d;E))t5E))eNE))!'$*-E ))#')EdDJ))TTE$$---%%%4'''))[888,,	999++u444$$---%%%4'''$$,,,%%%4'''$$---%%%5((())V333,,666++t3334'''*,,,%"5"5555>>>>>>>>>>>>>>r   c                 F   \         P                  ! 4       \         P                  ! 4       \         P                  ! \        P                  P                  R RR7      4      \         P                  ! \        P                  P                  ^R.R7      R7      \         P                  ! \        P                  P                  ^RR7      R7      \         P                  ! 4       \         P                  ! \        P                  P                  RRR7      R	7      \         P                  ! \        P                  P                  R
^R7      R7      .p VP                  \         P                  ! 4       4       \        el   VP                  \         P                  ! 4       \         P                  ! R0R7      \         P                  ! RR7      \         P                  ! RR^{RR7      .4       V F*  pV P                  V P!                  V4      4      V8X  d   K*  Q h	  R#   \         d     Li ; i)	T)	delimiterignore_empty_linesr  )	skip_rowsrr  r  )r$  
block_sizeignorenewlines_in_valuesunexpected_field_behavior)parse_optionsFr   r&  Nr\   r  )r  r  i  )r  r  r  r  i   )r   r%  CsvFileFormatrB   csvParseOptionsReadOptionsJsonFileFormatjsonr3   OrcFileFormatImportErrorrm   extendr   r  r  )r  formatsr  s   &  r   test_file_format_picklingr7  ,  s   


,,t@D - F 	G
bff&8&8ug '9 '/ 	0
bff&8&8E '9 '+ 	,

''..$IQ / S	T 	rww':':" (; (. 	/G r'')* 
~  "  SE:  T:  $( ),,/		

 
	 ""=#6#6{#CDSSS !  s   	$H H H c                    \         P                  ! 4       \         P                  ! \        P                  P	                  R R7      R7      \         P                  ! \        P                  P                  RR7      R7      \         P                  ! 4       \         P                  ! \        P                  P                  RRR7      4      \         P                  ! \        P                  P                  R RR	7      R7      .p\        e>   VP                  \         P                  ! RR7      \         P                  ! R R7      .4       V F*  pV P                  V P                  V4      4      V8X  d   K*  Q h	  R
# )T)strings_can_be_nullconvert_optionsr&  r%  Ferrorr(  i   r,  Nr  r  )r     )r   CsvFragmentScanOptionsrB   r.  ConvertOptionsr0  JsonFragmentScanOptionsr2  r/  rm   r5  r  r  r  )r  r   options   &  r   #test_fragment_scan_options_picklingrC  S  s    
!!#
!!FF11d1K	M
!!++u+=	?
""$
""GG  E;B ! D	E 	"",,#,N	PG 
~))d;))T:
 	
 ""=#6#6v#>?6III r   paths_or_selectorr   r   r   r  r  c                    \         P                  ! \         P                  ! R 0R7      VR7      p\         P                  ! R4      p\         P                  ! \
        P                  ! \
        P                  ! R\
        P                  ! 4       4      \
        P                  ! R\
        P                  ! 4       4      .4      4      Vn
        VP                  R8X  g   Q hVP                  RR.8X  g   Q hVP                  RJ g   Q h\         P                  ! WW44      pVP                  4       pVP                  4       P!                  \
        P                  ! \
        P                  ! R	\
        P"                  ! 4       4      \
        P                  ! R
\
        P$                  ! 4       4      \
        P                  ! R \
        P&                  ! \
        P                  ! 4       \
        P                  ! 4       4      4      \
        P                  ! R\
        P"                  ! 4       4      \
        P                  ! R\
        P(                  ! R\
        P"                  ! 4       R\
        P                  ! 4       /4      4      \
        P                  ! R\
        P                  ! 4       4      \
        P                  ! R\
        P                  ! 4       4      .4      RR7      '       g   Q h\+        VP-                  4       \.        4      '       g   Q h\+        VP1                  V4      \         P2                  4      '       g   Q hVP4                  P!                  \         P6                  ! R4      4      '       g   Q hVP1                  4       p\+        V\         P2                  4      '       g   Q hVP9                  4       p\
        P:                  ! . RO\
        P"                  ! 4       R7      p	\
        P:                  ! . RO\
        P$                  ! 4       R7      p
\
        P<                  P?                  \
        P:                  ! . RO\
        P                  ! 4       R7      \
        P:                  ! RPA                  4       \
        P                  ! 4       R7      4      p\
        P:                  ! \C        ^4       Uu. uF   pRV^,          R\E        V^,          4      /NK"  	  up4      pVPG                  4       p\I        V^^.RR.4       EF  w  w  pppp\
        P:                  ! V.^,          \
        P                  ! 4       R7      p\
        P:                  ! V.^,          \
        P                  ! 4       R7      p\
        P:                  ! V^,
          .^,          \
        P"                  ! 4       R7      pVPJ                  f   Q hVPL                  ^8X  g   Q hV^ ,          P!                  V	4      '       g   Q hV^,          P!                  V
4      '       g   Q hV^,          P!                  V4      '       g   Q hV^,          P!                  V4      '       g   Q hV^,          P!                  V4      '       g   Q hV^,          P!                  V4      '       g   Q hV^,          P!                  V4      '       d   EK  Q h	  VPO                  4       p\+        V\
        PP                  4      '       g   Q h\S        V4      ^
8X  g   Q hVPL                  ^8X  g   Q hR# u upi )r`   r  )r  r  r   r   r   .r  Fr^   r_   ra   rb   r\   r]   check_metadataTrw   z	0 1 2 3 4r*  r+  Nr.  )*r   r   r  r   r   rB   r@   rC   r   rG   r   partition_base_dirselector_ignore_prefixesexclude_invalid_filesr   rP  r  rE   rF   ry   rb   rP   inspect_schemasri   r   r  r  r  r   r|   r~   r   splitr2   r`   r;  r  r  ra  r   rH   r   )ro   rD  r  r   r   r   inspected_schemarV   r   rC  rD  expected_strr=   expected_structiteratorru   rW   r   r   expected_groupexpected_keyexpected_constr   s   &&&                    r   test_filesystem_factoryrU  l  s    !!**ugFF
 ))(3G33
		HHWbhhj)HHUBIIK(
 	G %%111++Sz999((E111))6G (??##BII

#


%
bhhj"))+>?
"((*%
299c288:&)299;&8 9 	:
"((*%
		$	/ 	%  $ 	 	 	 	 g--/6666gnn%56**, , , ,!!((49999nnGgr334444ooG88O"((*=L88O"**,?L%%11
rxxz2
""$299;7L hh).q 3)1A "%a!eS#a!e* =)1 3 4O##%H),X1vu~)N%5#5'A+BHHJ?xx			<519+/
C,,888  A%%%Qx|,,,,Qx|,,,,Qx|,,,,Qx~....Qx////Qx~....Qx|,,,, *O EeRXX&&&&u:!!!+ 3s   &[9c                    \         P                  ! 4       p\         P                  ! R V VR7      pVP                   F  pVP	                  W04      pVP
                  ^ .8X  g   Q hVP	                  W0^ .R7      pWE3 F_  p\        V\         P                  4      '       g   Q hVP                  V8X  g   Q h\        VP                  \        V 4      4      '       d   K_  Q h	  VP
                  ^ .8X  d   K  Q h	  R# )/plainr  r   r  N)r   r   rV   r  r  r  rP   r  rr   r  rx   )r   parquet_formatrV   rr   rW   row_group_fragmentr  s   &      r   test_make_fragmentr\    s    ))+Njjm .0G !//D""qc)))+99$FGS : J/Aa!7!7888866T>!>allD,?@@@@ 0 ",,333 r   c           
        V w  rr4rVrx\         P                  ! 4       p	V.p
V
 Uu. uF  pV	P                  W#4      NK  	  pp\         P                  ! WVP                  VR7      pVP                  4       pVP                  V4      '       g   Q hVP                   Uu. uF'  qP                  P                  V4      P                  NK)  	  pp\        W4       UUu. uF  w  ppV	P                  W#VR7      NK  	  ppp\         P                  ! VWP                  VR7      pVP                  4       pVP                  V4      '       g   Q hV
 Uu. uF  p^NK  	  pp\        V
V4       UUu. uF  w  ppV	P                  W#VR7      NK  	  ppp\         P                  ! VWP                  VR7      p\        P                  ! \        P                  P                   RR7      ;_uu_ 4        VP                  4       pRRR4       V
 Uu. uF  pRNK  	  pp\        V
V4       UUu. uF  w  ppV	P                  W#VR7      NK  	  ppp\         P                  ! VWP                  VR7      p\        P                  ! \"        RR7      ;_uu_ 4        VP                  4       pRRR4       R# u upi u upi u uppi u upi u uppi   + '       g   i     L; iu upi u uppi   + '       g   i     R# ; i)z
Test passing file_size to make_fragment. Not all FS implementations make use
of the file size (by implementing an OpenInputFile that takes a FileInfo), but
s3 does, which is why it's used here.
)r   r@   r  )	file_sizezParquet file size is 1 bytesr	  Nr  zHTTP status 416)r   r   r  r  r@   r   r  r  r  get_file_infosizer  r  r  r   librl  OSError)s3_example_simpler   rr   rd   urihostport
access_key
secret_keyr  r   r  rV   tblr  
sizes_truer`  fragments_with_sizedataset_with_sizesizes_toosmallsizes_toolarges   &                    r   test_make_fragment_with_sizero    s    @Q<E$j&&(KFE #$"T **44"  $""ellrG 


C::e ELMMRMq$$2215::MJR-0-CE-CztT '44T4N-C  E,,KQS 


C::e %**EDaEN*-0-GI-GztT '44T4N-G  I ,,KQS 
w{{//7U	V	V!**, 
W +00%$g%N0-0-GI-GztT '44T4N-G  I ,,KQS
 
w&7	8	8!**, 
9	8S$ SE +I 
W	V 1I 
9	8	8sA   J-J$J)	J/%J4"J:?KKK:K
	K)	c                 j   \         P                  ! R 4      p\        P                  ! VP	                  R4      4      p\
        P                  ! 4       pVP                  V4      p\        VP                  4       \        P                  4      '       g   Q h\        P                  ! . RO. RO. RO.. ROR7      pV P                  V4      P                  V4      '       g   Q hVP                  VP                  V4      4      pV P                  V4      P                  VP                  4       4      '       g   Q hR# )zT
        alpha,num,animal
        a,12,dog
        b,11,cat
        c,10,rabbit
    utf-8r  Nr\   r]   r{         
   dogcatrabbitr  numanimal)textwrapdedentrB   	py_bufferencoder   r-  r  rP   rO   BufferReaderr   r   r  r  r  )r   r  contentbuffer
csv_formatrW   r  pickleds   &&      r   "test_make_csv_fragment_from_bufferr  
  s    oo  	G \\'..12F!!#J''/H hmmor7777xx%13 9:H ""8,33H====!!-"5"5h"?@G""7+2283D3D3FGGGGr   c                 B   Rp\         P                  ! VP                  R4      4      p\        P                  ! 4       pVP                  V4      p\        VP                  4       \         P                  4      '       g   Q h\         P                  ! . RO. RO. RO.. ROR7      pV P                  V4      P                  V4      '       g   Q hVP                  VP                  V4      4      pV P                  V4      P                  VP                  4       4      '       g   Q hR# )	z-{"alpha" : "a", "num": 12, "animal" : "dog"}
rq  r  Nz{"alpha" : "a", "num": 12, "animal" : "dog"}
{"alpha" : "b", "num": 11, "animal" : "cat"}
{"alpha" : "c", "num": 10, "animal" : "rabbit"}
rr  rs  rw  r{  )rB   r  r  r   r1  r  rP   rO   r  r   r   r  r  r  )r   r  r  r  json_formatrW   r  r  s   &&      r   #test_make_json_fragment_from_bufferr  #  s    <G \\'..12F##%K((0H hmmor7777xx%13 9:H ""8,33H====!!-"5"5h"?@G""7+2283D3D3FGGGGr   c                    \         P                  ! . R	O4      \         P                  ! . R
O4      \         P                  ! . RO4      .pV^ ,          P                  4       V^,          V^,          P                  4       .p\        P                  ! \        P
                  ! RR.R7      RRR7      pV\        P                  ! 4       3W43.pV EF  w  r&\         P                  ! V. ROR7      p\         P                  ! 4       p\        P                  ! Wx4       VP                  4       p	VP                  V	4      p
V P                  V
4      P                  V4      '       g   Q hVP                  VP                  V
4      4      pV P                  V4      P                  V4      '       g   Q h\         P                   ! V	4      pVP                  V4      p
V
P#                  4       p\%        V\         P&                  4      '       g   Q hVP(                  '       g   Q h\        P*                  ! V
P#                  4       4      P-                  4       P                  V4      '       d   EK  Q h	  R# )r\   r  r}  r  Tr  )r  r  r  r  Nrr  rs  rw  r{  )rB   r|   dictionary_encoder   r   r  r   BufferOutputStreamrm   rn   getvaluer  r   r  r  r  r  rO   rP   rQ   rT   ParquetFileread)r   r  arraysdictionary_arraysdictionary_formatcasesformat_r   rs   r  rW   r  	file_likeopened_files   &&            r   &test_make_parquet_fragment_from_bufferr  9  s    	!

)*F 	q	##%q	q	##%
 ,,** '2
 ! 
%%'(	.E !'AB##%
u"((0&&x077>>>>%%m&9&9(&CD&&w/66u==== OOF+	((3mmo+r}}5555#####~~hmmo.335<<UCCCC' !r   c                    \         P                  ! \        ^4      ^.^,          R.^,          R.^,          ,           .. R
OR7      p\        V R,          4      p\        P
                  ! W4R.VR7       \        P                  ! VRRVR	7      pW53# )   r\   r]   r   r  test_parquet_dataset)partition_cols
chunk_sizer   r   )r   r   r  r  )rB   r   r2   r`   rm   write_to_datasetr   rV   )r  r  r  r   rr   rV   s   &&&   r   _create_dataset_for_fragmentsr  g  s    HH	qA37SEAI	12"E
 w//0D(.xJHjjYV
G >r   c                    \        V 4      w  r#\        VP                  4       4      p\        V4      ^8X  g   Q hV^ ,          pRR.pVP                  P
                  V8X  g   Q hVP                  P                  VP                  VP                  4      VP                  8X  g   Q hVP                  P                  \        P                  ! R4      R8H  4      '       g   Q hVP                  V4      pVP                  V8X  g   Q hVP                  VP!                  ^4      P#                  ^ ^4      4      '       g   Q hVP                  WSP$                  R7      pVP                  . RO8X  g   Q hVP                  VP#                  ^ ^4      4      '       g   Q hVP                  VP$                  P'                  ^4      8X  g   Q hVP                  WSP$                  \        P                  ! R4      ^8  R7      pVP                  . RO8X  g   Q hR# )	r0  r$  r  r   r\   rc   )r@   r  Nr  )r  ri   rN   r   physical_schemar  r   rP  rr   r  r  r  r   rC   r   rr  remove_columnslicer@   remove)r  r   r   rV   r  r  physical_namesrF  s   &&      r   test_fragmentsr  y  s   27;NE W**,-Iy>Q!AD\N""n44488AFFALL1Q5F5FFFF!!((&)9S)@AAAA $$Q'F.000==,,Q/55a;<<<< $$Q~~$>F"6666==Q*++++ 4 4Q 7777 $$	..$!); % =F"6666r   c                    \         P                  ! \        ^4      ^.^,          ^.^,          ,           .RR.R7      p\        V R,          4      p\        P
                  ! WR.R7       \        P                  ! \         P                  ! R.4      RR7      p\        P                  ! VRVR	7      pVP                  \        P                  ! R4      ^8  R
7      p\        \        V4      4      ^8X  g   Q hR# )r  colr   r  r  r  r   r  r   r  r  N)r   r}   )rB   r   r2   r`   rm   r  r   r   r@   rV   rN   rC   r   ri   )r  r   rr   r   rV   r  s   &     r   test_fragments_implicit_castr    s     HHeAha1#' 125&/JEw//0DVH=??299&6%78HDjjidCG%%RXXf-=-B%CItI1$$$r   c                 |  a
 \        V 4      w  o
pRV
3R llp\        VP                  4       4      ^ ,          pVP                  pVP	                  VP                  V4      4      pVP                  V4      VP                  V4      8X  g   Q hVP                  VP                  VP                  VP                  R7      pVP                  V4      P                  VP                  V4      4      '       g   Q hV! VR4       VP                  VP                  VP                  VP                  R7      pV! VR\        P                  ! R4      ^8  R7       VP                  VP                  VP                  VP                  R7      pV! VRR.\        P                  ! R4      R8  R7       VP                  VP                  VP                  VP                  R7      pV! VR\        P                  ! R4      R8H  R7       R	VP                  P                  R
R
R
4      ,           p	\         P"                  ! \$        V	R7      ;_uu_ 4        VP                  VP                  VP                  VP                  R7      pVP                  V\        P                  ! R4      R8H  R7       R R R 4       R #   + '       g   i     R # ; i)Nc                   < V P                  SP                  W#R 7      pV'       d   TMSP                  pVP                  V8X  g   Q hSP                  ! V!  P	                  V4      pVP                  V4      '       g   Q hR# )r@   r$   r  N)r   r@   rr  r  selectr  )rW   	row_slicer$   r  actualrr  r  r   s   &&&&   r   assert_yields_projected;test_fragments_reconstruct.<locals>.assert_yields_projected  ss    ""<< # A")wu/A/A""l222;;	*11,?}}X&&&&r   )r  r$  r  r5  r  r   r\   z&No match for FieldRef.Name\(part\) in Fr	  NN)r   r2  )r   r0  )r  ri   rN   r   r  r  r   r  rr   r  r  r  r   rC   r  	to_stringr  r  r[  )r  r   r  rV   r  rW   rZ  pickled_fragmentnew_fragmentpatternr   s   &&&       @r   test_fragments_reconstructr    sv   27;NE7' G))+,Q/H__N %**=+>+>x+HI""+44X>? ? ? "//x**%:: 0 <L ""<077)+ + + +L&1 "//x**%:: 0 <L L&$!9KL "//x**%:: 0 <L L&%)F288D>C3GI "//x**%:: 0 <L L&#%88F#3s#:<
 9''11%FGG	z	1	1%33MM8..!)!>!> 4 @ 	RXXf5E5LM	 
2	1	1	1s   AJ**J;	c                    \        V ^R7      w  r#\        VP                  4       4      ^ ,          p\        VP                  4       4      p\	        V4      VP
                  u;8X  d	   ^8X  g   Q h Q hVP                  V^ ,          VP                  R7      pVP                  . R	O8X  g   Q h\	        V4      ^8X  g   Q hVP                  VP                  ^ ^4      4      '       g   Q hV^ ,          P                  f   Q hV^ ,          P
                  ^8X  g   Q hV^ ,          P                  ^ ,          P                  RR^ R^/RR^R^//8X  g   Q h\        VP                  \        P                  ! R4      ^8  R7      4      ^ ,          p\        VP                  \        P                  ! R4      ^8  4      4      p\	        V4      ^8X  g   Q hVP                  V^ ,          \        P                  ! R4      ^8  R7      p\	        V4      ^8X  g   Q hR# )
r0  r  rc   r$  r  Nminmaxr  r  )r  ri   rN   r  r   r  r   r@   rr  r  r  r  
statisticsr   rC   )r  r   r   rV   rW   r!  rF  s   &&     r   !test_fragments_parquet_row_groupsr    s   27qINEG))+,Q/H x::<="#x'>'>C!CCCCC$$Aw~~ % 7F"6666v;!==Q*++++q!,,888q!00A555q!,,Q/::ua"ua"?   
 G))$!1C)DEaHHx::288D>A;MNO"#q((($$Arxx~'9 % ;Fv;!r   c                    \         P                  ! R \        ^4      /4      p\        P                  ! WR,          ^R7       \
        P                  ! V R,          RR7      p\        VP                  4       4      ^ ,          pVP                  P                  VP                  VP                  ^^.R7      pVP                  ^8X  g   Q hVP                  4        VP                  ^8X  g   Q h\        VP                   4      ^8X  g   Q hR# )r\   test.parquetrow_group_sizer   r  rY  N)rB   r   r2   rm   rn   r   rV   ri   rN   r   r  rr   r  r  ensure_complete_metadatar   r  )r  r   rV   original_fragmentrW   s   &    r   %test_fragments_parquet_num_row_groupsr    s    HHc58_%ENN5N21Ejj>1)DGW2245a8 !''55 1 < <q6 6 H ""a'''%%'""a'''x""#q(((r   c                    \         P                  ! \        R R.^^.R7      4      pVR,          P                  R4      VR&   \        P
                  ! \        P                  ! V4      V R,          4       ^ RIH	p VP                  ! V R,          4      pVP                  WCP                  ! R4      R 8H  R7      pVP                  ^ ,          VP                  4       8H  P                  4       P                  4       '       g   Q hR# )r\   r]   )col1col2r  categoryztest_filter_dictionary.parquetNr  )r6   r7   dictastyperm   rn   rB   r   pyarrow.datasetrV   r   rC   r   	to_pandasr  )r  r   rK   r   rV   rF  s   &&    r   ,test_fragments_parquet_row_groups_dictionaryr    s     
dc
!Q8	9BF"":.BvJNN288B<+K!KL jj#CCDG$$WXXf5E5L$MFGGAJ&**,,113779999r   c                    Vw  r4\        V ^VR7      w  rV\        VP                  4       4      ^ ,          pV! VP                  .4      ;_uu_ 4        VP	                  4        RRR4       VP
                  ^ ^.8X  g   Q hV! . 4      ;_uu_ 4        VP	                  4        RRR4       \        VP                  \        P                  4      '       g   Q hVP                  P                  VP                  VP                  ^ ^.R7      pVP
                  VP
                  8X  g   Q hVP	                  4        VP
                  ^ ,          p	V	P                  ^ 8X  g   Q hV	P                  ^8X  g   Q hV	P                  f   Q hVP!                  VP#                  V4      4      p
V! VP                  .4      ;_uu_ 4        V
P
                  ^ ^.8X  g   Q hV
P
                  ^ ,          p	V	P                  ^ 8X  g   Q hV	P                  f   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     R# ; i)r0  r  r  NrY  )r  ri   rN   rr   r  r  rP   metadatarm   FileMetaDatar   r  r  idr   r  r  r  )r  r   r  rd   r   r  rV   rW   r  	row_groupr  s   &&&        r   &test_fragments_parquet_ensure_metadatar  $  s   &B.A"JA G))+,Q/H 
x}}o	&	&))+ 
'1a&((( 
b		))+ 
 h''9999 ??00x**1v 1 L ""h&9&9999 ))+''*I<<1"""+++ %**=+>+>|+LM	x}}o	&	&**q!f444$//2	||q   ##///	 
'	&3 
'	&	&
 
		( 
'	&	&s%   HH#8AH7H 	#H4	7I	c                    Vw  r4\        WR 7      w  rV\        VP                  4       4      ^,          pV! . 4      ;_uu_ 4        VP                  VP	                  V4      4      pRRR4       V! XP
                  .4      ;_uu_ 4        VP                  p	RRR4       X	^ .8X  g   Q hR#   + '       g   i     LL; i  + '       g   i     L/; ir  N)r  ri   rN   r  r  rr   r  )
r  r   r  rd   r   r  rV   rW   r  r  s
   &&&       r   )test_fragments_parquet_pickle_no_metadatar  M  s     'B.wFJAG))+,Q/H 
b		(..}/B/B8/LM 
 
',,-	.	.%00
 
/! 
	 
/	.s   !B(B;(B8	;C	c                    \         P                  ! \         P                  ! . R
O\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P
                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                  ! 4       4      \         P                  ! . RO\         P                   ! R4      4      \         P                  ! . RO\         P                   ! R4      4      \         P                  ! . RO\         P                   ! R4      4      \         P                  ! . RO\         P"                  ! 4       4      \         P                  ! . RO\         P$                  ! 4       4      \         P                  ! . RO\         P&                  ! R4      4      \         P                  ! . RO\         P(                  ! R4      4      .. ROR7      p\+        V R,          4      p\,        P.                  ! W#VR7       V\0        P2                  ! VRRR	7      3# )Tr  r  usr  test_parquet_dataset_all_typesr  r   r   r  )TNF)r/  rv  *   )r)  g      $@      E@)r\   Nz)r/  rv  l    jt )booleanr}   uint8r   r   r   uint32rE   uint64r4   doubleutf8r  ts[s]ts[ms]ts[us]rD   date64time32time64)rB   r   r|   bool_r}   r  r   r   r   r  rE   r  float32rF   r  r  	timestamprD   r  r  r  r`   rm   r  r   rV   )r  r  r   rr   s   &&  r   _create_dataset_all_typesr  _  s   HHHH("((*5HH["''),HH["((*-HH["((*-HH["))+.HH["((*-HH["))+.HH["((*-HH["))+.HH&

5HH&

5HH%rwwy1HH%ryy{3HH[",,s"34HH[",,t"45HH[",,t"45HH["))+.HH("))+6HH["))C.1HH["))D/2)	
,
/-E^ w99:D 
;"**T)&IIIr   c                   a \        V 4      w  r\        VP                  4       4      ^ ,          p^ RIoV3R lpV3R lpV3R lpSP                  pSP
                  p\        VP                  4       4      p	V	^ ,          P                  f   Q hV	^ ,          P                  ^ ,          p
V
P                  ^8X  g   Q hV
P                  R8  g   Q hV
P                  / RRRR	R
/bRR^R	^*/bRR^R	^*/bRR^R	^*/bRR^R	^*/bRR^R	^*/bRR^R	^*/bRR^R	^*/bRR^R	^*/bRRRR	R/bRRRR	R/bRRRR	R/bRRRR	R/bRRV! ^4      R	V! ^*4      /bRRV! ^4      R	V! ^*4      /bRRV! ^4      R	V! ^*4      /bR RV! R!^^4      R	V! R!^^4      /bR"RV! R!^^4      R	V! R!^^4      /R#RV! ^ ^ ^4      R	V! ^ ^ ^*4      /R$RV! ^ ^ ^ ^4      R	V! ^ ^ ^ ^*4      //C8X  g   Q hR# )%r   Nc                 2   < SP                   ! R ^^^ ^ V 4      #   r.   r  r.   s   &r   dt_s.test_parquet_fragment_statistics.<locals>.dt_s  s    ))$1aA>>r   c           
      B   < SP                   ! R ^^^ ^ ^ V R,          4      # )r  r   r  r  s   &r   dt_ms/test_parquet_fragment_statistics.<locals>.dt_ms  s#    **4Aq!Q$GGr   c           	      4   < SP                   ! R ^^^ ^ ^ V 4      # r  r  r  s   &r   dt_us/test_parquet_fragment_statistics.<locals>.dt_us  s    **4Aq!QBBr   r   r  r  Fr  Tr}   r  r   r   r   r  rE   r  r4   r)  r  r  r  r\   r  r     a   zr  r  r  rD   r  r  r  r  )r  ri   rN   r.   r*   timer  r  r   total_byte_sizer  )r  r   rV   rW   r  r  r  r*   r  r!  r  r.   s   &          @r    test_parquet_fragment_statisticsr    s    /w7NEG))+,Q/H>GB==D==D x::<=q!,,888#A&11!4I"""$$t+++ $E5%.$5"%$ 	%E2&$ 	%E2&	$
 	5!UB'$ 	%E2&$ 	5!UB'$ 	%E2&$ 	5!UB'$ 	%eT*$ 	5#ud+$ 	UC($ 	5$t,$ 	%a%b2$ 	5%(E595$  	5%(E595!$" 	5$tQ*E4a3DE#$$ 	5$tQ*E4a3DE5$q!Q-Q2?5$q!Q*E41a3DE)$   r   c                 p   \         P                  ! R . ROR. RO/4      p\        P                  ! WR,          ^R7       \        P
                  ! V R,          RR7      p\        VP                  4       4      ^ ,          P                  4       pV^,          P                  ^ ,          P                  / 8X  g   Q hR# )	r\   Nr]   r  r  r   r  )r   r/  NN)r\   r]   NN)rB   r   rm   rn   r   rV   ri   rN   r  r  r  )r  r   rV   r  s   &   r   &test_parquet_fragment_statistics_nullsr    s    HHc-s4JKLENN5N21Ejj>1)DGW**,-a0CCEIQ<""1%00B666r   c                 t   \         P                  ! R . R	OR. R
O/4      R,          pVP                  V R,          RR7       \        P                  ! V R,          RR7      p\        VP                  4       4      ^ ,          P                  4       pV^ ,          P                  ^ ,          P                  / 8X  g   Q hR# )r\   r]   Nr   Nr  r   enginer   r  N)r\   r]   r]   r2  r  r  )
r6   r7   
to_parquetr   rV   ri   rN   r  r  r  )r  rK   rV   r  s   &   r   'test_parquet_empty_row_group_statisticsr    s     
sOS)<	=b	ABMM'N*9M=jj>1)DGW**,-a0CCEIQ<""1%00B666r   c                    \        V ^R7      w  r\        VP                  4       4      ^ ,          pVP                  P	                  \
        P                  ! R4      R8H  4      '       g   Q h\        VP                  \
        P                  ! R4      R8H  VP                  R7      4      p\        V4      ^8X  g   Q h\        VP                  \
        P                  ! R4      R8H  VP                  R7      4      p\        V4      ^ 8X  g   Q hR# )r0  r  r   r\   r  r@   r]   N)
r  ri   rN   r  r  r   rC   r  r@   r   )r  r   rV   rW   r!  s   &    r   +test_fragments_parquet_row_groups_predicater    s    27qINEG))+,Q/H((//0@C0GHHHH ##288F+;s+B+2>> 	$ 	;< "#q((( ##288F+;s+B+2>> 	$ 	;< "#q(((r   c                 T   \        V ^R7      w  r4\        VP                  4       4      ^ ,          pVP                  p\        VP	                  4       4      pVP                  VP                  V4      4      pVP                  V4      VP                  V4      8X  g   Q hVP                  VP                  VP                  VP                  ^ .R7      p	VP                  V	4      p
V
P                  VP                  V^ ,          4      4      '       g   Q hVP                  VP                  VP                  VP                  ^0R7      p	VP                  WP                  RR.\        P                  ! R4      ^8  R7      p
V
P                   RR.8X  g   Q h\#        V
4      ^8X  g   Q hVP                  VP                  VP                  VP                  ^0R7      p	\$        P&                  ! \(        RR7      ;_uu_ 4        VP                  V	4       RRR4       R#   + '       g   i     R# ; i)	r0  r  )r  r  r$  r   r  zreferences row group 2r	  N)r  ri   rN   r   r  r  r  r   r  rr   r  r  r  r@   r   rC   rr  r   r  r  r  )r  r   r  r   rV   rW   rZ  r!  r  r  rF  s   &&&        r   -test_fragments_parquet_row_groups_reconstructr    s    37qINEG))+,Q/H__Nx::<= %**=+>+>x+HI""+44X>? ? ? "//x**%::3 0 L $$\2F==001DQ1GHIIII "//x**%::3 0 L $$\\D&>xx~! % %F 4.000v;! "//x**%::3 0 L 
z)A	B	B- 
C	B	B	Bs   :HH'	c                    Vw  r4\        V ^VR7      w  rV\        VP                  4       4      ^ ,          pVP                  ^ ^.R7      pV! . 4      ;_uu_ 4        VP                  ^8X  g   Q hVP
                  ^ ^.8X  g   Q hVP
                  ^ ,          P                  f   Q h RRR4       VP                  V4      p	V	P                  4       R^ ^.R^^./8X  g   Q hVP                  . R7      pVP                  ^ 8X  g   Q hVP
                  . 8X  g   Q hVP                  WP                  R7      p	V	P                  ^ 8X  g   Q hV	P                  VR,          4      '       g   Q hR#   + '       g   i     L; i)r/  r  row_group_idsNr$  r  rc   r  )r  ri   rN   subsetr  r  r  r   r?  r@   r   r  
r  r   r   rd   r   r   rV   rW   subfragrF  s
   &&&       r   !test_fragments_parquet_subset_idsr    sf    'B27q>@BNEG))+,Q/H ooQFo3G	b		%%***!!aV+++!!!$//;;; 
 $$W-F$Aq!f!==== ooBo/G!!Q&&&###$$W^^$DF??a==r#### 
	s   A
E%%E5	c                    Vw  r4\        V ^VR7      w  rV\        VP                  4       4      ^ ,          pVP                  \        P
                  ! R4      ^8  4      pV! . 4      ;_uu_ 4        VP                  ^8X  g   Q h\        VP                  4      ^8X  g   Q hVP                  ^ ,          P                  f   Q h RRR4       VP                  V4      p	V	P                  4       R. R	OR. R
O/8X  g   Q hVP                  \        P
                  ! R4      ^8  4      pVP                  ^ 8X  g   Q hVP                  . 8X  g   Q hVP                  WP                  R7      p	V	P                  ^ 8X  g   Q hV	P                  VR,          4      '       g   Q hVP                  \        P
                  ! R4      R8H  VP                  R7      pVP                  ^8X  g   Q hR#   + '       g   i     EL'; i)r/  r  r$  Nr  rc   r  r   r\   r  )r/  r/  r/  )r  ri   rN   r  r   rC   r  r   r  r  r   r?  r@   r   r  r  s
   &&&       r   $test_fragments_parquet_subset_filterr  7  s    'B27q>@BNEG))+,Q/H oobhhtn12G	b		%%***7%%&!+++!!!$//;;; 
 $$W-F$	4!CCCC oobhhtnq01G!!Q&&&###$$W^^$DF??a==r#### oobhhv.#5gnnoMG!!Q&&&' 
		s   -AGG.	c                    \        V ^R7      w  r\        VP                  4       4      ^ ,          p\        P                  ! \
        4      ;_uu_ 4        VP                  \        P                  ! R4      ^8  ^^.R7       RRR4       \        P                  ! \
        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     LM; i  + '       g   i     R# ; i)r/  r  r$  r  N)	r  ri   rN   r  r  r[  r  r   rC   )r  r  rV   rW   s   &   r   %test_fragments_parquet_subset_invalidr  W  s    .w1EJAG))+,Q/H 
z	"	"!+Aq6B 
# 
z	"	" 
#	" 
#	" 
#	"	"s   -C)CC	C(	c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  P                  W#.RR.R7      p\         P                  P                  W.RR.R7      p\         P                  ! RV/4      p\
        P                  ! W`R,          ^R7       \        P                  ! V R,          R	R
7      p\        VP                  4       4      ^ ,          pVP                  ^8X  g   Q hVP                  \        P                  ! RR4      ^8  4      p	V	P                  ^8X  g   Q hVP                  \        P                  ! RR4      ^8  4      p	V	P                  ^ 8X  g   Q hVP                  \        P                  ! RRR4      ^ 8  4      p	V	P                  ^8X  g   Q hVP                  \        P                  ! RRR4      ^8*  4      p	V	P                  ^8X  g   Q h\        P                  ! \         P                   RR7      ;_uu_ 4        VP                  \        P                  ! RR4      ^ 8  4       RRR4       \        P                  ! \"        RR7      ;_uu_ 4        VP                  \        P                  ! RR4      ^ 8  4       RRR4       R#   + '       g   i     Lh; i  + '       g   i     R# ; i)r   f21f22r  r$  r  r  zdata_struct.parquetr  r   r  zNo match for FieldRef.Nestedr	  f3Nz)Function 'greater' has no kernel matching)r   r/  r0  r1  )皙?皙?333333?皙?r/  r0  r1  r2  )rB   r|   StructArrayr   r   rm   rn   r   rV   ri   rN   r  r  rC   r  r  rl  NotImplementedError)
r  r$  r  r  r  
struct_colr   rV   rW   r  s
   &         r   0test_fragments_parquet_subset_with_nested_fieldsr)  d  s7    
,	B
(('
(C
((<
 C		#	#SJuen	#	EB++RHT4L+IJHHeZ()ENN5$99!Ljj#88KGG))+,Q/H""a'''oobhhud3a78G!!Q&&&oobhhud3a78G!!Q&&&oobhhudE:Q>?G!!Q&&&oobhhudE:a?@G!!Q&&& 
r.L	M	M-12 
N 
#N
 
 	-12
 
	 
N	M
 
 
s   :*K*KK	K(	c                    \        VP                  4       4      ^ ,          p\        V4      R8X  g   \        V4      R8X  g   Q h\        V 4      w  r4\        P
                  ! VRR7      p\        VP                  4       4      ^ ,          p\        V4      RVP                  P                  \        V4      4       R28X  g   Q hV R,          p\        P                  P                  W44       \        P
                  ! VRR7      p\        VP                  4       4      ^ ,          p\        V4      R	VP                  P                  \        V4      4       R28X  g   Q hR
# )r   zb<pyarrow.dataset.ParquetFileFragment path=subdir/1/xxx/file0.parquet partition=[key=xxx, group=1]>zb<pyarrow.dataset.ParquetFileFragment path=subdir/1/xxx/file0.parquet partition=[group=1, key=xxx]>r   r  z*<pyarrow.dataset.ParquetFileFragment path=>data.featherfeatherz,<pyarrow.dataset.FileFragment type=ipc path=N)ri   rN   repr_create_single_filer   rV   r  r   r`   rB   r-  write_feather)r  rV   rW   r   rr   s   &&   r   test_fragments_reprr1    s>    G))+,Q/H 	X	(	( 	X	(	(	( &g.KEjji0GG))+,Q/HX4,,SY7
8	;	;	; ^#DJJU)jji0GG))+,Q/HX6,,SY7
8	;	;	;r   r  c                     V # r   r   r  ms   &&r   <lambda>r5        Qr   c                 B    VP                  VP                  V 4      4      # r   r  r  r3  s   &&r   r5  r5        QWWQWWQZ-@r   c                    \         P                  ! R RR7      p\        P                  ! 4       p\        P                  ! R 4      p\        P
                  P                  RR.4      pV! Wb4      p\        V\        P                  4      '       g   Q hWen	        \        P                  ! WWE4      pVP                  4       p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                   ! 4       3R\        P                  ! 4       3R	\        P"                  ! R
\        P                  ! 4       R\        P                   ! 4       /4      3R\        P$                  ! 4       3R\        P                   ! 4       3.4      p	VP'                  V	4      '       g   Q h\        P(                  P                  4       p
\        V
\        P                  4      '       g   Q hR# )r   Tr   r   r   r^   r_   r`   ra   rb   r\   r]   N)rd   r   r   r   r   r   discoverrP   PartitioningFactorypartitioning_factoryr   rP  rB   r@   rE   rF   rG   rb   r   r  r  )ro   r  r  rD  r   r   r=  r   rN  rS  hive_partitioning_factorys   &&&        r   test_partitioning_factoryr?    st    DA!!#F))(3G33<<gu=MN"#7G*B,B,BCCCC#7 ))6G (ii	
	

				"((*	299c288:sBIIK@AB	"((*			! O ""?3333 " 3 3 < < >/1G1GHHHHr   infer_dictionaryc                     V # r   r   r3  s   &&r   r5  r5    r6  r   c                 B    VP                  VP                  V 4      4      # r   r8  r3  s   &&r   r5  r5    r9  r   c                    \         P                  ! R RR7      p\        P                  ! 4       p\        P                  ! R 4      p\        P
                  P                  RR.VR7      pV! Ws4      Vn        \        P                  ! WWV4      pVP                  4       p	V'       Ed   \        P                  ! \        P                  ! 4       \        P                  ! 4       4      p
V	P                  R4      P                  V
8X  g   Q hVP!                  4       P#                  4       P%                  4       pVP'                  R4      P)                  ^ 4      p\        P*                  ! R.^,          R.^,          ,           4      P-                  4       pVP/                  V4      '       g   Q hVP!                  4       P#                  \        P                  ! R4      R8H  R7      pVP'                  R4      P)                  ^ 4      pVP1                  ^ ^4      pVP/                  V4      '       g   Q hR	# V	P                  R4      P                  \        P                  ! 4       8X  g   Q hR	# )
r   Tr   r   r   r@  r*  r+  r  N)rd   r   r   r   r   r   r;  r=  r   rP  rB   ry   r   rG   rC   rx   r   r   combine_chunksr:  r   r|   r  r  r  )ro   r@  r  r  rD  r   r   r=  r   inferred_schemaexpected_typer   r  r  s   &&&&          r   $test_partitioning_factory_dictionaryrH    s    DA!!#F))(3G33<<	%+; = =#*+?#OG ))64G oo'Obhhj"))+>$$U+00MAAA ))+::<e$**1-88UGaK5'A+56HHJ}}X&&&&  ))%E1I)Je$**1->>!Q'}}X&&&&$$U+00BIIK???r   c                     V # r   r   r3  s   &&r   r5  r5    r6  r   c                 B    VP                  VP                  V 4      4      # r   r8  r3  s   &&r   r5  r5    r9  r   c           
         \         P                  ! 4       p\        P                  ! 4       p\        P
                  ! R \        P                  ! 4       3.4      p\        P                  ! \        P                  ! \        ^
4      4      .VR7      p\        P
                  ! R\        P                  ! R4      3R\        P                  ! 4       3.4      p\        P
                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      p\        P
                  ! \        V4      \        V4      ,           4      pR F  p	VP                  V	4       VP                  V	R,           4      ;_uu_ 4       p
\        P                  P!                  W4      ;_uu_ 4       pVP#                  V4       VP%                  4        RRR4       RRR4       K  	  \         P&                  ! RRR	7      p\        P(                  ! R4      p\        P*                  P-                  VR7      pV ! W4      Vn        \        P0                  ! W,W=4      pVP3                  4       pVV8X  g   Q hVP5                  4       P7                  R
\        P8                  ! R4      P;                  \        P                  ! 4       4      /R7      pV^ ,          ^ ,          P=                  4       R8X  g   Q h\        P*                  P-                  RR.RR7      pV ! W4      Vn        \        P0                  ! W,W=4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        P*                  ! VRR7      pV ! VV4      Vn"        \        P0                  ! W,W=4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        P*                  P-                  VRR7      pV ! W4      Vn        \        P0                  ! W,W=4      p\F        PH                  ! \        PJ                  RR7      ;_uu_ 4        VP3                  4       pRRR4       \         P&                  ! RRR	7      p\        P(                  ! R4      p\        PL                  P-                  VR7      pV ! W4      Vn        \        P0                  ! W,W=4      pVP3                  4       pVV8X  g   Q hVP5                  4       P7                  R
\        P8                  ! R4      P;                  \        P                  ! 4       4      /R7      pV^ ,          ^ ,          P=                  4       R8X  g   Q h\        PL                  P-                  RR7      pV ! W4      Vn        \        P0                  ! W,W=4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        PL                  ! VRR7      Vn"        \        P0                  ! W,W=4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        PL                  P-                  VRR7      pV ! W4      Vn        \        P0                  ! W,W=4      p\F        PH                  ! \        PJ                  RR7      ;_uu_ 4        VP3                  4       pRRR4       R#   + '       g   i     EL[; i  + '       g   i     EK  ; i  + '       g   i     ELT; i  + '       g   i     R# ; i)r^   rc   r*   r  rG   
/0.featherNrq   Tr   date_intr#   逎`r  r  2021-05-04 00%3A00%3A00%24r@   r  +Could not cast segments for partition fieldr	  r   )z%directory/2021-05-04 00%3A00%3A00/%24z,hive/date=2021-05-04 00%3A00%3A00/string=%24)'rd   re   r   r%  rB   r@   rE   r   r|   r2   r  rG   ri   rg   rh   r  new_filern   closer   r   r   r;  r=  r   rP  r   r   rC   r  as_pyrN   r  r  r   r  r  rl  r  )r  r  ro   r   r@   r   partition_schemastring_partition_schemafull_schemarq   sinkwriterr   r   r=  r   rF  r  r  r   s   &&                  r   *test_partitioning_factory_segment_encodingr[    s    !FFYY
+,-FHHbhhuRy)*6:Eyy
",,s#	$x&=>@ ii
"))+	299; 78:))DL40@+AABK	 	)$&&y<'?@@D..&""5) / A@ {d;H))+6G33<< = !#*+?#OG ))&FLGoo'Ok)))^^&&BHHV$))"((*50& F !9Q<:---33<<	V = 5#*+?#OG ))&FLGW^^%3356IQ<,,33	&	6	6	(	u	$	&' ' ' ' ++&:L"<?G))&FLGW^^%3356IQ<,,33	&	6	6	(	u	$	&' ' ' ' 33<<& = :#*+?#OG ))&FLG	rJ
L 
L!//+
L
 v6H))&1G..77 8 !#*+?#OG ))&FLGoo'Ok)))^^&&BHHV$))"((*50& F !9Q<:---..77 8 !#*+?#OG ))&FLGW^^%3356IQ<,,33	&	6	6	(	u	$	&' ' ' ' ..&:G))&FLGW^^%3356IQ<,,33	&	6	6	(	u	$	&' ' ' ' ..77& 8 :#*+?#OG ))&FLG	rJ
L 
L!//+
L 
L_ /.. A@@R
L 
L 
LN
L 
L 
Ls<   7(`'"``' `<8a`$	`''`9<a	a!	c                     V # r   r   r3  s   &&r   r5  r5  Y  r6  r   c                 B    VP                  VP                  V 4      4      # r   r8  r3  s   &&r   r5  r5  Y  r9  r   c           	         \         P                  ! 4       p\        P                  ! 4       p\        P
                  ! R \        P                  ! 4       3.4      p\        P                  ! \        P                  ! \        ^
4      4      .VR7      p\        P
                  ! R\        P                  ! R4      3R\        P                  ! 4       3.4      p\        P
                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      p\        P
                  ! \        V4      \        V4      ,           4      p\        P
                  ! R\        P                  ! R4      3R\        P                  ! 4       3.4      p	\        P
                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      p
RpVP                  V4       VP                  VR,           4      ;_uu_ 4       p\        P                  P!                  W4      ;_uu_ 4       pVP#                  V4       VP%                  4        R	R	R	4       R	R	R	4       \         P&                  ! R
RR7      p\        P(                  ! R
4      p\        P*                  P-                  VR7      pV ! VV4      Vn        \        P0                  ! W.W?4      pVP3                  4       pVV8X  g   Q hVP5                  4       P7                  R\        P8                  ! R4      P;                  \        P                  ! 4       4      /R7      pV^ ,          ^ ,          P=                  4       R8X  g   Q h\        P*                  P-                  RR7      pV ! VV4      Vn        \        P0                  ! W.W?4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        P*                  ! VRR7      pV ! VV4      Vn"        \        P0                  ! W.W?4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        P*                  P-                  RR7      pV ! VV4      Vn        \        P0                  ! W.W?4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        P*                  ! V
RR7      pV ! VV4      Vn"        \        P0                  ! W.W?4      p\        VP5                  4       P?                  4       4      pV^ ,          P@                  PC                  \        P8                  ! R4      R8H  \        P8                  ! R4      R8H  ,          4      '       g   Q h\        P*                  P-                  V	RR7      pV ! VV4      Vn        \        P0                  ! W.W?4      p\F        PH                  ! \        PJ                  RR7      ;_uu_ 4        VP3                  4       pR	R	R	4       R	#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     R	# ; i)r^   rc   ztest'; dater  ztest';[ string'ztest%27%3B%20dateztest%27%3B%5B%20string%27zLhive/test%27%3B%20date=2021-05-04 00%3A00%3A00/test%27%3B%5B%20string%27=%24rL  Nr   Tr   rM  r#   rN  rd  r  z2021-05-04 00:00:00$r  rO  rP  rQ  rR  r	  )&rd   re   r   r%  rB   r@   rE   r   r|   r2   r  rG   ri   rg   rh   r  rS  rn   rT  r   r   r  r;  r=  r   rP  r   r   rC   r  rU  rN   r  r  r   r  r  rl  )r  r  ro   r   r@   r   rV  rW  rX  partition_schema_enstring_partition_schema_enrq   rY  rZ  r   r   r=  r   rF  r  r  r   s   &&                    r   ;test_partitioning_factory_hive_segment_encoding_key_encodedrb  X  s    !FFYY
+,-FHHbhhuRy)*6:Eyy
c*	+.?-MNP ii
	%(9299;'GHJ))DL40@+AABK))
r||C0	1
%ryy{	3	56 "$
ryy{	+
%ryy{	3	5"61I
i 		"	"9|#;	<	<VV__T**fu%LLN + 
= v6H))&1G..77 8 !#*+?#OG ))&FLGoo'Ok)))^^&&BHH]+00<0& F !9Q<:---..77 8  #*+?#OG ))&FLGW^^%3356IQ<,,33	-	 $9	9	#	$	+	-. . . . &&%9L"<?G))&FLGW^^%3356IQ<,,33	-	 $9	9	#	$	+	-. . . . ..77 8 !#*+?#OG ))&FLGW^^%3356IQ<,,33	%	&*C	C	-	.%	7	9: : : : &&"V=L"<?G))&FLGW^^%3356IQ<,,33	%	&*C	C	-	.%	7	9: : : : ..77"V 8 =#*+?#OG ))&FLG	rJ
L 
L!//+
L 
Lu +** 
=	<	<v
L 
L 
Ls0   9(\!"\	\,\/\	\\,	/] 	c           
         \         P                  ! R . ROR. RO/4      p\        P                  ! \         P                  ! \         P
                  ! R \         P                  ! 4       4      \         P
                  ! R\         P                  ! 4       4      .4      4      p\        P                  ! \         P                  4      ;_uu_ 4        \        P                  ! WRVR7       RRR4       R#   + '       g   i     R# ; i)r\   Nr]   r  r  r  yNr  re  r  )rB   r   r   r   r@   rC   rG   r  r  rl  r  r  r   r   s   &  r   /test_dictionary_partitioning_outer_nulls_raisesrh    s    HHc+S/BCE??
		288C-rxxRYY[/IJKMD	r	'	'
DI 
(	'	'	's   C++C<	c                     \         P                  ! R . ROR. RO/4      p\        P                  ! \        4      ;_uu_ 4        \
        P                  ! WR4       RRR4       R#   + '       g   i     R# ; i)r\   Nr]   zbasename-{i}.arrowrd  rf  )rB   r   r  r  r  r   r  )r  r   s   & r   test_positional_keywords_raisesrj    sI    HHc+S/BCE	y	!	!
)=> 
"	!	!	!s   A##A4	c           	         Rp\         P                  ! R\         P                  ! ^ V^,           4      R\        P                  ! V^,           4      /4      p\
        P                  ! VRV V R,          R.R7       \
        P                  ! VRV^,            V R,          R.R7       \
        P                  ! V R,          R.R7      pVR,          P                  ^8X  g   Q h\
        P                  ! V R,          RR.R7      pVR,          P                  ^8X  g   Q h\
        P                  ! V R,          R.R7      pVR,          P                  ^8X  g   Q hR# )	r0  r   r,   NrY  r  twor#   i   )	rB   r   repeatnparangerm   r  
read_table
num_chunks)r  
BATCH_SIZEr   s   &  r   test_read_partition_keys_onlyrs    s!    J HHryyJN+:>*, -E kz%1 ozA~%1 MM'E/E7;E<""a'''MM'E/E73CDE<""a'''MM'E/E7;E<""a'''r   c                     \         P                  ! V 4      p\        V Uu. uF?  p\         P                  P	                  \         P                  P                  W4      4      NKA  	  up4      # u upi r   )oslistdiranyrr   isdirr  )basedirelementsels   &  r   _has_subdirsr|    sG    zz'"H8L8Rbggll7788LMMLs   AA,c                 X   \         P                  ! V 4       F  p\         P                  P                  W4      p\         P                  P	                  V4      '       g   KI  \
        P                  ! W4      p\        V4      '       d   \        WEV4       K~  VP                  V4       K  	  R # r   )	ru  rv  rr   r  rx  	posixpathr|  _do_list_all_dirsr3   )ry  path_so_farrF  r  true_nestednorm_nesteds   &&&   r   r  r    si    ZZ ggll7.77==%%#..8KK((!+FCk* !r   c                 $    . p\        V R V4       V# )r  )r  )ry  rF  s   & r   _list_all_dirsr    s    Fgr6*Mr   c                 R    \        \        V 4      4      pV\        V4      8X  g   Q hR # r   )r   r  )r  expected_directoriesactual_directoriess   && r   _check_dataset_directoriesr    s&    ^G45%9!::::r   c           
         \         P                  ! R . ROR. RO/4      p\        P                  ! \         P                  ! \         P
                  ! R \         P                  ! 4       4      \         P
                  ! R\         P                  ! 4       4      .4      4      p\        P                  ! WRVR7       \        V . RO4       R# )r\   r]   Nr  r  rf  rd  )zx/xzy/yr  )	rB   r   r   r   r@   rC   rG   r  r  rg  s   &  r   (test_dictionary_partitioning_inner_nullsr    sy    HHc?C1ABCE??
		288C-rxxRYY[/IJKMDUEEw(;<r   c           
         \         P                  ! R . ROR. RO/4      p\        P                  ! \         P                  ! \         P
                  ! R \         P                  ! 4       4      \         P
                  ! R\         P                  ! 4       4      .4      RR4      p\        P                  ! WRVR7       \        V . RO4       R# )	r\   Nr]   r  r  r  )r  Nr  rd  )za=x/b=xz	a=xyz/b=yz	a=z/b=xyz)	rB   r   r   r  r@   rC   rG   r  r  rg  s   &  r   test_hive_partitioning_nullsr    s    HHc+S2BCDEryy	#ryy{	#RXXc299;%?@ BCGPDUEEw(MNr   c                  V   \         P                  ! R \         P                  ! 4       3R\         P                  ! 4       3.4      p R R.p\        P
                  ! V 4      p\        V\        P                  4      '       g   Q h\        P
                  ! V RR7      p\        V\        P                  4      '       g   Q h\        P
                  ! VR7      p\        V\        P                  4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        \        P
                  ! 4        RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        P
                  ! V R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        P
                  ! W R7       RRR4       \        P
                  ! V R	R
7      p\        V\        P                  4      '       g   Q h\        P
                  ! V RR	R7      p\        V\        P                  4      '       g   Q h\        P
                  ! R	R
7      p\        V\        P                  4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        \        P
                  ! VR	R
7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        P
                  ! VR	R7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        P
                  ! V RR
7       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r   r   inferr  )field_namesNzExpected listr	  zCannot specify bothr   r  )r  r  zCannot specify 'field_names')r  r  unsupported)rB   r@   r   r}   r   r   rP   r   r<  r  r  r[  r  )r@   r  r   s      r   test_partitioning_functionr  	  s:   YY,w	.BCDFWE ??6"DdB445555??68DdB223333??u-DdB223333	z	"	"
 
#	z	9	9
F+ 
:	z)>	?	?
3 
@ ??6&1DdB//0000??6GDdB223333??&)DdB223333	z	"	"
f- 
#	z)G	H	H
E&9 
I 
z	"	"
}5 
#	"+ 
#	"	"	9	9	9	?	?	? 
#	"	H	H 
#	"	"sH   L5M	M
M1NN5M		M	M.	1N	N	N(	c                 B   \         P                  ! \         P                  ! R \         P                  ! \         P                  ! 4       \         P
                  ! 4       4      4      \         P                  ! R\         P                  ! \         P                  ! 4       \         P                  ! 4       4      4      .4      p\        P                  P                  VR7      p\        P                  ! RRWR7      pVP                  P                  V8X  g   Q hVP                  4       pVP                  R 4      P                  P                  VP                   ^ ,          4      '       g   Q hVP                  R 4      P#                  4       ^.^,          ^.^,          ,           8X  g   Q hVP                  R4      P                  P                  VP                   ^,          4      '       g   Q hVP                  R4      P#                  4       R.^,          R.^,          ,           8X  g   Q hR# )	r   r   rc   r   r   r   r  r   r*  r+  N)rB   r@   rC   ry   r}   r   rG   r   r   r;  rV   r   r   r:  rx   r  typesrs  )ro   r@   r   rV   r   s   &    r   *test_directory_partitioning_dictionary_keyr  (	  sy    YY
"--	288:>?
bggi=> F ##,,F,;DjjvG &&&000E<< %%,,V\\!_====<< **,a1#'0AAAA<<##**6<<?;;;;<<((*ugkUGaK.GGGGr   c                    \         P                  ! \         P                  ! R \         P                  ! \         P                  ! 4       \         P
                  ! 4       4      4      \         P                  ! R\         P                  ! \         P                  ! 4       \         P
                  ! 4       4      4      .4      p\        P                  P                  VR7      p\        P                  ! RRWR7      pVP                  P                  V8X  g   Q hVP                  4       p\        \        RR4      4      p\        \        ^^4      4      pVP                  R 4      P                  P!                  VP"                  ^ ,          4      '       g   Q hVP                  R 4      P$                   F5  pVP                  P'                  4       pVP)                  4        W8X  d   K5  Q h	  VP                  R4      P                  P!                  VP"                  ^,          4      '       g   Q hVP                  R4      P$                   F5  pVP                  P'                  4       pVP)                  4        W8X  d   K5  Q h	  R# )	r   r   rc   r   r   r  i  i  N)rB   r@   rC   ry   r}   r   r   r  r;  rV   r   r   ri   r2   r:  rx   r  r  chunksrs  sort)	r   r@   r   rV   r   year_dictionarymonth_dictionaryr   r  s	   &        r   %test_hive_partitioning_dictionary_keyr  =	  s   YY
rwwy"((*=>
"--	288:>? F ''v'6Djjy]G &&&000E5t,-OE!RL)<<$$++FLLO<<<<f%,,!!++-((( - << %%,,V\\!_====g&--!!++-))) .r   c                     Vf;   \         P                  ! R\        ^	4      RR.^,          R.^,          ,           /4      pV R,          p\        P                  ! WVR7       W3# )Nr\   r]   r4  r)  r  r  rB   r   r2   rm   rn   )base_dirr   r  rr   s   &&& r   r/  r/  Y	  sS    }#uQxrdQh".ABCn$DNN5~>;r   c                 t   \         P                  ! R \        ^	4      RR.^,          R.^,          ,           /4      pV R,          p\        P                  ! W4       \         P                  ! R \        ^	^4      RR.^,          R.^,          ,           /4      pV R,          p\        P                  ! W44       W3W$33# )r\   r]   r4  r)  ztest1.parquetztest2.parquetr  )r  r   r   r   r   s   &    r   _create_directory_of_filesr  a	  s    XXsE!HcB4!8rdQh+>?@F&ENN6!XXsE!RL#tax2$(/BCDF&ENN6!e^++r   c                     WP                  VP                  V 4      4      3 FX  pV P                  P                  VP                  4      '       g   Q hVP	                  V 4      P                  V4      '       d   KX  Q h	  R # r   )r  r  r@   r  r   )rV   r   r   picklerrz   s   &&&& r   _check_datasetr  k	  sb    }}W]]7%;<=~~$$U\\2222&&w/66u==== >r   c                 (   \        V \        P                  4      '       g   Q hV \        V 4      V .\        V 4      .3 FH  p\        P
                  ! V 3/ VB p\        V\        P                  4      '       g   Q h\        WaW#4       KJ  	  \        V P                  4      ;_uu_ 4        \        P
                  ! V P                  3/ VB p\        V\        P                  4      '       g   Q h\        WaW#4       R R R 4       R #   + '       g   i     R # ; ir   )rP   pathlibPathr`   r   rV   r  r  r
   parentname)rr   r   r   r  r   r   rV   s   &&&&,  r   _check_dataset_from_pathr  r	  s    dGLL)))) CIvD	{3**T,V,'2#7#78888w~? 4 
DKK	 	 **TYY1&1'2#7#78888w~? 
!	 	 	 s   &AD  D	c                 8    \        V 4      w  r4\        WCW4       R # r   r/  r  r  r   r  r   rr   s   &&&  r   test_open_dataset_single_filer  	  s    %g.KET.Hr   c                 <    \        V ^R7      w  r4\        WCW4       R# )r/  r  Nr  r  s   &&&  r   test_deterministic_row_orderr  	  s    
 &ga@KET.Hr   c                 d    \        V 4      w  r4\        P                  ! V4      p\        WW4       R # r   )r  rB   concat_tablesr  )r  r   r  tablesr  r   s   &&&   r   test_open_dataset_directoryr  	  s(    *73IFV$EW^Kr   c           	      
   \        V 4      w  pw  rE\        P                  ! V4      p\        P                  ! WE.4      \        P                  ! \        V4      \        V4      .4      .pTV Uu. uF"  qP                  VP                  V4      4      NK$  	  up,          pV FZ  p	V	P                  P                  VP                  4      '       g   Q hVP                  V	4      p
V
P                  V4      '       d   KZ  Q h	  R # u upi r   )r  rB   r  r   rV   r`   r  r  r@   r  r   )r  r   r  r  r   r   r   datasetsrz   rV   rF  s   &&&        r   test_open_dataset_list_of_filesr  	  s    7@FNUV$E 	

E>"


CJE
+,H =E=EM//23X H ~~$$U\\2222((1}}U#### 	s   -(D c                 @   \        V 4      w  r\        V4      p\        P                  ! V4      pVP                  P                  VP                  4      '       g   Q h\        P                  ! V\        P                  ! 4       R 7      pVP                  P                  VP                  4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        \        P                  ! V\        P                  ! 4       R 7       RRR4       R#   + '       g   i     R# ; ir  )r/  r   r   rV   r@   r  rd   r   r  r  r  re   )r  r   rr   fspathdataset1dataset2s   &     r   #test_open_dataset_filesystem_fspathr  	  s     &g.KET"F zz&!H??!!%,,//// zz&R-?-?-ABH??!!%,,//// 
y	!	!


6b&8&8&:; 
"	!	!	!s   ,DD	c                 :   V R ,          pVP                  4        \        V4      w  rEVP                  V4      p\        P                  ! V4      p\        P                  ! V\
        P                  ! 4       R7      p\        P                  ! \        V4      \        V4      R7      p	VP                  VP                  V4      4      p
VP                  V4      VP                  V4      u;8X  d/   VP                  V	4      u;8X  d   VP                  V
4      8X  g   Q h Q hR# )single-filer  N)mkdirr/  relative_tor   rV   rd   r   r`   r	   r  r  r   )r  r   r  rq   r   rr   relative_pathd1d2d3d4s   &&&        r   test_construct_from_single_filer  	  s    -'IOO%i0KE$$Y/M 
D	B	DR%7%7%9	:B	C&?93M	NB			]004	5B""2&.*A*A
+ J&&r*J.<.E.Eb.IJ J J J Jr   c                 <   V R ,          pVP                  4        \        V4      w  rE\        P                  ! V4      p\        P                  ! V\        P
                  ! 4       R7      p\        P                  ! VP                  \        V 4      R7      pVP                  V4      p	VP                  V4      p
VP                  V4      pYu;8X  d	   V8X  g   Q h Q hWgV3 F;  pVP                  VP                  V4      4      pVP                  V4      V	8X  d   K;  Q h	  R# )single-directoryr  N)r  r  r   rV   rd   r   r  r	   r   r  r  )r  r   r  rq   r  r   r  r  r  t1t2t3rz   restoreds   &&&           r   $test_construct_from_single_directoryr  	  s    ,,IOO.y9MF	I	B	I"*<*<*>	?B	INNw/G	HB		 	 	$B		 	 	$B		 	 	$B>r>>> b\ &&}':':1'=>&&x0B666 r   c           	         V R ,          pVP                  4        \        V4      w  r4V Uu. uF  qUP                  V 4      NK  	  pp\        V 4      ;_uu_ 4        \        P
                  ! V4      pVP                  V4      p\        V4      \        \        \        V4      4      8X  g   Q h RRR4       \        P
                  ! V\        V 4      R7      p	VP                  V	4      p
\        P
                  ! V4      pVP                  V4      p\        P
                  ! V\        P                  ! 4       R7      pVP                  V4      pXT
u;8X  d   Tu;8X  d	   V8X  g   Q h Q hR# u upi   + '       g   i     L; i)zlist-of-filesNr  )r  r  r  r
   r   rV   r   r   sumrj   r	   rd   r   )r  r   rq   r  r   r   relative_pathsr  r  r  r  r  r  r  t4s   &&             r   !test_construct_from_list_of_filesr  	  s#    /)IOO.y9MF6;<emmG,eN<	G		ZZ'$$R(2w#c#v.//// 

 
Nw/G	HB		 	 	$B	E	B		 	 	$B	Eb&8&8&:	;B		 	 	$BrR =		s   E&AE++E;	c                     R R.p\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! WR7       RRR4       R#   + '       g   i     R# ; i)r   z!subdir/1/xxx/doesnt-exist.parquetzdoesnt-existr	  r  N)r  r  r&  r   rV   )ro   r  s   & r   -test_construct_from_list_of_mixed_paths_failsr  	  sA     	%+E 
(	?	?


5, 
@	?	?	?s   AA	c                     \         P                  ! R R.V R7      p\         P                  ! RV R7      p\         P                  ! W.4      p\        V\         P                  4      '       g   Q h\	        \        VP                  4       4      4      ^8X  g   Q hVP                  4       p\	        V4      ^8X  g   Q hVP                  ^8X  g   Q h\	        VP                  4      ^8X  g   Q hVP                   F  pVP                  R R.8X  d   K  Q h	  R# )r   r  r  r   N)r   rV   rP   UnionDatasetr   ri   rN   r   ra  childrenr  )ro   r\   r]   rV   r   childs   &     r   (test_construct_from_mixed_child_datasetsr  

  s     	

002>D	FA


8/Ajj! Ggr////tG))+,-222Eu:!!!w A%%%!!{{;;= = 	= = "r   c                      \         P                  ! . R R7      p V P                  4       pVP                  ^ 8X  g   Q hVP                  ^ 8X  g   Q hR# )r  r  N)r   rV   r   r   ra  )emptyr   s     r   test_construct_empty_datasetr   
  sD    JJr%(ENNE>>Q!!!r   c            
      Z   \         P                  ! . R \        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3.4      R7      p \        P                  ! \        RR7      ;_uu_ 4        V P                  4        RRR4       R#   + '       g   i     R# ; i)r  r\   r   r@   zMultiple matches for .*a.* in r	  N)
r   rV   rB   r@   rE   rG   r  r  r[  r   )r  s    r   *test_construct_dataset_with_invalid_schemar  '
  sn    JJr%			bhhj	biik; 1 E 
z)I	J	J 
K	J	J	Js   >BB*	c                   a \         P                  ! V \        P                  ! R 4      \         P                  ! 4       R7      p\         P                  ! V \        P                  ! R4      \         P                  ! 4       R7      p\
        P                  P                  \
        P                  ! \        ^
4      4      .R.R7      o\
        P                  P                  \
        P                  ! \        ^
4      4      .R.R7      p\        P                  ! \        RR7      ;_uu_ 4        \         P                  ! W.4       RRR4       R	p\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! . RO4       RRR4       R
p\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! R4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! V3R l\        ^4       4       4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! . 4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! SV.4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! S^ .4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! S^ .4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELi; i  + '       g   i     EL8; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)rW  r  /schemar\   r  r]   z"Expected.*FileSystemDatasetFactoryr	  NzExpected a list of path-like or dataset objects, or a list of batches or tables. The given list contains the following types: intzbExpected a path-like, list of path-likes or a list of Datasets instead of the given type: NoneTypezcExpected a path-like, list of path-likes or a list of Datasets instead of the given type: generatorc              3   (   <"   T F  pSx  K	  	  R # 5ir   r   )r  r  batch1s   & r   r  <test_construct_from_invalid_sources_raise.<locals>.<genexpr>U
  s     -HqFH   zEMust provide schema to construct in-memory dataset from an empty listzFItem has schema
b: int64
which does not match expected schema
a: int64z}Expected a list of path-like or dataset objects, or a list of batches or tables. The given list contains the following types:zCExpected a list of tables or batches. The given list contains a intr  )r   r   rd   r   r   rB   r9  r   r|   r2   r  r  r  rV   r[  InMemoryDataset)r   child1child2batch2r  r  s   &    @r   )test_construct_from_invalid_sources_raiser  0
  s   ((
!##%F
 ((
	"##%F
 ^^''%))<(=cU'KF^^''%))<(=cU'KF	y(L	M	M


F#$ 
N	 
 
y	1	1


9 
2	.  
y	1	1


4 
2	/  
y	1	1


-E!H-. 
2 	P  
z	2	2
2 
3	  
y	1	1


FF#$ 
2	J  
y	1	1


FA; 
2 	N  
y	1	1
FA;' 
2	1a 
N	M	M 
2	1	1 
2	1	1 
2	1	1 
3	2	2 
2	1	1 
2	1 
2	1	1s`   &M,M3M.8*NNN*N>#OM	M+	.M?	N	N'	*N;	>O	O"	c                 n   \         P                  P                  \         P                  ! \	        ^
4      4      .R.R7      p\         P
                  P                  VP                  V.4      p\         P                  P                  V.4      p\        P                  ! . R\         P                  ! . 4      R7      P                  4       pV\         P                  ! . 4      8X  g   Q hWV.V.V3 F  p\        P                  ! V4      pV P                  V4      V8X  g   Q h\        \        VP                  4       4      4      ^8X  g   Q h\!        VP                  4       4      P                  4       V8X  g   Q h\         P                  P                  \        VP#                  4       4      4      V8X  d   K  Q h	  R# )rv  r\   r  r  r  N)rB   r9  r   r|   r2   RecordBatchReaderrl   r@   rH   r   rV   r   r   r   ri   rN   r5   r   )r   ru   r   r   dataset_tablesourcerV   s   &      r   test_construct_in_memoryr  r
  sL   NN&&r(;'<SE&JE!!..u||eWEFHH!!5'*EJJr%		" !!) BHHRL(((%5'6:**V$&&w/58884--/01Q666G))+,5575@@@xx$$T'*<*<*>%?@EIII ;r   r   c                 R  aa \         P                  P                  \         P                  ! \	        ^
4      4      .R.R7      o\         P
                  P                  S.4      oRpV3R lR3V3R lR3V3R lSP                  33 F  w  r#\        P                  P                  V! 4       W0R7      pVP                  4       S8X  g   Q h\        P                  ! \         P                  VR	7      ;_uu_ 4        VP                  4        RRR4       K  	  R#   + '       g   i     K  ; i)
rv  r\   r  z#OneShotFragment was already scannedc                  Z   < \         P                  P                  S P                  S .4      # r   )rB   r  rl   r@   ru   s   r   r5  $test_scan_iterator.<locals>.<lambda>
  s!    R))66ug'r   Nc                     < \        S 4      # r   )r   r   s   r   r5  r  
  s    '.r   c                  .   < V 3R  l\        ^4       4       # )c              3   (   <"   T F  pSx  K	  	  R # 5ir   r   )r  r  ru   s   & r   r  7test_scan_iterator.<locals>.<lambda>.<locals>.<genexpr>
  s     .XeXr  )r2   r  s   r   r5  r  
  s    .U1X.r   r@   r   r	  )rB   r9  r   r|   r2   rH   rl   r@   r   rk  r   r  r  rl  )r   r
  r   r@   r   ru   r   s   &    @@r   test_scan_iteratorr  
  s    NN&&r(;'<SE&JEHH!!5'*E1E'(,..5.=	 **))If * ?!U***]]2??%88 98 988s   6DD&c                 6   \         P                  ! R \        ^	4      RR.^,          R.^,          ,           /4      pV R,          pVP                  4        \        ^4       FT  pVRV 2,          pVP                  4        \        P
                  ! VP                  ^V,          ^4      VR,          4       KV  	  VP                  R\         P                  ! ^ .^,          ^.^,          ,           ^.^,          ,           \         P                  ! 4       R7      4      pWR3# )	r\   r]   r4  r)  zdataset-partitionedzpart=r  r   rw   )
rB   r   r2   r  rm   rn   r  append_columnr|   r   )ry  r   rr   r=   r   
full_tables   &     r   _create_partitioned_datasetr  
  s    HHc58S2$(bTAX*=>?E**DJJL1XaSk!


u{{1Q3*D>,AB 
 $$!qA37*aS1W4288:FHJ r   c           
      x   \        V 4      w  r4VP                  R R.4      p\        WEW4       \        P                  ! \        V4      \        P                  ! RR7      R7      pVP                  P                  VP                  4      '       g   Q h\        V 4      ;_uu_ 4        \        P                  ! R\        P                  ! RR7      R7      pVP                  P                  VP                  4      '       g   Q h RRR4       \        P                  ! \        V4      RR7      pVP                  P                  VP                  4      '       g   Q h\        P                  ! \        V4      \        P                  ! \        P                  ! R\        P                  ! 4       3.4      RR7      R7      pVP                  P                  \        P                  ! R\        P                  ! 4       4      4      pVP                  P                  V4      '       g   Q hVP                  4       pVP                  R\        P                   ! ^ .^,          ^.^,          ,           ^.^,          ,           \        P                  ! 4       R7      4      p	VP                  V	4      '       g   Q hR#   + '       g   i     EL; i)	r\   r]   r   r  r   zdataset-partitioned/Nr   rw   )r  r  r  r   rV   r`   r   r@   r  r
   rB   r}   r3   rC   r   r  r|   )
r  r   r  r  rr   r   rV   rS  rF  r  s
   &&&       r   'test_open_dataset_partitioned_directoryr  
  s   27;J sCj)ET.H jjD	v >@G>>  !2!23333 
G		**3*,//*HJ~~$$Z%6%67777 
 jjT8G>>  !2!23333 jjD	__II	*+,V=>G ll))"((62779*EFO>>  1111F""!qA37*aS1W42779EGH=="""") 
		s   #AJ((J9	c                 n   \        V 4      w  r\        P                  ! \        V4      4      pVP                  P                  VP                  4      '       g   Q h\        P                  ! \        V4      \        P                  ! 4       R 7      pVP                  P                  VP                  4      '       g   Q h\        V 4      ;_uu_ 4        \        P                  ! R\        P                  ! 4       R 7      pRRR4       XP                  P                  VP                  4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        \        P                  ! \        V4      \        P                  ! 4       R 7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r  N)r/  r   rV   r`   r@   r  rd   r   r
   r  r  r&  re   )r  r   rr   r  r  dataset3s   &     r   test_open_dataset_filesystemr  
  s    &g.KE zz#d)$H??!!%,,//// zz#d)0B0B0DEH??!!%,,//// 
G		::n9K9K9MN 
??!!%,,//// 
(	)	)


3t9););)=> 
*	) 
	
 
*	)	)s   ,F5F#F 	#F4	c                     \        V 4      w  r\        P                  ! \        R R7      ;_uu_ 4        \        P
                  ! V.RR7       RRR4       R#   + '       g   i     R# ; i)z format 'blabla' is not supportedr	  blablar  N)r/  r  r  r[  r   rV   )r  r  rr   s   &  r   $test_open_dataset_unsupported_formatr  
  s@    !'*GA	z)K	L	L


D6(+ 
M	L	L	Ls   AA'	c                 L   \        V 4      w  r4\        P                  ! V4      p\        P                  ! WU.4      p\        V\        P                  4      '       g   Q hVP                  VP                  V4      4      pVP                  V4      VP                  V4      8X  g   Q hR # r   )r/  r   rV   rP   r  r  r  r   )r  r   r  r  rr   rV   unionr  s   &&&     r   test_open_union_datasetr  
  s    !'*GAjjGJJ)*EeR__----!!-"5"5e"<=G""7+~/F/Fu/MMMMr   c                     \         P                  ! R V RR7      p\        P                  ! \        RR7      ;_uu_ 4        \         P                  ! V.RR7       RRR4       R#   + '       g   i     R# ; i)rW  r   rX  zcannot pass any additionalr	  r  N)r   rV   r  r  r[  )r   r  s   & r   .test_open_union_dataset_with_additional_kwargsr
  
  sF    JJxM)LE	z)E	F	F


E79- 
G	F	F	Fs   A""A3	c                  x   \         P                  ! \        4      ;_uu_ 4        \        P                  ! R RR7       RRR4       \         P                  ! \
        P                  RR7      ;_uu_ 4        \        P                  ! RRR7       RRR4       R#   + '       g   i     La; i  + '       g   i     R# ; i)zi-am-not-existing.arrowr  r  Nzcannot be relativer	  zfile:i-am-not-existing.arrow)r  r  r&  r   rV   rB   rl  r   r   r   #test_open_dataset_non_existing_filer  
  sn     
(	)	)


,U; 
* 
r.B	C	C


1%@ 
D	C 
*	) 
D	C	Cs   B2B(B%	(B9	r   rq   r   r  r  partition_keysc           	      t  a \         P                  ! R \        ^	4      RR.^,          R.^,          ,           /4      pRV^ ,          9   ;'       g    RV^,          9   pVR8X  d   V'       d   R# VR8X  d)   \        P                  P                  RR.SR7      pR	pRpMYV'       d#   \        P                  P                  SVR
7      pM \        P                  P                  SR7      pRpV'       d   TpMRpV R,          p	V	P                  4        Vw  rV
 Fh  pV F_  pT	TP                  T;'       g    TT;'       g    T4      ,          pVP                  RR7       \        P                  ! W^R,          4       Ka  	  Kj  	  \        P                  ! \        V	4      VR7      pV3R lpVP                  P                  \         P                  ! RV! V
^ ,          4      4      4      P                  \         P                  ! RV! V^ ,          4      4      4      pVP                  P!                  V4      '       g   Q hR# )r\   r]   r4  r)  Nrq   part1part2rD  z{0}/{1})r@  r  zpart1={0}/part2={1}__HIVE_DEFAULT_PARTITION__rV   T)parentsr  r  c                 h  < S'       dk   \        V \        4      '       d   \        P                  ! 4       M\        P                  ! 4       p\        P
                  ! \        P                  ! 4       V4      # \        V \        4      '       d   \        P                  ! 4       # \        P                  ! 4       # r   )rP   r`   rB   rG   r   ry   )r   
value_typer@  s   & r   rG  /test_partition_discovery.<locals>.expected_type?  s_    (23(<(<"((*J==Z88",S#"6"6299;FBHHJFr   )rB   r   r2   r   r   r;  r  r  r   rm   rn   rV   r`   r@   r3   rC   r  )r  r   r  r@  r  r   has_nullfmt
null_valuebasepath
part_keys1
part_keys2r  r  rr   rV   rG  rS  s   &&&f&             r   test_partition_discoveryr    s   " HHc58S3%!)seai*?@AE~a((EEDN14E,EH{"x{"//88g1A 9 C
..77!1 8 L ..77!1 8 3L#&J5J"HNN+JE

5..J0C0CDEDJJtJ$NN5"78	    jjX\BGG ll))
-
167f
-
167 
 >>  1111r   c                 8   \         P                  ! R \        P                  ! RR.^4      R\	        ^
4      /4      p\
        P                  ! VP                  R .4      P                  RR7      p\
        P                  ! W VRR7       \
        P                  ! V R\
        P                  P                  RR	7      R
7      p\         P                  ! RVR,          R VR ,          P                  4       /4      pVP                  4       P                  V4      '       g   Q h\!        VP#                  4       4      ^ ,          pVP                  VP                  R7      P                  VR,          4      '       g   Q hVP$                  pVP'                  VP)                  V4      4      pVP                  4       P                  V4      '       g   Q hVP'                  VP)                  V4      4      pVP                  VP                  R7      P                  VR,          4      '       g   Q hVP                  VP                  R7      P+                  4       P                  VR,          P+                  4       4      '       g   Q hVP$                  P                  V4      '       g   Q hR# )r   r  Br  r   r  r-  r   r   TrD  r  rc   :Nr  NN)rB   r   rn  rm  r2   r   r   r  r@   r  rV   r  r;  r  r   r  ri   rN   r  r  r  r  )	r  r  r   r   rV   r  rW   	part_exprr  s	   &&       r   4test_dataset_partitioned_dictionary_type_reconstructr!  M  s    HHfbiic
A6uRyIJE??5<<188HDU$yIjj	((1141HG xx	efeFm&E&E&GHH $$X....G))+,Q/HGNN3::8B<HHHH--I""=#6#6w#?@H%%h////""=#6#6x#@AHGNN3::8B<HHHHGNN3==?FF     ((//	::::r   c           	      f   ^ RI Hp V R,          w  r#rERV RV RV RV R2	pVP                  V4      w  rxVP                  ! R4       \        P
                  ! R. RO/4      p	VP                  ! R	4      ;_uu_ 4       p
\        P                  ! W4       R
R
R
4       WWvW#WE3#   + '       g   i     L; i)r   
FileSystem
connections3://:z5@mybucket/data.parquet?scheme=http&endpoint_override=z&allow_bucket_creation=Truemybucketr\   zmybucket/data.parquetNr  )	r   r$  from_urirg   rB   r   rh   rm   rn   )	s3_serverr$  re  rf  rg  rh  rd  rd   rr   r   rs   s   &          r   rc  rc  l  s    %)2<)@&D


|1ZL )"V1TF*E	G 
 ""3'HBMM*HHc9%&E			6	7	73
u" 
8 ZCC 
8	7s   ;B  B0	c                    V w  r#rE   p\         P                  ! VR R7      pVP                  V4      P                  V4      '       g   Q h\         P                  ! VR VR7      pVP                  V4      P                  V4      '       g   Q hR# )r   r  r   r  N)r   rV   r   r  )rc  r   r   rr   rd   rd  r  rV   s   &&      r   test_open_dataset_from_uri_s3r-    s     (9$E!Q1 jjY/G""7+2259999 jjiB?G""7+2259999r   c                     V w  r#rE   p\         P                  ! R 4      pVP                  V4      p\        P                  ! VRVR7      p	VP                  V	4      P                  V4      '       g   Q hR# )r(  r   r,  N)rd   r   r_  r   rV   r   r  )
rc  r   r   rr   r  rd  r  r   finfosrV   s
   &&        r    test_open_dataset_from_fileinfosr0    si     0A,E!Q1z*H%%h/Fjj	jIG""7+2259999r   c           	         V w  r r4rVp\         P                  ! R 4      p^ RIHp	Hp
 VP                  VVRRV RV 2/R7      p\        P                  ! VRVR7      pVP                  4       P                  V4      '       g   Q hV
! V	! V4      4      p\        P                  ! VRVR7      pVP                  4       P                  V4      '       g   Q hR# )	s3fs)FSSpecHandlerr   endpoint_urlzhttp://r'  )r   secretclient_kwargsr   r,  N)
r  importorskipr   r3  r   S3FileSystemr   rV   r   r  )rc  r   rr   r  re  rf  rg  rh  r2  r3  r   rd   rV   s   &            r   $test_open_dataset_from_uri_s3_fsspecr9    s     =N9EATzv&D6			gdV1TF3
 
 
B jjiB?G$$U++++ 
mB'	(BjjiB?G$$U++++r   c                 &   ^ RI Hp V R,          w  r#rERpRpRV RV RV RV R	V RV R
2pVP                  V4      w  rVR8X  g   Q hV	P                  ! V4       \        P
                  ! R. RO/4      p
V	P                  ! V4      ;_uu_ 4       p\        P                  ! W4       RRR4       \        P                  ! VRR7      pVP                  4       P                  V
4      '       g   Q hRP                  WEW#4      p. ROpV FU  w  rVP                  V4      p\        P                  ! WxRR7      pVP                  4       P                  V
4      '       d   KU  Q h	  \        P                  ! \        P                   RR7      ;_uu_ 4        VP                  R4      p\        P                  ! RVR7       RRR4       RpRpVP                  V4      p\        P                  ! \"        4      ;_uu_ 4       p\        P                  ! RVR7       RRR4       \%        XP&                  4      VP                  RWx4      8X  g   Q hRpVP                  V4      p\        P                  ! \"        4      ;_uu_ 4       p\        P                  ! RVR7       RRR4       \%        VP&                  4      VP                  RWx4      8X  g   Q hR#   + '       g   i     EL); i  + '       g   i     EL-; i  + '       g   i     L; i  + '       g   i     Ly; i)r   r#  r%  theirbucketnested/folder/data.parquetr&  r'  @r   z?scheme=http&endpoint_override=z&allow_bucket_creation=truez&theirbucket/nested/folder/data.parquetr\   Nr   r  3s3://{}:{}@{{}}?scheme=http&endpoint_override={}:{}data.parquetrX  zMissing bucket namer	  z'/theirbucket/nested/folder/data.parquetr  zThe path component of the filesystem URI must point to a directory but it has a type: `{}`. The path component is `{}` and the given filesystem URI is `{}`ztheirbucket/doesnt/existNotFoundFiler  ))ztheirbucket/nested/folder/z/data.parquet)ztheirbucket/nested/folderr?  )ztheirbucket/nested/folder/data.parquet)ztheirbucket/nestedrB  )r;  z/nested/folder/data.parquet)r;  r<  )r   r$  r)  rg   rB   r   rh   rm   rn   r   rV   r   r  r   r  r  rl  r[  r`   r,   )r*  r$  re  rf  rg  rh  bucketrr   rd  rd   r   rs   rV   templater  prefixr=  excs   &                 r   -test_open_dataset_from_s3_with_filesystem_urirG    s    &)2<)@&D
F'D

|1ZL&4& 9"V1TF*E	G 
 ""3'HB;;;;MM&HHc9%&E			t	$	$
u" 
% jjY/G$$U++++ 	>DDD	
 
E oof%**T)D!((//// 
 
r.C	D	Dooc"


<M 
E
	! 
 &D
//$
C	z	"	"c


>c2 
#syy>U\\*d@@@@3D
//$
C	z	"	"c


>c2 
#syy>U\\&$<<<<] 
%	$	$4 
E	D	D 
#	" 
#	"s0   K*K4K-6L K	K*	-K=	 L	c                     \        V 4      w  r\        P                  ! R 4      pVP                  R4      p\        P
                  ! W$R7      pVP                  P                  VP                  4      '       g   Q hR# )fsspecfiler  N)r/  r  r7  r  r   rV   r@   r  )r  r   rr   rI  r   rV   s   &     r   test_open_dataset_from_fsspecrK    s[    %g.KE  *F'Gjj2G>>  ....r   c                    \         P                  ! R 4      p\        P                  ! R. RO/4      pV R,          p\        P
                  ! W#4       VP                  R4      pVP                  V 4      ^ ,          P                  R4      '       g   Q h\        P                  ! 4       p\        P                  ! \        P                  ! V4      4      pVP                  W64      pVP                  VP                   4      '       g   Q hVP#                  W64      pVP$                  P                  VP                   4      '       g   Q hR# )rI  r\   r?  rJ  Nr  )r  r7  rB   r   rm   rn   r  lsendswithr   r   rd   r   r3  rP  r  r@   r  r  )	r  rI  r   rr   	fsspec_fsr   r  r@   rW   s	   &        r   test_file_format_inspect_fsspecrP    s       *F HHc9%&E^#DNN5 !!&)I<< #,,^<<<< !!#F !1!1)!<=J^^D-F==&&&&##D5H##**5<<8888r   c                 ^   V R ,          p\         P                  ! RRR.^,          R\        ^
4      /4      p\        P                  ! VP                  R.4      P                  RR7      p\        P                  ! W2VRR7       \        P                  ! \         P                  ! R\         P                  ! R	4      3.4      RR7      p\        P                  ! VRVR
7      p\        P                  ! R4      \        P                  ! R4      8  pVP                  WVR7      pVP                  R4      P                  4       . RO8X  g   Q h^ RIp\        P                  ! R4      VP                   ! R^^4      8  pVP                  WVR7      pVP                  R4      P                  4       . RO8X  g   Q hR# )test_partition_timestampsdates
2012-01-01z
2012-01-02r  r   r  r-  r  r  r  r  Ni  )r/  r1  r     	   )rB   r   r2   r   r   r  r@   r  r  rV   rC   r6   	Timestampr   r:  rs  r.   )r  r   rr   r   r   rV   rE  r.   s   &&      r   test_filter_timestamprX    sW    00DHH,-1eBi E
 ??5<<	299&IDUtIF ??299wS0A&B%CD"(*DjjidCG!BLL$>>I##G#>E<<'')_<<<!H$5$5dAq$AAI##G#>E<<'')_<<<r   c                 Z   \         P                  ! R \         P                  ! . RO\         P                  ! 4       R7      /4      p\	        W4      w  r4\
        P                  ! \        V4      4      p\
        P                  ! R 4      ^8  p\        VP                  WVR7      4      ^8X  g   Q hR# )r\   rw   r  N)r   r/  r0  r1  r2  r  )rB   r   r|   r}   r/  r   rV   r`   rC   r   r   )r  r   r   r  rr   rV   filter_s   &&     r   test_filter_implicit_castr[  8  sz     HHc288$6RWWYGHIE!'1GAjjT#GhhsmaG~&&w&?@AEEEr   c                 4   \         P                  ! R . RO/4      p\        W4      w  r4\        P                  ! \        V4      4      pVP                  V\        P                  ! R 4      \        P                  ! R4      8H  R7      pVP                  ^ 8X  g   Q hR# )r  Nr  )r\   r]   N)
rB   r   r/  r   rV   r`   r   rC   r  r   )r  r   r   r  rr   rV   s   &&    r   test_filter_equal_nullr]  C  sy     HHc+,-E!'1GAjjT#G##48 $ E >>Qr   c                    \         P                  ! R . R
OR\        ^4       Uu. uF  p\        P                  ! R^^V4      NK  	  upR\        ^^4       Uu. uF  p\        P                  ! R^V4      NK  	  up/4      p\	        W4      w  rE\
        P                  ! \        V4      4      p\        P                  ! \
        P                  ! R 4      \         P                  ! RR.4      4      pVP                  WgR7      P                  ^8X  g   Q h\        P                  ! \
        P                  ! R4      4      ^8  pVP                  WgR7      P                  ^8X  g   Q h\        P                  ! \
        P                  ! R4      \
        P                  ! R4      4      pVP                  VRV/R	7      p	V	R,          P!                  4       . RO8X  g   Q hR# u upi u upi )r  r\   r]   Nr  i  Cr  r"   r#   )r\   r]   Nr\   r{   r.  )rB   r   r2   r.   r/  r   rV   r`   r  is_inrC   r|   r   r   hourdays_betweenrs  )
r  r   r=   r   r  rr   rV   rZ  r"   rF  s
   &&        r   test_filter_compute_expressionrc  P  sn   HH'aA1haA.AU1a[A[ha+[A E
 "'1GAjjT#Ghhrxx}bhhSz&:;G""7";DDIIIggbhhsm$)G""7";DDIII??288C="((3-8D$$Wvtn$EF&>##%888 BAs   "G!Gc                    \         P                  ! V \        P                  ! R 4      \         P                  ! 4       R7      p\         P
                  ! V.4      p\        VP                  4       4      ^8X  g   Q h\        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  RM! R VP                  4        4       4      '       g   Q hVP                  4       ^ ,          P                  VP                  4       4      '       g   Q hVP                  4       P                  VP                  4       4      '       g   Q h\        VP                  4       \         P                  4      '       g   Q hR# )rW  r  c              3   V   "   T F  p\        V\        P                  4      x  K!  	  R # 5ir   )rP   rB   r8  )r  r  s   & r   r  %test_dataset_union.<locals>.<genexpr>n  s      K1JAz!RYY''1Js   ')FTN)r   r   rd   r   r   UnionDatasetFactoryr   rL  r  r  rP  rP   r   r7  )r   r  r   s   &  r   test_dataset_unionrh  e  s   ''rx0##%E $$eW-G w&&()Q...3K1H1H1JK333K1H1H1JKKKKK""$Q'..u}}??????##EMMO4444gnn&

3333r   c                 T
   \         P                  ! R VRR7      p\         P                  ! RVRRR.R7      p\         P                  ! RVRRR7      pVP                  VP                  u;8w  d   VP                  8w  g   Q h Q h\         P                  ! W#V.4      p\        V\         P                  4      '       g   Q hR	p\
        P                  ! \        VR
7      ;_uu_ 4        \         P                  ! W#.VR7       RRR4       \        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  P                  V4      '       g   Q hVP                  4       P                  P                  V4      '       g   Q h\         P                  ! W$.4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  P                  V4      '       g   Q hVP                  4       P                  P                  V4      '       g   Q h\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      p\         P                  ! W$.VR7      pVP                  4       P                  P                  V4      '       g   Q h\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      p\         P                  ! W$.VR7      pVP                  4       P                  P                  V4      '       g   Q h\        P                   ! \#        ^	4      R.^,          R.^,          ,           R.. ROR7      p\%        WR7      w  r\         P                  ! V
4      p\
        P                  ! \        P&                  RR
7      ;_uu_ 4        \         P                  ! W+.4       RRR4       R#   + '       g   i     EL; i  + '       g   i     R# ; i)rW  r   rX  r  weekr-   r  r   r   /hiver   z$cannot pass any additional argumentsr	  r  Nr*   r+   r,   r   r   rc   re  r4  r)  	abcdefghjr  r   zUnable to merge)r*   r,   r+   )r   rV   r@   rP   r  r  r  r[  rB   rD   rE   rF   rG   r   r  r   r   r2   r/  rO  )r  r   r  r  child3	assembledmsgrS  r   r  rr   child4s   &&          r   &test_union_dataset_from_other_datasetsrr  t  s   ZZ]9MFZZ	mI&,g%68FZZM)%+-F ==FMM:V]]:::::

FF34Ii1111
0C	z	-	-


F#> 
. ii		"((*	"**,	"))+			"((*! O ""?3333&&--o>>>>

F+,Iii		"((*	"**,	"))+		"((*! O ""?3333&&--o>>>>ii	"((*	"))+	! O
 

F+ODI&&--o>>>>ii	"((*	"))+	BIIK ! O
 

F+ODI&&--o>>>> HHeAhqB4!8 3[A57E!'7GAZZF	r((0A	B	B


F#$ 
C	Bc 
.	-	-b 
C	B	Bs   "T TT	T'	c                     R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! . ROV R7       RRR4       R#   + '       g   i     R# ; i)z8points to a directory, but only file paths are supportedr	  r  N)rW  r  rl  )r  r  IsADirectoryErrorr   rV   )r   rp  s   & r   4test_dataset_from_a_list_of_local_directories_raisesru    s7    
DC	(	4	4


1mL 
5	4	4	4s   AA	c           
         \         P                  ! \         P                  ! R V R7      \         P                  ! RV R7      \         P                  ! RV R7      .4      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  P                  V4      '       g   Q h\         P                  ! \         P                  ! R V R7      \         P                  ! RV R7      \         P                  ! RV RR	7      .4      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R
\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  P                  V4      '       g   Q hR# )rW  r  r  rl  r*   r+   r,   r-   r   )r  r   r   r   N)
r   rV   rB   r@   rD   rE   rF   rG   r  r   )r   rV   rS  s   &  r   &test_union_dataset_filesystem_datasetsrw    sp   jj


86


97


7}5 G
 ii		"((*	"**,	"))+	! O >>  1111 jj


86


97


7}6J G
 ii		"((*	"**,	"))+		"((*! O >>  1111r   c                 P  a a \         P                  ! R . ROR. RO/4      p\        P                  ! VS R,          4       RVV 3R llpRpTpV! WEVP                  R7       VP                  pTpV! WE4       \         P                  ! RR.4      p\         P                  ! . RO. RO.RR .R7      pV! WE4       \         P                  ! R.4      p\         P                  ! . RO.R .R7      pV! WE4       \         P                  ! RR.4      p\         P                  ! . RO\         P
                  ! . RORR	7      .R R.R7      pV! WE4       \         P                  ! RR.4      p\        P                  ! \        S R,          4      VR
7      p\         P                  ! VR ,          P                  R4      VR,          .R R.R7      pV! WE4       \         P                  ! R \         P                  ! \         P                  ! 4       4      3R.4      p\        P                  ! \        S R,          4      VR
7      pVP                  P                  V4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        SP!                  V4       RRR4       R#   + '       g   i     R# ; i)r\   r]   r?  Nc                 B  < \         P                  ! \        SR ,          4      V R7      pVe%   VP                  P	                  V4      '       g   Q hM#VP                  P	                  V 4      '       g   Q hSP                  V4      pVP	                  V4      '       g   Q hR# )r?  rc   N)r   rV   r`   r@   r  r   )r@   r  rS  rV   rF  r   r  s   &&&  r   r  -test_specified_schema.<locals>._check_dataset  s~    **S>!9:6J&>>((9999>>((0000((1}}X&&&&r   )rS  r  r{   r   rw   rc   z#Unsupported cast from int64 to listr	  r  r!  r"  r#  r   )r]   rF   )r\   rE   )r{   r   NNN)r\   r   )rB   r   rm   rn   r@   r|   r   rV   r`   r  list_r   r  r  r  r'  r   )r  r   r   r  r@   r  rV   s   ff     r   test_specified_schemar~    s#   HHc9c<89ENN5'N23' ' FH6U\\B \\FH6$ YY(.9:Fxxy1#sDH6$ YY'(FxxC51H6$ YY78Fxx"47CE"Cj*H 6$ YY(89:FjjW~56vFGxxs1s%"Cj*H 6$ YYbhhrxxz235EFGFjjW~56vFG>>  ((((	*B
D 
D(
D 
D 
D 
Ds   8JJ%	c                 L   V R ,          p\         P                  ! R. RO/4      p\        P                  ! W24       \         P                  ! R\         P
                  ! 4       3.4      p\        P                  ! \        V4      .^d,          VR7      pVP                  P                  V4      '       g   Q hVP                  V4      p\        P                  ! \        RR7      ;_uu_ 4        VP                  4       pVP                  4        RRR4       R#   + '       g   i     R# ; i)r?  r\   rc   z#Unsupported cast from int64 to nullr	  Nr  )rB   r   rm   rn   r@   r  r   rV   r`   r  r   r  r  r'  ro  rp  )r  r   fnr   r@   rV   r   r   s   &&      r   test_incompatible_schema_hangr    s     
>	!BHHc9%&ENN5YYbggi()*Fjj#b'S8G>>  (((($$W-G	*B
D 
D""$
D 
D 
D 
Ds   '!DD#	c           
      2   \         P                  ! R \         P                  ! . RORR7      R\         P                  ! . R	ORR7      /4      p\        V R,          4      p\         P                  ! V4      ;_uu_ 4       p\         P
                  ! WBP                  4      pVP                  VP                  4       ^ ,          4       VP                  4        RRR4       \        P                  ! V\        P                  ! 4       R7      pVP                  V4      pVP                  V4      '       g   Q h\        V4       R
 FD  p\        P                  ! W8R7      pVP                  V4      pVP                  V4      '       d   KD  Q h	  R#   + '       g   i     L; i)r\   r}   rw   r]   rF   z
test.arrowNr  r  r{  )r  arrow)rB   r   r|   r`   output_streamRecordBatchFileWriterr@   write_batchr   rT  r   rV   r%  r   r  rY   )	r  r   r   rr   rY  rZ  rV   rF  
format_strs	   &&       r   test_ipc_formatr  (  s&   HHc288IF;288LyAC DE w%&D			$		4))$=5++-a01 
 
 jjb&6&6&89G$$W-F==/8&
**T5((1}}U#### ' 
 	s   ;AFF	c           
      >   ^ RI Hp \        P                  ! R\        P                  ! . RORR7      R\        P                  ! . RORR7      /4      p\        V R,          4      pVP                  W44       \        P                  ! V\        P                  ! 4       R7      p\        VP                  4       4      p\        V^ ,          \        P                  4      '       g   Q hVP                  V4      pVP                  R	R
7       VP!                  V4      '       g   Q h\#        V4       \        P                  ! VRR7      pVP                  V4      pVP                  R	R
7       VP!                  V4      '       g   Q hVP                  VR.R7      pVP                  R	R
7       VP!                  VP%                  R.4      4      '       g   Q hVP                  VR\        P&                  ! R4      ^,          /R7      pVP                  R	R
7       VP!                  \        P                  ! R\        P                  ! . RORR7      /4      4      '       g   Q hVP)                  V4      ^8X  g   Q hVP)                  V\        P&                  ! R4      ^8  R7      ^8X  g   Q hR# )r   orcr\   r}   rw   r]   rF   test.orcr  TrM  r  r#   b2r  Nr  r{  )r"  r$  g333333?)r   r  rB   r   r|   r`   rn   r   rV   r3  ri   rN   rP   FileFragmentr   rQ  r  rY   r  rC   r   )r  r   r  r   rr   rV   r  rF  s   &&      r   test_orc_formatr  >  s   HHc288IF;288LyAC DE w#$DOOE jjb&6&6&89GW**,-IilBOO4444$$W-F
OOO==/8jje,G$$W-F
OOO==$$Wse$<F
OOO==se,----$$$ 12 % F OOO==
$I>?@    $$W-222$$WRXXc]Q5F$G1LLLr   c           
         ^ RI Hp \        P                  ! R\        P                  ! . RORR7      R\        P                  ! . RORR7      /4      p\        V R,          4      pVP                  W44       \        P                  ! VRR	7      p\        VP                  V4      4      p\        V4      ^8X  g   Q hV^ ,          P                  ^8X  g   Q hV^ ,          P                  VP                  4       ^ ,          4      '       g   Q h\        VP                  V^R
7      4      p\        V4      ^8X  g   Q hV^ ,          P                  ^8X  g   Q hV^ ,          P                  VP                  ^ ^4      P                  4       ^ ,          4      '       g   Q hV^,          P                  ^8X  g   Q hV^,          P                  VP                  ^^4      P                  4       ^ ,          4      '       g   Q hR# )r   r  r\   r}   rw   r]   rF   r  r  r  )
batch_sizeNr  r{  )r   r  rB   r   r|   r`   rn   r   rV   ri   r   r   r   r  r  )r  r   r  r   rr   rV   rF  s   &&     r   test_orc_scan_optionsr  e  s   HHc288IF;288LyAC DE w#$DOOE jje,G.++G45Fv;!!9"""!9E,,.q12222.++G+BCFv;!!9"""!9EKK1-88:1=>>>>!9"""!9EKK1-88:1=>>>>r   c                       ^ RI Hp  R#   \         d_    \        P                  ! \
        RR7      ;_uu_ 4        \        P                  ! RRR7       RRR4        R#   + '       g   i      R# ; ii ; i)r   r3  z'not built with support for the ORC filer	  rF  r  r  N)r  r3  r4  r  r  r[  r   rV   r  s    r   test_orc_format_not_supportedr  |  sU    *1 *]]G
 
 JJs5)
 
 
 
*s&   
 /A3AA3A/(A3/A3c            
         \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! \
        P                  ! R\        ^
4      /4      RRR7       RRR4       \        P                  ! 4       p \         P                  ! \        R R7      ;_uu_ 4        V P                  4        RRR4       R#   + '       g   i     Ld; i  + '       g   i     R# ; i)z9Writing datasets not yet implemented for this file formatr	  r\   r  z/tmp)r   r  N)
r  r  r'  r   r  rB   r   r2   r3  make_write_options)ofs    r   +test_orc_writer_not_implemented_for_datasetr    s    	I
 
 	HHc59%&uv	
	
 
			B	I
 
 		
 

 

 
 
s   9B:C:C
	C	c           
      D   \         P                  ! R \         P                  ! . RORR7      R\         P                  ! . RORR7      /4      p\        V R,          4      pVP	                  4       P                  VRR7       \        P                  ! V\        P                  ! 4       R7      pVP                  V4      pVP                  V4      '       g   Q h\        V4       \        P                  ! VR	R7      pVP                  V4      pVP                  V4      '       g   Q hR
# )r\   rE   rw   r]   rF   test.csvFr+   r  r.  Nr  r{  )rB   r   r|   r`   r  to_csvr   rV   r-  r   r  rY   )r  r   r   rr   rV   rF  s   &&    r   test_csv_formatr    s    HHc288IG<288LyAC DE w#$D	OOT/jjb&6&6&89G$$W-F==/8jje,G$$W-F==r   compressionc           
         \         P                  P                  V4      '       g   \        P                  ! V R 24       \
        P                  ! R\
        P                  ! . RORR7      R\
        P                  ! . RORR7      /4      p\        P                  ! 4       pVR8w  d   TMRp\        V RV 2,          4      pVP                  WaR	7      ;_uu_ 4       pVP                  4       P                  R
R7      pVP                  VP                  R4      4       RRR4       \         P"                  ! V\         P$                  ! 4       R7      p	VP'                  V	4      p
V
P)                  V4      '       g   Q hR#   + '       g   i     Lg; i)z support is not builtr\   rE   rw   r]   rF   gzipgzz	test.csv.r  Fr  rq  Nr  r  r{  )r   Codecis_availabler  skiprB   r   r|   rd   r   r`   rh   r  r  writer  r   rV   r-  r   r  )r  r  r   r   r  suffixrr   rY  csv_strrV   rF  s   &&&        r   test_csv_format_compressedr    s*    ==%%k22{m#89:HHc288IG<288LyAC DE##%J'61[tFw9VH--.D		&	&t	&	E	E //#***7

7>>'*+ 
F jjb&6&6&89G$$W-F== 
F	Es   AE88F	c           	         \        V R ,          4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  ! VRR7      pVP                  V4      pVP                  \        P                  ! R\        P                  ! . RO4      /4      4      '       g   Q h\        P                  ! V\        P                  ! \        P                  P                  ^R
7      R7      R7      pVP                  V4      pVP                  \        P                  ! R\        P                  ! RR	.4      /4      4      '       g   Q h\        P                  ! V\        P                  ! \        P                  P                  R.R7      R7      R7      pVP                  V4      pVP                  \        P                  ! R\        P                  ! . RO4      /4      4      '       g   Q hR#   + '       g   i     EL; i)r  wzskipped
col0
foo
bar
Nr.  r  skippedcol0r  r  )r$  r%  rr  )r  r  r  )r  r  r  r  )r`   rO   r  r   rV   r   r  rB   r   r|   r-  r.  r0  )r  r   rr   rY  rV   rF  s   &&    r   test_csv_format_optionsr    s   w#$D	dCD

./ 
jje,G$$W-F==
)RXX&<=>?A A A A jjb&6&6VV''!'4'6 7G$$W-F==6288UEN+C"DEFFFFjjb&6&6VV''eW'='? @G$$W-F==
%"CDEFH H H H 
s   G44H	c                    \        V R ,          4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  ! V\        P
                  ! \        P                  P                  RR7      R7      R7      pVP                  V4      p. ROpVP                  V8X  g   Q hVP                  \        P                  ! R\        P                  ! ^.4      R	\        P                  ! R.4      R
\        P                  ! R.4      R\        P                  ! ^.4      /4      4      '       g   Q hR#   + '       g   i     EL; i)r  r  z1,a,true,1
NT)autogenerate_column_namesr%  r  f0r$  r  r   r\   )r  r$  r  r   )r`   rO   r  r   rV   r-  rB   r.  r0  r   rr  r  r   r|   )r  r   rr   rY  rV   rF  expected_column_namess   &&     r   (test_csv_format_options_generate_columnsr    s   w#$D	dCD

>" 
 jjb&6&6VV''$'G'I JG$$W-F4"7777==41##'3%#'4&)9#'1##8 9 : : : : 
s   D??E	c           	         \        V R ,          4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  ! VRR7      p\
        P                  P                  R.RR7      p\        P                  ! V\        P                  P                  RR	7      R
7      pVP                  WFR7      pVP                  \        P                  ! R\        P                  ! . RO4      /4      4      '       g   Q h\        P                  ! VR7      p\        P                  ! W(R7      pVP                  V4      pVP                  \        P                  ! R\        P                  ! . RO4      /4      4      '       g   Q h\        P                  ! 4       pVP                  WFR7      pVP                  \        P                  ! R\        P                  ! . RO4      /4      4      '       g   Q hR#   + '       g   i     EL; i)r  r  zcol0
foo
spam
MYNULL
Nr.  r  MYNULLT)null_valuesr9  r<  )r;  r  )fragment_scan_optionsr  r:  r>  )r  spamN)r  r  r  )r`   rO   r  r   rV   r   r.  r@  r?  rB   r0  r   r  r   r|   r-  )	r  r   rr   rY  rV   r;  r   rF  r  s	   &&       r   test_csv_fragment_optionsr    s   w#$D	dCD

./ 
jje,Gkk00hZEI 1 KO'''VV''5'9;G $$W$LF==62884I+J"KLMMMM!!/BJjj1G$$W-F==62884I+J"KLMMMM'')G$$W$LF==
&"((#<=>?A A A A% 
s   G::H	c           
         \         P                  ! R \         P                  ! . RORR7      R\         P                  ! . RORR7      /4      p\        V R,          4      pVP	                  4       P                  RR7      ^R P                  RR	4      p\        VR
4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! V\        P                  ! 4       R7      pVP                  V4      pVP                  V4      '       g   Q h\        V4       \        P                  ! VRR7      pVP                  V4      pVP                  V4      '       g   Q hR#   + '       g   i     L; i)r\   rE   rw   r]   rF   	test.jsonrecordsorient},{}
{r  Nr  r2  r  r{  rZ  )rB   r   r|   r`   r  to_jsonreplacerO   r  r   rV   r1  r   r  rY   r  r   r   rr   rs   r  rV   rF  s   &&      r   test_json_formatr    s   HHc288IG<288LyAC DE w$%D
//

#
#9
#
5a
;
C
CE6
RC	dCA	 
 jjb&7&7&9:G$$W-F==/8jjf-G$$W-F== 
s   $E""E2	c                    \         P                  ! R \         P                  ! . RORR7      R\         P                  ! . RORR7      /4      p\        V R,          4      pVP	                  4       P                  RR7      ^R P                  RR	4      p\        VR
4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V\        P                  ! \         P                  P!                  ^R7      R7      R7      pRRR4       \        P                  ! V\        P                  ! \         P                  P!                  ^@R7      R7      R7      pVP#                  V4      pVP%                  V4      '       g   Q hR#   + '       g   i     L; i  + '       g   i     L; ir\   rE   rw   r]   rF   r  r  r  r  r  r  Nztry to increase block sizer	  r<  r%  r  r  r{  rZ  )rB   r   r|   r`   r  r  r  rO   r  r  r  r[  r   rV   r1  r2  r0  r   r  r  s   &&      r   test_json_format_optionsr    sM   HHc288IG<288LyAC DE w$%D
//

#
#9
#
5a
;
C
CE6
RC	dCA	 
 
z9
; 
;**T"*;*;,,,:+< =
;
 jjb&7&7WW((B(7'9 :G$$W-F== 

; 
;s   $F-"AG -F=	 G	c           
          \         P                  ! R \         P                  ! . RORR7      R\         P                  ! . RORR7      /4      p\        V R,          4      pVP	                  4       P                  RR7      ^R P                  RR	4      p\        VR
4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! \         P                  P                  ^R7      R7      p\        P                   ! V\        P"                  ! V4      R7      pRRR4       \        P                  ! \         P                  P                  ^@R7      R7      p\        P                   ! V\        P"                  ! V4      R7      pVP%                  V4      pVP'                  V4      '       g   Q hR#   + '       g   i     EL,; i  + '       g   i     L; ir  )rB   r   r|   r`   r  r  r  rO   r  r  r  r[  r   rA  r2  r0  rV   r1  r   r  )	r  r   r   rr   rs   r  r   rV   rF  s	   &&       r   test_json_fragment_optionsr  .  sk   HHc288IG<288LyAC DE w$%D
//

#
#9
#
5a
;
C
CE6
RC	dCA	 
 
z9
; 
;,,,,,:<**T"*;*;G*DE	
; ((WW((B(79Gjjb&7&7&@AG$$W-F== 

; 
;s   $G"A"G-G*	-G=	c                    \        V R ,          4      pR EF,  w  r4\        VR4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3.4      p\        P                  ! RR.RR./VR7      p\        P                  P                  VR7      p\        P                  ! VR	7      p	\        P                  ! W)R
7      p
V
P                  P                  V4      '       g   Q hV
P                  4       P                  V4      '       d   EK-  Q h	  R#   + '       g   i     EL; i)r  wbNr\   r]   un
   éléphantrc   encodingr%  r  ))latin-1s   a,b
un,lphant)utf16s    a , b 
 u n ,  l  p h a n t )r`   rO   r  rB   r@   rG   r   r.  r0  r   r-  rV   r  r   )r  r   rr   r  
input_rowsrY  rS  rT  r  r  dataset_transcodeds   &&         r   test_encodingr  E  s   w#$D! $JJz"  ))c299;%7#ryy{9K$LM3#&#8@OQ vv))8)<&&LAZZA!((//@@@@!**,33NCCCC%! s   EEc                    \        V R ,          4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3.4      p\        P                  ! RR.RR./VR7      p\        P                  ! VR	VR
7      p\        P                  ! \        P                  P                  RR7      ;_uu_ 4        VP                  V4       RRR4       \        P                  P!                  RR7      p\        P"                  ! VR7      p\        P                  ! W(R7      p	V	P                  P%                  V4      '       g   Q hV	P                  4       P%                  V4      '       g   Q hR#   + '       g   i     ELv; i  + '       g   i     L; i)r  r  s   ,b
un,lphantN   ér]   r  r  rc   r.  r  zinvalid UTF8r	  r  r  r%  r  )r`   rO   r  rB   r@   rG   r   r   rV   r  r  r   ra  rl  r   r.  r0  r-  r  )
r  r   rr   rY  rS  rT  rV   r  r  r  s
   &&        r   test_column_names_encodingr  ^  sO   w#$D	dD		T

/0 
 ii$		!4sBIIK6H IJOXXtdV"\N4<KMN jjeODG	w{{//~	F	F( 
G 66%%y%9L""=KD=$$++O<<<<&&(//????% 
		 
G	Fs   F&2F:&F7	:G
	c           
         ^ RI Hp \        P                  ! R\        P                  ! . RORR7      R\        P                  ! . RORR7      /4      pV R,          pVP                  4        V! V\        VR,          4      4       \        P                  ! V\        P                  ! 4       R	7      pVP                  V4      pVP                  V4      '       g   Q h\        V4       \        P                  ! VR
R	7      pVP                  V4      pVP                  V4      '       g   Q hVP                  VRR.R7      pVP                  RR.8X  g   Q hVP                  VRR.R7      pVP                  RR.8X  g   Q hV! V\        VR,          4      ^R7       \        P                  ! \         4      ;_uu_ 4        VP                  \        P                  ! VR
R	7      4       RRR4       R#   + '       g   i     R# ; i)r   )r0  r\   r}   rw   r]   rF   feather_datasetr,  r  r-  r#   zdata1.featherversionNr  r{  )pyarrow.featherr0  rB   r   r|   r  r`   r   rV   r%  r   r  rY   rr  r  r  r[  )r  r   r0  r   ry  rV   rF  s   &&     r   test_feather_formatr  v  s   -HHc288IF;288LyAC DE ))GMMO%W~567jj)9)9);<G$$W-F==/8jj3G$$W-F== $$WsCj$AF3*,,,$$WsCj$AF3*,,, %W67C	z	"	"

79 EF 
#	"	"	"s   6(G((G9	c           
         \         P                  ! R \         P                  ! ^ .R,          RR7      R\         P                  ! . RO^d,          RR7      /4      p\         P                  P	                  V4      '       g   \
        P                  ! 4        V R,          pVP                  4        \        P                  ! 4       pV R,          pVP                  4        \        P                  ! V\        VR,          4      VVP                  R	R
7      R7       VR8X  d   \
        P                  ! \        RR7      ;_uu_ 4        VP                  VR
7      pR	R	R	4       \
        P                  ! \        RR7      ;_uu_ 4        \         P                  ! V4      pVP                  VR
7      pR	R	R	4       R	# VP                  VR
7      p\        P                  ! V\        VR,          4      VVR7       \        P                  ! V\        P                  ! 4       R7      p	VP!                  V	4      p
V
P#                  V4      '       g   Q hVR,          R,          pVP%                  4       P&                  pVR,          R,          pVP%                  4       P&                  pW8  g   Q hR	#   + '       g   i     ELW; i  + '       g   i     R	# ; i)r\   ,  r}   rw   r]   rF   feather_dataset_compressedfeather_dataset_uncompressedz
data.arrowNr  r   file_optionsbrotlizCompression typer	  r  part-0.arrowr{  )rB   r   r|   r  r  r  r  r  r   r%  r  r`   r  r  r[  rV   r   r  statst_size)r  r  r   r   ry  r  uncompressed_basedirwrite_optionscodecrV   rF  compressed_filecompressed_sizeuncompressed_fileuncompressed_sizes   &&&            r   test_feather_format_compressedr    s/    HHc288QCG&9288L$49EG HE88  --44GMMO""$K"%CC  </0 333E	 h]]:-?@@'::' ; )M A ]]:-?@@HH[)E'::u:MM A 	22{2KMGl"#"	 jj)9)9);<G$$W-F==,~=O%**,44O,|;nL)..088...1 A@@ A@ 	s   >J=)J3J0	3K	c                   . p\        ^4       Fs  p\        P                  ! RV.^
,          R\        ^
4       Uu. uF  p\        P                  ! 4       NK  	  up/4      p\        P
                  ! V\        V 4      VR7       Ku  	  \        V R,          4      p\        P                  ! XP                  VVR7       WT3# u upi )zG
Creates a simple (flat files, no nested partitioning) Parquet dataset
r$  r  metadata_collector	_metadata)	r2   rB   r   r  rm   r  r`   write_metadatar@   )	root_pathr  r=   r  r   metadata_paths   &     r   _create_parquet_dataset_simpler    s    
 1X$b$%PR)0T)Q)0TUV
3y>6H	
  	K/0Mm-  1Us   B=c                 6   V R ,          p\        V4      w  r#\        P                  ! V4      pVP                  P	                  VP                  4      '       g   Q h\        VP                  4      ^8X  g   Q hVP                  4       pVP                  ^(8X  g   Q hR# )r  N)	r  r   parquet_datasetr@   r  r   r  r   r   )r  r  r  r   rV   rF  s   &     r   test_parquet_dataset_factoryr    s     00I9)DM  /G>>  ....w}}"""F??b   r   win32z'Results in FileNotFoundError on Windows)reasonc                    \         P                  ! R 4      pV R,          p\        V4      w  r4VP                  R4      p\        P
                  ! \        P                  ! V4      4      p\        P                  ! W6R7      pVP                  P                  VP                  4      '       g   Q h\        VP                  4      ^8X  g   Q hVP                  4       pVP                  ^(8X  g   Q hR# )rI  r  rJ  r  N)r  r7  r  r  rd   r   r3  r   r  r@   r  r   r  r   r   )	r  rI  r  r  r   rO  r  rV   rF  s	   &        r   #test_parquet_dataset_factory_fsspecr     s       *F 00I9)DM !!&)I !1!1)!<=J  FG>>  ....w}}"""F??b   r   c                    V R ,          p\         P                  ! R^ .^
,          R\        P                  P	                  ^
4      /4      p. p\
        P                  ! V\        V4      VR7       \        VR,          4      p\
        P                  ! VP                  VVR7       \        P                  ! V4      pVP                  P                  VP                  4      '       g   Q hVP                  4       pVP                  ^
8X  g   Q hR# )r  r$  r  r  r  N)rB   r   rn  r  randnrm   r  r`   r  r@   r   r  r  r   r   )r  r  r   r  r  rV   rF  s   &      r   &test_parquet_dataset_factory_roundtripr    s     00IHHdQC"HdBIIOOB,?@AEs9~2D 	K/0Mm-   /G>>  ....F??b   r   c                 R   . p\        ^
4       F  p\        P                  ! R\        \        V^
,          V^,           ^
,          4      4      /4      pW R2,          p\        P
                  ! W4VR7       VR,          P                  V R24       K  	  \        V R,          4      p\        P                  ! XP                  WQ4       \        P                  ! V4      pVP                  4       pVP                  R4      P                  4       pV\        \        ^ ^d4      4      8X  g   Q hR# )rv  r$  r[   r  r  NrZ  )r2   rB   r   ri   rm   rn   set_file_pathr`   r  r@   r   r  r   r:  rs  )	r  	metadatasr=   r   
table_pathr  rV   scanned_tablescanned_cols	   &        r   "test_parquet_dataset_factory_orderr
     s     I 2Y4adQqS"H-./1H~-

uYG"##qcN3  +-.MellM=  /G$$&M&&t,668K$uQ}----r   c                    V R ,          p\        V4      w  r#\        VP                  R4      4      ^ ,          P                  4        \        P
                  ! V4      pVP                  P                  VP                  4      '       g   Q h\        VP                  4      ^8X  g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)test_parquet_dataset_invalid	*.parquetN)r  ri   globunlinkr   r  r@   r  r   r  r  r  r&  r   )r  r  r  r   rV   s   &    r   $test_parquet_dataset_factory_invalidr  6  s     88I9)DM	$%a(//1  /G>>  ....w}}"""	(	)	) 
*	)	)	)s   C""C3	c                    \        \        V P                  R 4      4      4      p\        P                  ! V^ ,          4      P
                  P                  4       p. pV F]  p\        P                  ! V4      P                  pVP                  \        VP                  V 4      4      4       VP                  V4       K_  	  V R,          p\        P                  ! W&VR7       V# )r  r  r  )ri   r@  rglobrm   r  r@   to_arrow_schemar  r  r`   r  r3   r  )r  parquet_pathsr@   r  rr   r  r  s   &      r   _create_metadata_filer  D  s    	 <=>M^^M!,-44DDFF>>$'00s4#3#3I#>?@!!(+ 
 +M2D r   c           
         \         P                  ! \         P                  ! \        ^4      4      \         P                  ! \        P
                  P                  ^4      4      \         P                  ! \        P                  ! RR.^
4      4      .. ROR7      pVP                  RR/4      p\        P                  ! V\        V 4      R.R7       \        V 4      V3# )	   r\   r]   r   r  r   r,   r  r  )rB   r   r|   r2   rn  r  r  rm  rJ   rm   r  r`   r  )r  r   s   & r   #_create_parquet_dataset_partitionedr  V  s    HH
rRXXbiioob&9:
C:r*+- #E
 ))5'*:;Es9~vhG +U22r   c                 "   V R ,          p\        V4      w  r#\        P                  ! RR7      p\        P                  ! W$R7      pVP                  P                  VP                  4      '       g   Q h\        VP                  4      ^8X  g   Q hVP                  4       pVP                  ^8X  g   Q hVP                  4       P                  R4      P                  RR7      pVP                  4       p\        P                  P                  Wg4       R# )(test_parquet_dataset_factory_partitionedr   r  r  r$  TdropN)r  r   r   r  r@   r  r   r  r   r   r  sort_valuesreset_indexr6   testingassert_frame_equal)r  r  r  r   r   rV   rF  r  s   &       r   r  r  a  s     DDI>yIM??&1L  JG>>  ....w}}"""F??b    ++D1==4=HF HJJ!!&3r   c                 p   V R ,          p\        V4      w  r#\        P                  ! VRR7      pVP                  P	                  VP                  4      '       g   Q hRVP                  P
                  9   g   Q h\        VP                  4       4      pRV^ ,          P                  P
                  9   g   Q hR# )%test_parquet_dataset_factory_metadatar   r     keyN)	r  r   r  r@   r  r  ri   rN   r  )r  r  r  r   rV   r  s   &     r   r"  r"  u  s     AAI>yIM  VDG>>  ....W^^,,,,,W**,-IYq\11:::::r   c           	         Vw  r#V R ,          p\        V4      w  rVV! V.4      ;_uu_ 4        \        P                  ! V\        P                  ! RR7      VR7      pRRR4       V! . 4      ;_uu_ 4        \	        XP                  4       4      pRRR4       V! . 4      ;_uu_ 4        \	        XP                  \        P                  ! R4      ^8  4      4       RRR4       V! . 4      ;_uu_ 4        X^ ,          P                  \        P                  ! R4      ^8  4       RRR4       V! . 4      ;_uu_ 4        X^ ,          P                  4       p	V	^ ,          P                  4        RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)#test_parquet_dataset_lazy_filteringr   r  )r   r  Nr$  )	r  r   r  r   ri   rN   rC   r  r  )
r  r   rd   r   r  r  r  rV   r  rg_fragmentss
   &&        r   r%  r%    sN    'B
 ??I5i@M 
}o	&	&$$7 
' 
b		..01	 
 
b		W""288D>B#678 
 
b		!''(;< 
 
b		 |668Q002 
	' 
'	&	& 
	 
	 
	 
		s;   /E03F%2F/0F*7/F=0F	F	F'	*F:	=G	c                 h   \         P                  ! R . RO/4      pV R,          pVP                  V4       \        P                  ! V4      pVP                  V4      P                  pVP                  VR .R7      P                  pRVP                  9   g   Q hVP                  VRR7      '       g   Q hR# )r\   r  r#   s   pandasTrG  Nr  )	r6   r7   r  r   rV   r   r@   r  r  )r  r   rK   rr   rV   r@   rn  s   &&     r   test_dataset_schema_metadatar(    s     
sI&	'B^#DMM$jjG$$W-44F%..w.FMM '''==)$=????r   c                 J   \         P                  ! R \         P                  ! . R
ORR7      /4      p\        P                  ! V\        V R,          4      4       \         P                  ! R \         P                  ! 4       3.4      p\        P                  ! V R,          RVR7      pVP                  V\        P                  ! R 4      ^8  R7      pVR ,          P                  VR ,          P                  R4      P                  ^4      4      '       g   Q h\        VP!                  4       4      ^ ,          pVP                  V\        P                  ! R 4      ^8  VR7      pVR ,          P                  VR ,          P                  R4      P                  ^4      4      '       g   Q hR	# )r  r   rw   r?  r   r  r  rE   r  Nr%  )rB   r   r|   rm   rn   r`   r@   rE   r   rV   r   rC   r  r  r  ri   rN   )r  r   r   r@   rV   filteredrW   s   &&     r   test_filter_mismatching_schemar+    sB    HHeRXXlABCENN5#g678 YY
+,-Fjj. 6CG
 &&wrxx7J&KHE?!!%,"3"3G"<"B"B1"EFFFFG))+,Q/H&&%1,V ' =HE?!!%,"3"3G"<"B"B1"EFFFFr   c           
         \         P                  ! R RP                  4       R\        \	        ^4      4      /4      p\        V R,          4      p\        P                  ! W#R .R7       \        P                  ! VRR7      pVP                  V4      pVP                  VR .R7      pVP                  R 4      P                  VP                  R 4      4      '       g   Q hR# )	r   za a b br  rH  r  r   r  r#   N)rB   r   rM  ri   r2   r`   rm   r  r   rV   r   r:  r  )r  r   r   rr   rV   all_cols	part_onlys   &&     r   +test_dataset_project_only_partition_columnsr/    s     HHfioo/U1XGHEw'(DVH=jjF3G&&w/H''&'BI??6")))*:*:6*BCCCCr   c           	         \         P                  ! R \        P                  ! . R	ORR7      /4      pV R,          pVP	                  VRR7       \
        P                  ! VR\        P                  ! R \        P                  ! 4       3.4      R7      p\        P                  ! R \        P                  ! . R	O\        P                  ! 4       4      /4      pVP                  V4      P                  V4      '       g   Q hR# )
r  Nobjectdtypez(test_dataset_project_null_column.parquetr   r  r   r  r|  )r6   r7   rn  r|   r  r   rV   rB   r@   rE   r   r   r  )r  r   rK   r  rV   r  s   &&    r    test_dataset_project_null_columnr4    s     
ubhh'9JK	LB<<AMM!IM&jj9 "		E288:+>*? @BGxx);RXXZ HIJH""7+228<<<<r   c                    ^ RI Hp \        P                  ! R. ROR. ROR. RO/4      pVP	                  W0R,          4       \
        P                  ! V R,          RR7      pVP                  VR	\
        P                  ! R4      R
\
        P                  ! R4      P                  RRR7      R\
        P                  ! R4      R8H  /R7      p\        P                  ! R	. ROR
\        P                  ! . RORR7      R. RO/4      pVP                  V4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  VRR/R7       RRR4       R#   + '       g   i     R# ; i)r   r-  r  r  r_  r\   r,  r-  r  	A_renamedB_as_intr   FsafeC_is_ar#   rw   zExpected an Expressionr	  Nr  )r)  r5  r6  rr  )TFF)r   r-  rB   r   r0  r   rV   r   rC   r  r|   r  r  r  r  )r  r   r-  r   rV   rF  r  s   &&     r   test_dataset_project_columnsr<    s    HHc9c<oNOE%>!9:jj>1)DG$$WRXXc]BHHSM&&wU&;"((3-3&7$ F
 xxYBHHYW5& H
 =="""" 
y(@	A	A#s< 
B	A	A	As   >EE/	c                 Z	   \        V 4      w  r\        P                  ! V4      p\        VP                  \        P
                  4      '       g   Q h\        V 4      w  rB\        P                  ! V4      p\        VP                  \        P
                  4      '       g   Q h\        P                  ! VR R7      pVP                  pVf   Q h\        V\        P                  4      '       g   Q hVP                  \        P                  ! R\        P                  ! 4       3.4      8X  g   Q h\        VP                  4      ^8X  g   Q hVP                  ^ ,          \        P                  ! . RO\        P                  ! 4       4      8X  g   Q h\        P                  ! \        P                  ! R\        P                  ! 4       3.4      R R7      p\        V\        P                  4      '       g   Q h\        VP                  4      ^8X  g   Q h\        ;QJ d&    R VP                   4       F  '       d   K   RM	  RM! R VP                   4       4      '       g   Q h\        P                  ! W%R7      pVP                  p\        V\        P                  4      '       g   Q hVP                  \        P                  ! R\        P                  ! 4       3.4      8X  g   Q h\        VP                  4      ^8X  g   Q h\        ;QJ d&    R VP                   4       F  '       d   K   RM	  RM! R VP                   4       4      '       g   Q h\        P                  ! VR R7      p\        P                  ! \!        VP#                  4       4      VP                  VP$                  VP&                  R	7      pVP                  e   Q hV R
,          p\)        V4      w  r\        P*                  ! VR R7      pVP                  pVf   Q h\        V\        P                  4      '       g   Q hVP                  \        P                  ! R\        P,                  ! 4       3.4      8X  g   Q h\        VP                  4      ^8X  g   Q h\/        VP                  ^ ,          P1                  4       4      RR08X  g   Q hR# )r   r  Nr   r  c              3   (   "   T F  qR J x  K
  	  R # 5ir   r   r  s   & r   r  6test_dataset_preserved_partitioning.<locals>.<genexpr>+       4"3QDy"3r  FTc              3   (   "   T F  qR J x  K
  	  R # 5ir   r   r  s   & r   r  r?  2  r@  r  r  zdata-partitioned-metadatar\   r]   )r   r/  r0  )r/  r   rV   rP   r   r   r  r  r@   rB   r   r   r  r|   r  r  ri   rN   r   r  r  r  rG   r   rs  )	r  r  rr   rV   r  r   r  r  r  s	   &        r   #test_dataset_preserved_partitioningrB    s    "'*GAjjGg**B,D,DEEEE 37;JjjGg**B,D,DEEEE jjF3GDdB//0000;;"))fbhhj%9$:;;;;t  !Q&&&Q288Irxxz#BBBB ??299vrxxz&:%;<VLDdB//0000t  !Q&&&34$"3"343334$"3"344444jj1GDdB//0000;;"))fbhhj%9$:;;;;t  !Q&&&34$"3"343334$"3"344444 jjF3G##W""$%gnn~~'*<*<H   ((( 55I:9EM  VDGDdB//0000;;"))fbiik%:$;<<<<t  !Q&&& t  #--/0S#J>>>r   c                 
   \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! \         P
                  ! 4       \         P                  ! 4       4      4      .4      p\         P                  ! R. ROR \        \        ^4      4      /VR7      p\        V R,          4      p\        P                  ! W#R.R7       \        P                  ! V R,          4      pVP                  R4      P                  4       VP                  R4      P                  4       8X  g   Q hVP                  R 4      P!                  VP                  R 4      4      '       g   Q hR# )r  r   Nrc   rH  r  )NNr\   r\   )rB   r@   rC   rE   ry   r   rG   r   ri   r2   r`   rm   r  rp  r:  rs  r  )r  r@   r   rr   actual_tables   &    r   +test_write_to_dataset_given_null_just_worksrE  J  s    YY

#
rxxz299;?@ F HHf4T%(^-5;=E w'(DVH===>!9:L v&00 	f		'	'	)* * *u%,,U\\%-@AAAAr   c                 ~    ^ RI Hp VP                  ! WP                  ! VR3.4      R7      pVP                  ! W4      # )r   N	ascending)r   )pyarrow.computecomputesort_indicesSortOptionsr   )tabsort_colr  sorted_indicess   &&  r   _sort_tablerO  _  s7     __^^h%<$=>@N773''r   c                    T;'       g    Tp\         P                  ! WR VRR7       \        VP                  R4      4      p\	        V4      \	        V4      8X  g   Q h\         P
                  ! VR VR7      p\        VP                  4       V4      P                  \        V P                  4       V4      4      '       g   Q hR# )r  Fr   r   r   *r  N)	r   r  ri   r  r   rV   rO  r   r  )rV   r  expected_filesrM  base_dir_pathr   
file_pathsr  s   &&&&&&  r   _check_dataset_roundtriprV  f  s    !--XMWw".EC m))#./Jz?c.1111 zzgLBH x((*H5<<G$$&13 3 3 3r   c           	      ~   V R ,          pVP                  4        \        V4      p\        P                  ! V4      pV R,          pVR,          .p\	        V\        V4      VRV4       V R,          pVR,          .p\	        W4VRV4       V R,          pVR,          .p\        V 4      ;_uu_ 4        \	        VRVRV4       RRR4       V R,          pVP                  4        \        V4      p\        P                  ! V4      pV R	,          pVR,          .p\	        V\        V4      VRV4       R#   + '       g   i     Lw; i)
r  zsingle-file-targetr  r\   zsingle-file-target2zsingle-file-target3z./single-file-target3Nr  zsingle-directory-target)r  r/  r   rV   rV  r`   r
   r  )r  rq   r  rV   targetrS  s   &     r   test_write_datasetrY  y  s)    -'IOOI&Ajj#G ++F~-.NWc&k>3O ,,F~-.NWnc6J ,,F~-.N	G		 ,nc6	K 

 ,,IOO"9-Ajj#G00F~-.NWc&k>3O 
	s   -D,,D<	c           	         V R ,          p\        V4      p\        P                  ! RR7      p\        P                  ! WR7      pV R,          pVR,          VR,          R,          VR,          VR,          R,          .p\        P                  ! \        P
                  ! R\        P                  ! 4       3.4      RR7      p\        V\        V4      VR	VVR7       V R
,          pVR,          VR,          R,          VR,          VR,          R,          .p\        P                  ! \        P
                  ! R\        P                  ! 4       3.4      4      p\        V\        V4      VR	VVR7       R# )partitionedr   r  r  zpartitioned-hive-targetpart=ar  part=br   r$  partitioned-dir-targetr\   r]   N)	r  r   r   rV   rB   r@   rG   rV  r`   )r  rq   r  r   rV   rX  expected_pathsr  s   &       r   test_write_dataset_partitionedr`    s4    -'I+I6A??&1Ljj>G 00F6H,~=6H,~=N //
		FBIIK()*6;VndF(*
 //Ffsl^3fsl^3N //
		FBIIK()*,VndF(*r   c                    \         P                  ! R . ROR. RO/4      p\        P                  ! WRR.R7       \        P                  ! V RR.R7      pVP
                  pV Uu0 uF;  p\        \        P                  ! V4      P                  V 4      P                  4      kK=  	  ppV0 Rm8X  g   Q hVP                  4       pVP                  V4      '       g   Q hR# u upi )r\   Nr]   r  r  rd  rf  >   r  re  r  rB   r   r   r  rV   r  r`   r  r  r  r  r   r  r  r   r  r  r  partitioning_dirsr  s   &      r   #test_write_dataset_with_field_namesre    s    HHc+S/BCEUE#&%) 

75uEIOOEBGBGQGLLO''0778%   ///((*O!!%((((   #ACc                    \         P                  ! R . ROR. RO/4      p\        P                  ! WRR.RR7       \        P                  ! V RRR7      pVP
                  pV Uu0 uF;  p\        \        P                  ! V4      P                  V 4      P                  4      kK=  	  ppV0 R	m8X  g   Q hVP                  4       pVP                  V4      '       g   Q hR# u upi )
r\   Nr]   r  r   )r   r   partitioning_flavorr  rd  rf  >   b=xb=yb=zrb  rc  s   &      r   (test_write_dataset_with_field_names_hiverl    s    HHc+S/BCEUE#&%VE 

75vFIOOEBGBGQGLLO''0778%    5555((*O!!%((((rf  c           	      P   \         P                  ! R . ROR. ROR. R	O/4      p\        P                  ! WRR.R7       \        P                  ! V RR.R7      p\
        P                  ! 4       ;_uu_ 4       p\        P                  ! VP                  RR.R7      VRR.R7       \        P                  ! VRR.R7      pVP                  4       p\        VP                  4       4      VP                  R 4      P                  4       8X  g   Q h RRR4       R#   + '       g   i     R# ; i)
r\   Nr]   r{   r  r  r#   rd  rf  r  )rB   r   r   r  rV   r  r  r   r   r  r?  drop_columnsr  r   rV   tempdir2r  r  s   &     r   test_write_dataset_with_scannerrq    s    HHc+S/9& 'E UE#&%) jjcUCG		$	$	&	&(
#s<!%se	E JJxSEJ	#,,.O--/ ++C0::<= 	= = 
'	&	&	&s   4BDD%	c           	        a a	a
aaaaaa \         P                  ! 4       o ! V3R  lR\        4      p\        P                  ! V! \        P
                  ! 4       4      4      o\        P                  ! \        P                  ! R\        P                  ! 4       4      .4      p\        P                  ! \        P                  ! \        \        R4      4      4      .VR7      o	^ o
^ p^oRoV	V
VV3R lp\        P                  P!                  V! 4       VRR7      o\         P"                  ! VVV 3R lR	7      pVP%                  4         \&        P&                  ! 4       oV3R
 lp^ pRpV! 4       ^
8  d,   S
V8  d   S
V8X  d   RpMS
p\&        P(                  ! R4       K7  V'       g   Q h RoSP+                  4        VP-                  4        R#   RoSP+                  4        TP-                  4        i ; i)c                   .   <a  ] tR tRt o V3R ltRtV tR# )6test_write_dataset_with_backpressure.<locals>.GatingFsi  c                \   < SP                  4        V P                  P                  WR 7      # )r  )waitr   rh   )r   rr   r  consumer_gates   &&&r   rh   Itest_write_dataset_with_backpressure.<locals>.GatingFs.open_output_stream  s'     88..t.GGr   r   N)r   r   r   r   rh   r   r   )r    rx  s   @r   GatingFsrt    s     	H 	Hr   rz  r<   r  rc   Tc               3   |   <"   SS8  d0   S'       g   R # \         P                  ! R4       S^,          oS x  K6  R # 5i)Ng{Gz?)r  sleep)ru   batches_readend
keep_goings   r   counting_generator@test_write_dataset_with_backpressure.<locals>.counting_generator  s4     S JJtALK !s   <)<r  c                  J   < \         P                  ! S\        S4      R S R7      # )r   r,  )r   r  r`   )	gating_fsr   r  s   r   r5  6test_write_dataset_with_backpressure.<locals>.<lambda>  s    r''S\)	Kr   )rX  c                  <   < \         P                   ! 4       S ,
          # r   )r  )starts   r   duration6test_write_dataset_with_backpressure.<locals>.duration  s    99;&&r   Fr  N)	threadingEventr   rd   r   r   rB   r@   rC   r   rk   r|   ri   r2   r   rk  rl   Threadr  r  r|  r   r  )r  rz  r@   min_backpressurer  write_threadr  
last_valuebackpressure_probably_hitru   r}  rx  r~  r  r  r   r  s   f        @@@@@@@@r   $test_write_dataset_with_backpressurer    s    OO%M
H< H
 ););)= >?IYY456F OORXXd5+;&<=>vNEL
CJ  jj%%V & ?G ##KLL !			' 
$)!j2o..:-04-)
JJsO(((
 
 
s   AG	 "G	 	$G-c           	         \         P                  ! R . ROR. RO/4      p\        P                  ! WRR .R7       \        P                  ! V RR .R7      p\
        P                  ! 4       ;_uu_ 4       p\        P                  ! W#RR .R7       \        P                  ! VRR .R7      pVP                  4       p\        VP                  4       4      VP                  4       8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r]   r{   r  r  Nrf  r  )
rB   r   r   r  rV   r  r  r   r  r?  ro  s   &     r   test_write_dataset_with_datasetr  @  s    HHc?C;<EUE#&%) jjcUCG		$	$	&	&(
 %SE	; JJxSEJ	#,,.O--/0EOO4EEEE 
'	&	&	&s   0A3C..C?	c           	         V R ,          p\         P                  ! R. ROR. RO/4      p\        P                  ! \         P                  ! \         P
                  ! R\         P                  ! 4       4      .4      RR7      pR p\        P                  ! W!VRR7       \         P                  ! R. ROR. RO/4      p\        P                  ! \         P                  4      ;_uu_ 4        \        P                  ! W!VRR7       RRR4       \         P                  ! RR	./4      pVR
,          R,          p\        P                  P                  WV4       \        P                  ! W!VRRR7       \         P                  ! R. ROR. RO/4      p\        P                  ! V RVR7      P                  4       pV! W4       VP!                  4       '       g   Q h\        P                  ! W!VRRR7       \         P                  ! R. ROR. RO/4      p\        P                  ! V RVR7      P                  4       pV! W4       VP!                  4       '       d   Q hR#   + '       g   i     ELY; i)r   r]   r{   r   )r@   r  c                     V P                  4       P                  R 4      P                  RR7      pVP                  4       P                  R 4      P                  RR7      pVP                  V4      '       g   Q hR# )r]   Tr  N)r  r  r  r  )r  r  df1df2s   &&  r   compare_tables_ignoring_orderGtest_write_dataset_existing_data.<locals>.compare_tables_ignoring_orderX  s\    lln((-99t9Dlln((-99t9Dzz#r   r  r  Nezc=2z	foo.arrowoverwrite_or_ignore)r   r   existing_data_behaviorr  delete_matchingrf  r  rr  r  )r  r  r\   r]   r{   )r0  r/  r0  r1  r2  )r  r\   r]   r{   r%  )rB   r   r   r   r@   rC   rE   r  r  r  rl  r   r-  r0  rV   r   exists)	r  rq   r   r   r  extra_table
extra_fileoverwrittenreadbacks	   &        r    test_write_dataset_existing_datar  Q  s   $IHHc?C;<E??"))	#rxxz	"#+%-35L ULOHHc?C;<E 
r	'	'
&25	B 
( ((C#<(KU"[0JOO!!+: UL!,AC ((	'o>@Kzz'%'355=XZ !(8 UL!:KM ((C!5sLIJKzz'%'355=XZ !(8  """""9 
(	'	's   #II	c                 j    \        V 4       Uu. uF  p\        P                  ! W4      NK  	  up# u upi r   )r2   r  randint)r`  r  r  r  s   &&& r   _generate_random_int_arrayr    s'    .3Dk:kFNN3$k:::s   0c           	          . p. p\        V 4       FA  pVP                  \        V^VR7      4       VP                  R\        V4      ,           4       KC  	  \        P
                  ! W#R7      pV# )r/  )r`  r  r  r{   r<   r  )r2   r3   r  r`   rB   rk   )num_of_columnsnum_of_recordsr<   rr  r=   rk   s   &&    r   _generate_data_and_columnsr    sg    DL>".N343AC 	D 	C#a&L)	 #
 ??ALr   c                 v    \        \        \        P                  ! V 4      P	                  R V 24      4      4      # )z**/*.)r   ri   r  r  r  base_directoryr  s   &&r   _get_num_of_files_generatedr    s-    tGLL055k]6KLMNNr   c                   a V R ,          p^
o^
p^p^#p\        VV4      p\        P                  ! WQRSVR7       \        P                  ! V4      pVS,          ^,           p\        V4      V8X  g   Q h. p\        V4       F_  w  rV\        V
4      ,          p\        P                  ! VRR7      pVP                  VP                  4       P                  ^ ,          4       Ka  	  V\        V4      8X  g   Q hV\        V4      8X  g   Q h\        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   Q hR# )r   r   )r   max_rows_per_filemax_rows_per_groupr  c              3   .   <"   T F
  pVS8*  x  K  	  R # 5ir   r   )r  file_rowcountr  s   & r   r  7test_write_dataset_max_rows_per_file.<locals>.<genexpr>  s      <$:=  11$:s   FTN)r  r   r  ru  rv  r   rf   r`   rV   r3   r   shaper  r  )r  rq   r  r  r  rk   files_in_direxpected_partitionsresult_row_combinationr  f_filef_pathrV   r  s   &            @r   $test_write_dataset_max_rows_per_filer    s@   $INN-n.<>L \Y'8(:< ::i(L ),==A | 3333  |,	S[(**VI6%%g&6&6&8&>&>q&AB - #&<"====S!788883 <$:<333 <$:< < < < <r   c                 @   V R ,          p^p^p^p. ROpV Uu. uF  p\        VV4      NK  	  ppVR,          p\        P                  ! WxVVRR7       \        P                  ! V4      p	\        V	4       F  w  rV\        V4      ,          p\        P                  ! VRR7      pVP                  4       pVP                  4       p\        V4       FD  w  ppVP                  pV\        V4      ^,
          8  d   VV8  d   VV8:  g   Q hK;  VV8:  d   KD  Q h	  K  	  R# u upi )r   min_rows_groupr   )r<   r  min_rows_per_groupr  r   r  N)
r  r  r  r  r  r2  r2  r2  r2  r2  )r  r   r  ru  rv  rf   r`   rV   r   r   r   r   )r  rq   r  r  r  record_sizesr  record_batchesdata_sourcer  r  r  r  rV   r   batchesr  ru   rows_per_batchs   &                  r   %test_write_dataset_min_rows_per_groupr    s/   $IN1L -9:,8. 11?A,8  : ..K.(:(:%'
 ::k*L|,	s6{***VI6  """$"7+IB"^^NCL1$$%);;"&889 98%);;;; , -:s   Dc                    V R ,          p^p^p^p\        VV4      pVR,          p\        P                  ! WVVRR7       \        P                  ! V4      p. pV Fq  p	V\        V	4      ,          p
\        P                  ! V
RR7      pVP                  4       pVP                  4       pV F  pVP                  VP                  4       K   	  Ks  	  V^^.8X  g   Q hR# )r   max_rows_groupr   )r<   r  r  r   r  N)r  r   r  ru  rv  r`   rV   r   r   r3   r   )r  rq   r  r  r  rk   r  r  batched_datar  r  rV   r   r  ru   s   &              r   %test_write_dataset_max_rows_per_groupr    s    $INN-n.<>L ..K,(:%' ::k*LLs6{***VI6  """$E/   B8###r   c           	         V R ,          pRp^pRR.p\         P                  ! . RO. RO.VR7      p\         P                  ! . RO. RO.VR7      p\         P                  ! . RO. RO.VR7      p\         P                  ! . RO. RO.VR7      p\         P                  P                  WVWx.4      p	\        P
                  ! \         P                  ! WC,          \         P                  ! 4       3.4      RR7      p
VR,          p\        P                  ! WWR7       R	 pV! WVV4      w  rW8X  g   Q hVR
,          p^p\        P                  ! WWVRR7       V! WVV4      w  rW8  g   Q hR# )r   r   c1c2r  r   r  default)r<   r  r   r   c                 |    \        WR 7      p\        \        P                  P	                  W,          4      4      pWE3# )r  )r  r   rB   rI  unique)r  rk   r  col_idnum_of_files_generatednumber_of_partitionss   &&&&  r   _get_compare_pair<test_write_dataset_max_open_files.<locals>._get_compare_pair  s7    !<&"A"2::#4#4\5I#JK%;;r   max_1F)r<   r  r   r   max_open_filesr   N)r/  r0  r1  r2  r   rv  )r\   r]   r{   rz   r  r\   )r  r  rU  r  r   r/  )r\   r]   r{   rz   r  r{   )rV  rv  ru  rt  r   r/  )r\   r]   r{   rz   r  rz   )         r^  r   r/  )r\   r]   r{   rz   r  r]   )	rB   rk   rH   rl   r   r   r@   rG   r  )r  rq   r  partition_column_idrr  record_batch_1record_batch_2record_batch_3record_batch_4r   r   data_source_1r  r  r  data_source_2r  s   &                r   !test_write_dataset_max_open_filesr    s   $IK$<L__+>+I+K+79N __+=+I+K+79N __+@+I+K+79N __+A+I+K+79N HH!!>#1#C DE ??
		L5ryy{CDEL 	)M%".D< M;/1 1 "999 'MN%".$2G
 M;/1 1 "888r   c           	         V R ,          p\        V4      p\        P                  ! V\        P                  P	                  RR7      R7      pV R,          pVR,          VR,          R,          VR,          VR,          R,          .p\        P
                  ! \        P                  ! VP                  P                  R4      .4      R\        P                  ! RR.4      /R	7      p\        V\        V4      VR
VVR7       R# )r[  TrD  r  r^  r\   r  r]   r   r  r$  N)r  r   rV   r  r;  r   rB   r@   rC   r|   rV  r`   )r  rq   r  rV   rX  r_  r   s   &      r   #test_write_dataset_partitioned_dictr  A  s     -'I+I6A jj((1141HJG //Ffsl^3fsl^3N ??299V$.& $'bhhSz235L VndF!#r   c           	        a V R ,          p\        V4      p\        P                  ! VRR7      p\        P                  ! \        P
                  ! R\        P                  ! 4       3.4      RR7      pV R,          p. oV3R lp\        P                  ! W5RVRVR	7       VR
,          R,          VR,          R,          0p\        \        \        P                  S4      4      pW8X  g   Q hV R,          p	\        P                  ! W9RVRR7       \        P                  ! VRVR7      p
\        P                  ! V	RVR7      pV
P                  4       P                  VP                  4       4      '       g   Q hR# )r[  r   r  r   r  partitioned1c                 >   < SP                  V P                  4       R # r   )r3   rr   )written_filepaths_writtens   &r   file_visitor4test_write_dataset_use_threads.<locals>.file_visitorh  s    \../r   r-  Tr   r   r   r  r\  part-0.featherr]  partitioned2FrQ  r  N)r  r   rV   r   rB   r@   rG   r  r   rj   r  r  r   r  )r  rq   r  rV   r   target1r  r_  paths_written_settarget2result1result2r  s   &           @r   test_write_dataset_use_threadsr  [  s?    -'I+I6Ajj8G??
		FBIIK()*6;L &GM0 | 	(--(--N Cm<=...&G jjNGjjNG$$W%5%5%78888r   c                 f   \         P                  ! R \        R4      /4      pVP                  ^R7      p\        P
                  ! W RRRR7       \        P                  ! V 4      P                  RR7      R ,          P                  4       pR
pV F   p\        V4      pWd8  g   Q RV 24       hTpK"  	  R	# )r\   r  )max_chunksizer   T)r   r   preserve_orderFr   z!Sequence expected to be ordered: NrZ  )
rB   r   r2   r   r   r  rV   r   to_numpyr  )r  r   r  seqprevitemcurrs   &      r   -test_write_dataset_use_threads_preserve_orderr    s     HHc5;'(EQ/GWi!%d<
**W

&
&5
&
9#
>
G
G
ICD4y{E?uEE{ r   c           	      n  aa \         P                  ! \         P                  ! \        ^4      4      \         P                  ! R \        ^4       4       4      \         P                  ! R.^
,          R.^
,          ,           4      .. ROR7      pV R,          p\        P
                  ! WRRR	7       \        VP                  R
4      4      pVR,          .p\        V4      \        V4      8X  g   Q h\        P                  ! VRR7      P                  4       pVP                  V4      '       g   Q hV R,          pVR,          VR,          R,          VR,          VR,          R,          .p. o. oVV3R lp\        P                  ! \         P                  ! R\         P                  ! 4       3.4      RR7      p\        P
                  ! WRRWvR7       \        VP                  R
4      4      p\        V4      \        V4      8X  g   Q hS Uu. uF"  p\        P                   P#                  V4      NK$  	  p	pSV	8X  g   Q h\        P                  ! VRVR7      pVP                  4       P                  V4      '       g   Q h\%        S4      ^8X  g   Q hS F   p
\&        P(                  ! V
4      V9   d   K   Q h	  R# u upi )r  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  #test_write_table.<locals>.<genexpr>  r  r  r\   r]   r   r  singledat_{i}.arrowr-  basename_templater   rR  zdat_0.arrowr  r  r[  r\  r]  c                 t   < SP                  V P                  4       SP                  V P                  4       R # r   )r3   rr   r`  )r  visited_pathsvisited_sizess   &r   r  &test_write_table.<locals>.file_visitor  s+    \../\../r   r   r  )r   r  r   r  r  Nr  )rB   r   r|   r2   r   r  ri   r  r   rV   r   r  r   r@   rG   ru  rr   getsizer   r  r  )r  r   r  rU  r_  rF  r  r   rr   actual_sizesvisited_pathr  r  s   &          @@r   test_write_tabler
    s<   HH
rRXX%IuRy%II
#sebj() "#E
 !HU'6yJ hnnS)*J./Nz?c.1111ZZ/88:F== &H8X0=@8X0=@N
 MM0 ??
		FBIIK()*6;LUY'6".K hnnS)*Jz?c.11116CDmdBGGOOD)mLDL(((ZZ\JF??##E****}"""%||L)^;;; & Es   (J2c           	      2   \         P                  ! \         P                  ! \        ^
4      4      \         P                  ! R \        ^
4       4       4      \         P                  ! R.^,          R.^,          ,           4      .. ROR7      p\         P                  ! V.^,          4      pV R,          p\
        P                  ! WRR7       \        VP                  R4      4      \        VR	,          .4      8X  g   Q h\
        P                  ! VR
R7      P                  4       P                  V4      '       g   Q hV R,          p\
        P                  ! V.VRR7       \        VP                  R4      4      \        VR	,          .4      8X  g   Q h\
        P                  ! VR
R7      P                  4       P                  V4      '       g   Q hV R,          p\
        P                  ! VP                  4       VRR7       \        VP                  R4      4      \        VR	,          .4      8X  g   Q h\
        P                  ! VR
R7      P                  4       P                  V4      '       g   Q hV R,          p\
        P                  ! W.VRR7       \        VP                  R4      4      \        VR	,          .4      8X  g   Q h\
        P                  ! VR
R7      P                  4       P                  \         P                  ! V.^,          4      4      '       g   Q hR# )rv  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  6test_write_table_multiple_fragments.<locals>.<genexpr>  r  r  r\   r]   r  r  r-  r  rR  r  r  zsingle-listmultiplezmultiple-tableNr  )rB   r   r|   r2   r  r   r  r   r  rV   r   r  r   )r  r   r  s   &  r   #test_write_table_multiple_fragmentsr    sx   HH
rRXX%IuRy%II
#cUQY&' "#E eWQY'E !HUY7x~~c"#sH7G,G+H'IIII::hu-668??FFFF &HeWhy9x~~c"#sH7G,G+H'IIII::hu-668??FFFF #HU%%')Dx~~c"#s	$	$%(' ' ' '::hu-668??FFFF ))He^Xi@x~~c"#s	$	$%(' ' ' '::hu-668??
%#   r   c           	      &   \         P                  ! \         P                  ! \        ^4      4      \         P                  ! R \        ^4       4       4      \         P                  ! R.^
,          R.^
,          ,           4      .. ROR7      pV R,          p\        P
                  ! R VP                  4        4       VVP                  RRR	7       \        P                  ! VRR
7      P                  4       pVP                  V4      '       g   Q hV R,          p\         P                  P                  VP                  VP                  4       4      p\        P
                  ! WBRRR7       \        P                  ! VRR
7      P                  4       pVP                  V4      '       g   Q hV R,          p\        V4      p\        P
                  ! WRRRR7       \        P                  ! VRR
7      P                  4       pVP                  V4      '       g   Q hR# )r  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  &test_write_iterable.<locals>.<genexpr>  r  r  r\   r]   r  inmemory_iterablec              3   $   "   T F  qx  K  	  R # 5ir   r   )r  ru   s   & r   r  r    s     <);e);s   r   r  )r@   r  r   r  inmemory_readerr  inmemory_pycapsuleNr  )rB   r   r|   r2   r   r  r   r@   rV   r   r  r  rl   r   )r  r   r  rF  r   streams   &     r   test_write_iterabler    s   HH
rRXX%IuRy%II
#sebj() "#E
 ,,H<)9)9);<h!LL'6uF ZZ/88:F==**H!!..u||/4/?/?/ACFVQVWZZ/88:F==--H&FVQVWZZ/88:F==r   c           	         \         P                  ! \         P                  ! \        ^4      4      \         P                  ! R \        ^4       4       4      \         P                  ! R.^
,          R.^
,          ,           4      .. ROR7      p\        P
                  ! V4      pV R,          p\        P                  ! VP                  V4      VRR7       VP                  \        P
                  ! VR	R7      4      pVP                  V4      '       g   Q hV R
,          p\        P                  ! VP                  VR.R7      VRR7       VP                  \        P
                  ! VR	R7      4      pVP                  VP                  R.4      4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        \        P                  ! VP                  V4      VVP                  RR7       RRR4       R#   + '       g   i     R# ; i)r  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  %test_write_scanner.<locals>.<genexpr>  r  r  r\   r]   r$  r  dataset_from_scannerr-  r  r  dataset_from_scanner2r#   zCannot specify a schemar	  )r@   r   Nr  )rB   r   r|   r2   r   rV   r  r   r   r  r  r  r  r[  r@   )r  r   r   rV   r  rF  s   &&    r   test_write_scannerr    s   HH
rRXX%IuRy%II
#sebj() "#E jjG//H^++9.$$RZZ%GHF== 00H^++GdV+Di1$$RZZ%GHF==tf-.... 
z)B	C	C
//8( %Y	@ 
D	C	C	Cs   94G77H	c                 R   \         P                  ! \         P                  ! \        ^4      4      \         P                  ! R.^
,          R.^
,          ,           4      P	                  4       .RR.R7      p\
        P                  ! VP                  R.4      P                  4      pV R,          p\
        P                  ! WRVR7       \
        P                  P                  R.R	R
7      p\
        P                  ! VRVR7      P                  4       pVP                  V4      '       g   Q hR# )r  r\   r]   r  r   r  rV   r-  r  TrD  r  N)rB   r   r|   r2   r  r   r   r  r@   r  r   r;  rV   r   r  )r  r   r   r  partitioning_readrF  s   &     r   !test_write_table_partitioned_dictr!    s     HH
r
#sebj();;= V_E
 ??5<<#9#@#@AL"H	
 0099	4 : )ZZ->hj  ==r   c                    \         P                  ! \         P                  ! \        ^4      RR7      \         P                  ! \        P
                  ! R^RR7      P                  R4      4      \         P                  ! \        P                  ! RR.^
4      4      .. ROR	7      pV R
,          p\        P                  ! WRR7       \        VP                  R4      4      pVR,          .p\        V4      \        V4      8X  g   Q h\        P                  ! VRR7      P                  4       pVP                  V4      '       g   Q hR EF  p\        P                   ! 4       pVP#                  VR7      pR\%        V4      9   g   Q hV RV 2,          p\        P                  ! WWxR7       \&        P(                  ! VR,          4      p	VR8X  d   RMRp
V	P*                  V
8X  g   Q h\        P                  ! VRR7      P                  4       pVP,                  pVR8X  dD   VP                  ^ VP/                  ^ 4      P1                  \         P2                  ! 4       4      4      pVR9   dE   VP                  ^VP/                  ^4      P1                  \         P4                  ! R4      4      4      pVP7                  V4      pVP                  V4      '       d   EK  Q h	  R# )r  r  rw   rT  zdatetime64[D]r2  zdatetime64[ns]r\   r]   r  r  r   r  rR  part-0.parquet1.02.6r  z(<pyarrow.dataset.ParquetFileWriteOptionsparquet_dataset_versionr  r  Nr  )r$  2.4r%  )r$  r'  )rB   r   r|   r2   rn  ro  r  rm  r   r  ri   r  r   rV   r   r  r   r  r.  rm   read_metadataformat_versionr@   rC   	with_typerE   r  r  )r  r   r  rU  r_  rF  r  r   optsmetaexpected_versionr@   r  s   &            r   test_write_dataset_parquetr.  3  s<    HH
r*
<?CJJ 	
C:r*+	
 "#E **HUY7hnnS)*J!112Nz?c.1111ZZ3<<>F== )%%'(((99T$ZGGG6wi@@
K+; ;<$+u$45%""&6666 HY7@@BeZZ6<<?#<#<RXXZ#HIFn$ZZ6<<?#<#<R\\$=O#PQF::f%}}X&&&&' )r   c           	         \         P                  ! \         P                  ! \        ^4      4      \         P                  ! R \        ^4       4       4      \         P                  ! R.^
,          R.^
,          ,           4      .. ROR7      pV R,          p\        P
                  ! WRR7       \        VP                  R4      4      pVR	,          .p\        V4      \        V4      8X  g   Q h\        P                  ! VRR7      P                  4       pVP                  V4      '       g   Q h\        P                  ! \        P                  P                  VP                   P"                  R
7      R7      pVP%                  RR7      pV R,          p\        P
                  ! WWgR7       \        P                  ! W&R7      P                  4       pVP                  V4      '       g   Q hR# )r  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  )test_write_dataset_csv.<locals>.<genexpr>b  r  r  r\   r]   r  csv_datasetr.  r  rR  z
part-0.csvr  r%  F)include_headercsv_dataset_noheaderr  N)r$  r  chr1)rB   r   r|   r2   r   r  ri   r  r   rV   r   r  r-  r   r.  r0  r@   r  r  )r  r   r  rU  r_  rF  r   r+  s   &       r   test_write_dataset_csvr6  `  sm   HH
rRXX%IuRy%II
#sebj() "#E
 &HUU3hnnS)*J-.Nz?c.1111ZZ/88:F== 7;;+B+B\\'' ,C ,) *F$$E$:D//HUVGZZ099;F==r   c           	        a \         P                  ! \         P                  ! \        ^4      4      \         P                  ! R \        ^4       4       4      \         P                  ! R.^
,          R.^
,          ,           4      .. ROR7      pRoV3R lpV R,          p\        P
                  ! WRVR	7       S'       g   Q hR
# )r  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  :test_write_dataset_parquet_file_visitor.<locals>.<genexpr>}  r  r  r\   r]   r  Fc                 f   < V P                   e"   V P                   P                  ^8X  d   RoR # R # R # )NT)r  ra  )r  visitor_calleds   &r   r  =test_write_dataset_parquet_file_visitor.<locals>.file_visitor  s2    !!-%%11Q6!N 7 .r   r  r   )r   r  Nr  )rB   r   r|   r2   r   r  )r  r   r  r  r;  s   &   @r   'test_write_dataset_parquet_file_visitorr=  z  s    HH
rRXX%IuRy%II
#sebj() "#E
 N" **HUY".0 >r   c           
        aa \        ^4       UUu. uF  q.^
,           F  q"NK  	  K  	  ppp\        ^4       UUu. uF  q.^
,           F  q"^
,          NK  	  K  	  ppp\        P                  ! RVRVRR.^,          R.^,          ,           /4      pV R,          p\        P                  ! \        P
                  ! R\        P                  ! 4       3.4      RR7      p. oR	oVV3R
 lp\        P                  ! WVRVRVR7       VR,          R,          VR,          R,          0p	\        \        \        P                  S4      4      p
W8X  g   Q hSf   Q hSP                  ^8X  g   Q hR	# u uppi u uppi )r2  r$  r  r   r\   r]   r[  r   r  Nc                 z   < V P                   '       d   V P                   oSP                  V P                  4       R # r   )r  r3   rr   )r  r  sample_metadatas   &r   r  Atest_partition_dataset_parquet_file_visitor.<locals>.file_visitor  s.       *33O\../r   r   Tr  r\  r#  r]  )r2   rB   r   r   r   r@   rG   r  r   rj   r  r  ra  )r  r   r  f1_valsf2_valsr   r  r   r  r_  r  r  r@  s   &          @@r   +test_partition_dataset_parquet_file_visitorrD    sY   !&qCglldtltGC$)!HFH52BwwwHGFHHdGT7sebjC52:57 8E -'I??
		FBIIK()*6;L MO0 | 	H//H//N Cm<=...&&&&&!+++? DFs
   E*!E0c                 ^   \         P                  ! R \        P                  ! RRR7      ./4      pVR ,          P                  P
                  R8X  g   Q h\        P                  ! WRR7       \        P                  ! V R,          4      pVR ,          P                  P
                  R8X  g   Q hR# )r\   rT  zEurope/Brussels)tzr   r  r#  N)
rB   r   r6   rW  rx   rF  r   r  rm   rp  )r  r   rF  s   &  r   (test_write_dataset_arrow_schema_metadatarG    s    
 HHcBLL:KLMNOE:??!2222UI6]]7%556F#;"3333r   c                 
   ^ RI Hp \        P                  ! R. R	O/4      pVP	                  RR/4      p\
        P                  ! W RR7       VP                  V R,          4      P                  pVP                  RR/8X  g   Q hR# )
r   r6  r\   r#     valuer-  r  r  Nr  )
r   r-  rB   r   rJ   r   r  rp  r@   r  )r  r-  r   r@   s   &   r   "test_write_dataset_schema_metadatarJ    sp    HHc9%&E))68*<=EUI6*: :;BBF??vx0000r   c                    \         P                  ! R . RO/4      pVP                  RR/4      p\        P                  ! WRR7       \
        P                  ! V R,          4      P                  pVP                  RR/8X  g   Q hR# )r\   r#  rI  r   r  r#  Nr  )	rB   r   rJ   r   r  rm   rp  r@   r  )r  r   r@   s   &  r   *test_write_dataset_schema_metadata_parquetrL    sm     HHc9%&E))68*<=EUI6]]7%556==F??vx0000r   c           	      8   V w   rrrEpR P                  WVW44      p\        P                  ! \        P                  ! \	        ^4      4      \        P                  ! R \	        ^4       4       4      \        P                  ! R.^
,          R.^
,          ,           4      .. ROR7      p\
        P                  ! \        P                  ! R\        P                  ! 4       3.4      RR7      p	\
        P                  ! VRVR	V	R
7       \
        P                  ! RVRRR
7      P                  4       p
V
P                  V4      '       g   Q hVP                  R4      p\
        P                  ! WR	V	R7       \
        P                  ! RVRRR
7      P                  4       p
V
P                  V4      '       g   Q hVP                  R4      p\
        P                  ! VRVR	V	R
7       \
        P                  ! RVRRR
7      P                  4       p
V
P                  V4      '       g   Q hR# )r>  c              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  (test_write_dataset_s3.<locals>.<genexpr>  r  r  r\   r]   r   r  r   r  zmybucket/datasetr-  rk  r  zmybucket/dataset2r  r(  r  zmybucket/dataset3Nr  )r   rB   r   r|   r2   r   r   r@   rG   r  rV   r   r  )rc  r  rd   re  rf  rg  rh  uri_templater   r   rF  rd  s   &           r   test_write_dataset_s3rQ    s    7H3Aqat=DDD	0 
 HH
rRXX%IuRy%II
#sebj()+ #E
 ??299vryy{&;%<=fMD !b
 ZZr%fhj  == 

1
2CU	EZZ5vhj  == 

j
)Czc)$ ZZ5vhj  ==r   aC  {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        }
    ]
}c                    ^ RI Hp V R,          w  r# p\        V \        RR4       V! RRV RV 2RR7      p\        P
                  ! \        P                  ! \        ^4      4      \        P                  ! R \        ^4       4       4      \        P                  ! R	.^
,          R
.^
,          ,           4      .. ROR7      p\        P                  ! \        P                  ! R\        P                  ! 4       3.4      RR7      p\        P                  ! VRVRRVRR7       \        P                  ! RVRRR7      P                  4       pVP                  V4      '       g   Q h\        P                  ! VRVRRVRR7       \        P                  ! RVRRR7      P                  4       pVP                  V4      '       g   Q h\         P"                  ! \$        RR7      ;_uu_ 4        \        P                  ! VRVRRRR7       RRR4       V! RRV RV 2RRR7      p\         P"                  ! \$        RR7      ;_uu_ 4        \        P                  ! VRVRRRR7       RRR4       R#   + '       g   i     Lm; i  + '       g   i     R# ; i) r   )r8  r%  test_dataset_limited_user
limited123r'  http)rg  rh  endpoint_overrideschemec              3   L   "   T F  p\         P                   ! 4       x  K  	  R # 5ir   r  r  s   & r   r  1test_write_dataset_s3_put_only.<locals>.<genexpr>2  r  r  r\   r]   r   r  r   r  zexisting-bucketr-  Fr  )r  r   rg   r   r  r  rk  Tz&Bucket 'non-existing-bucket' not foundr	  znon-existing-bucket)r  r   rg   r  Nlimited)rg  rh  rV  rW  allow_bucket_creationz(Access Denied|ACCESS_DENIED)r  )r   r8  r   _minio_put_only_policyrB   r   r|   r2   r   r   r@   rG   r  rV   r   r  r  r  rb  )	r*  r8  re  rf  r  rd   r   r   rF  s	   &        r   test_write_dataset_s3_put_onlyr]    sD    ( !.D1y*@:LJ	.!F!D6*	
B HH
rRXX%IuRy%II
#rSEBJ&') #E
 ??299vryy{&;%<=fMD  RU4 ZZbVhj  ==  RT4 ZZbVhj  == 
wE
G 
G
(R#8	

G 
!F!D6*"
B 
w&E	F	F
(R#8	
 
G	F!
G 
G  
G	F	Fs   "I$=I7$I4	7J	c           
      ,   \         P                  ! R RR./4      p\        P                  ! W R,          4       \         P                  ! \         P
                  ! R \         P                  ! \         P                  ! 4       \         P                  ! 4       4      4      .4      p\        P                  P                  V R,          .V\        P                  ! 4       \        P                  ! 4       R7      pVP                  V4      pVP                  V8X  g   Q hR# )r\   Nr  )r   r@   r   r  )rB   r   rm   rn   r@   rC   ry   r   rG   r   r  r  r   rd   r   r   )r  r   r   r@   fsdss   &&   r   $test_dataset_null_to_dictionary_castr`  i  s     HHcD$<()ENN5N23YY
bmmBHHJ		<= F **'(##%%%'	 + D ##D)E<<6!!!r   c           
         \         P                  ! R . ROR. RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\         P                  ! R. ROR. RO/4      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pVP                  VR R4      pVP                  4       \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hVP                  VR RR	R
7      pVP                  4       P                  R 4      \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hR# )colAr  r  r  r  colBcol3r  N
full outer)	join_typer/  r0  r  r\   r]   r  c   r0  r/  Zr  r  r  r  Nr/  r0  r  rj  r\   r]   r  Nr  r  Nrl  rB   r   r   r  rV   r  r   r>  r  r  ds1r  ds2rF  s   &     r   test_dataset_joinru  |  s8   		 
B R46
**Wt^E
2C	
 
B R46
**Wt^E
2CXXc66*F??	 * !    XXc66\XBF??$$V,%%: 1   r   c           
         \         P                  ! R . ROR. RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\         P                  ! R . ROR. RO/4      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pVP                  VR 4      pVP                  4       \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hVP                  VR RR	R
7      pVP                  4       P                  R 4      \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hR# )rb  r  r  r  r  rd  r  Nre  _rrf  right_suffixrg  rh  ri  rk  rm  rn  ro  rp  rq  rr  s   &     r   test_dataset_join_unique_keyrz    s6   		 
B R46
**Wt^E
2C	
 
B R46
**Wt^E
2CXXc6"F??	 * !    XXc6\XMF??$$V,%%: 1   r   c           	      J   \         P                  ! R . ROR. ROR. RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\         P                  ! R . ROR. ROR. RO/4      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pVP                  VR RRR	7      pVP                  4       P                  R 4      \         P                  ! . RO. RO. RO. RO. RO.. ROR7      8X  g   Q hR
# )rb  rc  colValsr  r  r  r  re  rw  rx  Nr  rg  rv  r  <   rh  ri  rj  r  rv  rk  rn  )rv  r  r~  Nro  )rv  r  Nrj  rp  )rb  rc  r|  colB_r	colVals_rrq  rr  s   &     r   test_dataset_join_collisionsr    s    		? 
B
 R46
**Wt^E
2C	
? 
B
 R46
**Wt^E
2CXXc6\XMF??$$V,: @1A A A Ar   c           
      \   \         P                  P                  R . ROR. RO/4      p\        P                  ! WR,          RR7       \        P
                  ! V R,          RR7      p\         P                  P                  R. ROR. ROR. RO/4      p\        P                  ! W0R,          RR7       \        P
                  ! V R,          RR7      pVP                  VR R^RRR	7      pVP                  4       P                  R 4      \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hR
# )rb  r  r  r  r  rc  rd  colCr  onby	toleranceright_onright_byN)r/  r/  r  r  rU  )r\   r]   r\   r]   r  )r0  rV  r  )r\   r]   g)r)  r6  g      @)r)  NNNN)
rB   rH   from_pydictr   r  rV   	join_asofr   r>  r   rr  s   &     r   test_dataset_join_asofr    s
   			) 
B R46
**Wt^E
2C			
 
B
 R46
**Wt^E
2C]]6Q&  F ??$$V,),: 1   r   c                 P   \         P                  ! R . R
OR. ROR. RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\         P                  ! R. ROR. ROR . ROR. RO/4      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pVP                  VRR R.^R7      pVP                  4       P                  R 4      \         P                  ! R . R
OR. ROR. ROR. RO/4      8X  g   Q hR	# )rb  rc  r  r  r  r  r|  r  r  r  r  Nrg  r}  r  r  rk  ri  r  )Nr  N)rB   r   r   r  rV   r  r   r>  rr  s   &     r   "test_dataset_join_asof_multiple_byr    s   		i 
B
 R46
**Wt^E
2C	?
i	 
B R46
**Wt^E
2C]]&&)Q  F ??$$V,	i$	: 1   r   c                    \         P                  ! R . RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\         P                  ! R. R	OR . R
O/4      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pVP                  VR . ^R7      pVP                  4       \         P                  ! R . ROR. RO/4      8X  g   Q hR# )r  r  r  r  r|  r  r  Nr  rk  r  )rl  rl  r  )rB   r   r   r  rV   r  r   rr  s   &     r   test_dataset_join_asof_empty_byr    s    	i 
B R46
**Wt^E
2C	?i 
B R46
**Wt^E
2C]]q  F ??i?* !   r   c                 Z   \         P                  ! R . ROR. ROR. ROR. RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\         P                  ! R. ROR. ROR. ROR . ROR. RO/4      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pR	p\
        P                  ! \        VR
7      ;_uu_ 4        VP                  VRR R.^RR R.R7       RRR4       R#   + '       g   i     R# ; i)rb  rc  r  r|  r  r  r  colUniqr  zXColumns {'colVals'} present in both tables. AsofJoin does not support column collisions.r	  r  Nrg  r}  r  rh  r  rk  )d      r  ri  r  )	rB   r   r   r  rV   r  r  r[  r  )r  r  rs  r  rt  rp  s   &     r   !test_dataset_join_asof_collisionsr  (  s    		i?	 
B R46
**Wt^E
2C	??
i 
B R46
**Wt^E
2C	7  
z	-	-Dff-VV$4 	 	
 
.	-	-	-s   3DD*	dstyperd   memc                 8	   \         P                  ! R . ROR. RO/4      pVR8X  d@   \        P                  ! W R,          RR7       \        P                  ! V R,          RR7      pM$VR8X  d   \        P                  ! V4      pM\
        hVP                  \        P                  ! R 4      ^8  4      P                  \        P                  ! R4      R8H  4      pVR8X  d   \        P                  M\        P                  p\        WE4      '       g   Q hVP                  4       \         P                  ! R ^.RR./4      8X  g   Q hVP                  ^4      \         P                  ! R ^.RR./4      8X  g   Q hVP                  \        P                  ! R 4      ^8  4      P                  \        P                  ! R 4      ^8  4      P                  \        P                  ! R 4      ^8g  R	7      pVP                  4       \         P                  ! R ^.RR./4      8X  g   Q h\        P                  ! W@R
,          RR7       \        P                  ! V R
,          RR7      pVP                  4       \         P                  ! R ^.RR./4      8X  g   Q hVP                  \        P                  ! \         P                  ! R^
^.RRR./4      4      RRR7      pVP                  4       P!                  R4      \         P                  ! R ^R.R^
^.RRR./4      8X  g   Q h\"        P$                  ! \&        4      ;_uu_ 4        VP                  R4       RRR4       \"        P$                  ! \(        4      ;_uu_ 4        VP+                  4        RRR4       VP,                  P/                  ^4      p	VP                  \        P                  ! R 4      ^8  4      P1                  V	4      p
V
P                  4       \         P                  ! R ^^./4      8X  g   Q h\"        P$                  ! \         P2                  4      ;_uu_ 4        VP1                  V	4      P                  4        RRR4       R#   + '       g   i     EL#; i  + '       g   i     L; i  + '       g   i     R# ; i)rb  r  r\   r]   rd   r  r  r  r  r  r*  rc  zright outerkeysrf  Nr/  r0  r  r  r\   r]   r  r  )rB   r   r   r  rV   r'  r  r  rC   r  r  rP   r   r   r   r  r>  r  r  r  r[  rN   r@   r  replace_schemarl  )r  r  r  rs  rF  r  r2r*  joinedschema_without_col2	newschemas   &&         r   test_dataset_filterr  H  s    
$ 
B ~
t^E:jj46	5jjn!! ZZ(1,-44RXXf5E5LMF'-~r##2;M;MHf''''??* !   
 ;;q>RXX'     
BHHV$q(	)	0	0
1
%gRXXf-=-BgC ;;=BHH&     Vz1%@zz'J.u=H"((, #    [[BHHRc
. %    /F ??$$V,D	Rc
: 1    
y	!	!

4 
" 
z	"	" 
# **++A.


1n()  288A- $    
r	'	' 	12;;=	 
(	' 
"	!	! 
#	" 
(	'	's$   5Q!1Q57 R!Q2	5R	R	c                 z   \         P                  ! R . ROR. RO/4      p\         P                  ! R . ROR. RO/4      pVR8X  d~   \        P                  ! W R,          RR7       \        P                  ! V R,          RR7      p\        P                  ! W0R,          RR7       \        P                  ! V R,          RR7      pM:VR	8X  d.   \        P                  ! V4      p\        P                  ! V4      pM\
        h\        P                  ! WE34      P                  \        P                  ! R 4      ^8  \        P                  ! R 4      ^	8H  ,          4      pVP                  4       \         P                  ! R . ROR. RO/4      8X  g   Q hVP                  \        P                  ! \         P                  ! R
^
^.RRR./4      4      RRR7      pVP                  4       P                  R 4      \         P                  ! R . ROR. ROR
. RO/4      8X  g   Q hVP                  \        P                  ! R 4      ^8  4      pVP                  \        P                  ! R 4      ^
8  4      p	\        P                  ! \        RR7      ;_uu_ 4        \        P                  ! W34       RRR4       R#   + '       g   i     R# ; i)rb  r  r\   r]   rd   r  r  r  r  r  rc  z
left outerr  Nzcurrently not supportedr	  r  r  )rV  rv  ru  )hr=   l)r/  r0  rV  )r\   r]   r  )rv  r  N)rB   r   r   r  rV   r'  r  r  rC   r   r  r>  r  r  r[  )
r  r  r  r  rs  rt  filtered_union_dsr  filtered_ds1filtered_ds2s
   &&        r   test_union_dataset_filterr    s3    
$ 
B 
 
B ~
t^E:jj46
t^E:jj46	5jjnjjn!!

C:.55	&	A	"((6"2a"78 %%'288	5 ,   
 ##BJJrxxRc
9 0 %  $ .F ??$$V,	: 1    ::bhhv.23L::bhhv.34L	z)B	C	C


L/0 
D	C	C	Cs   J))J:	c                    V R ,          p\        V4      w  r#\        P                  ! V4      pVP                  4       pVP                  ^(8X  g   Q hVP                  \        P                  ! R4      ^8  4      pVP                  4       P                  ^8X  g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)test_parquet_dataset_filterr$  N)r  r   r  r   r   r  r  rC   r  r  r[  rN   )r  r  r  r  rV   rF  filtered_dss   &      r   r  r    s    77I5i@M  /GF??b   ..$!!34K!**b000	z	"	"!!# 
#	"	"	"s   ;CC'	c           	        \         P                  ! \         P                  ! \        ^4      4      .R.R7      p\        P
                  ! V4      pR\        P                  ! R4      /pVP                  VR7      p\        P                  ! W@R.RR7       \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! W@R.RR7       R	R	R	4       R	#   + '       g   i     R	# ; i)
z{
Ensure the projected schema is used to validate partitions for scanner

https://issues.apache.org/jira/browse/ARROW-17228
original_columnr  renamed_columnr#   r  r  z0'Column original_column does not exist in schemar	  N)rB   r   r|   r2   r   rV   rC   r   r  r  r  KeyError)r  r   table_datasetr$   r   s   &    r   4test_write_dataset_with_scanner_use_projected_schemar    s     HHbhhuRy)*3D2EFEJJu%M"((#45G ##G#4G(8'9%I 	O	
 	
 	,=+>u	
		
 	
 	
 	
s   6CC,	r   c                    VR 8X  d   \         P                  ! R4       \        P                  ! RRR.R^^.RRRR	R
R^^.RRR/R./RRR	RR. RORRR/././4      p\        P
                  ! W R,          VR7       \        P                  ! V R,          VR7      pVP                  . ROR7      pVP                  4       RRRRR^^.RRRRR/R.R^/RRRRR. RORRRRR/.R^/.8X  g   Q hR# )r   zpyarrow.parquetuser_idabc123qrs456a.dotted.fieldinteractionrx   Nelementbuttonvaluesstructsr  r  scrollwindowfizzbuzzr   r  r#   )Nr1  r2  )r  zinteraction.typezinteraction.valueszinteraction.structsr  )	r  r7  rB   r   r   r  rV   r   rs  )r  r   r   rs  s   &&  r   test_read_table_nested_columnsr    sH   -.HHi(H!5&A#	y(	Aq69u~t&<	>	9h	<ff-=,>	@& E Ug-f=
**Ww&v
6C LL:  ;E ??	HfdHq!f	fdE5148:JA	O	Hfh,	ffeT235Eq	J!   r   c                    ^ RI Hp V R,          p\        P                  P	                  \        P
                  ! . RO\        P                  ! 4       4      \        P
                  ! . RO\        P                  ! 4       4      .RR.4      pVP                  ! VVRR.RR7       VP                  ! VRR\        P                  ! \        P                  ! R\        P                  ! 4       4      \        P                  ! R\        P                  ! 4       4      .4      R7      P                  4       P                  4       pW4P                  R4      8X  g   Q hVP                  ^4      P                  4       p\!        \#        V4      4      pV Uu. uF  pR	\%        VR
R7      ,           NK  	  pp\!        \&        P(                  ! X4      4      pWg8X  g   Q hR# u upi )r   )rV   zslash-writer-xexp_idexp_metar  r   )r<   r  r   r   rh  )r  r   r   r@   z	exp_meta=r  r9  Nr/  r0  r1  r2  r  )experiment/A/f.csvzexperiment/B/f.csvr  zexperiment/C/k.csvzexperiment/M/i.csv)r   rV   rB   rH   r   r|   r   r  r  r@   rC   r   rE  r>  r:  rs  r@  r   r   ru  rv  )tmpdirr   rr   dt_tablerp  r  encoded_pathsrU  s   &       r   !test_dataset_partition_with_slashr    sn   %$$Dxx##
"((*-
 ()+	4%5 8@6L	NH  \" yy"((8RXXZ8((:rwwy9; <	 hj!  ))(3333q!++-Hc(m$HDLMHD[5B#777HMM

4()J&&& Ns   Gc           	         \         P                  ! \         P                  ! R \         P                  ! 4       RR7      \         P                  ! R\         P                  ! 4       RR7      .4      p. RO. RO.p\         P                  P                  W!R7      p\        P                  ! W0R,          4       \        P                  ! V R,          RR	7      pVP                  4       P                  P                  V4      '       g   Q h\        P                  ! W0R
,          RR	7       \        P                  ! V R
,          RR	7      pVP                  4       P                  P                  V4      '       g   Q h\        P                  ! W3.V R,          RR	7       \        P                  ! V R,          RR	7      pVP                  4       P                  P                  V4      '       g   Q hR# )r  F)nullablere  TNrc   	nulltest1r   r  	nulltest2	nulltest3r  Nr  N)rB   r@   rC   rE   rH   r   rm   r  r   rV   r   r  r  )r  schema_nullabler  r   rV   s   &    r   'test_write_dataset_preserve_nullabilityr  2  sX    ii
bhhj51
bhhj40!2 3O )FHH   @E45jj;.yAG$$++O<<<<Uk1)Djj;.yAG$$++O<<<<e^W{%:9Mjj;.yAG$$++O<<<<r   c                    \         P                  ! \         P                  ! R \         P                  ! 4       RR/R7      \         P                  ! R\         P                  ! 4       4      .4      p\         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p. RO. RO.p\         P                  P                  W1R7      p\         P                  P                  W2R7      p\        P                  ! WE.V R,          RR	7       \        P                  ! V R,          RR	7      pVP                  4       P                  P                  VR
R7      '       g   Q h\        P                  ! WT.V R,          RR	7       \        P                  ! V R,          RR	7      pVP                  4       P                  P                  VR
R7      '       g   Q h\        P                  ! WT.V R,          RVR7       \        P                  ! V R,          RR	7      pVP                  4       P                  P                  VR
R7      '       g   Q hR# )r  s   foos   barrv  re  Nrc   test1r   r  TrG  test2test3r  r  r  )rB   r@   rC   rE   rH   r   r   r  rV   r   r  )r  schema_metadataschema_no_metar  r   table_no_metarV   s   &      r   *test_write_dataset_preserve_field_metadatar  J  s   ii
bhhjFF+;<
bhhj!!# $O YY
bhhj!
bhhj! # $N )FHH   @EHH(((GM e+Ww->yQjj7*9=G$$++OD+QQQQm+Ww->yQjj7*9=G$$++N4+PPPP m+Ww->y+-jj7*9=G$$++OD+QQQQr   c                    R EFw  pR EFl  p\         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p. RO. RO.p\         P                  P                  WCR7      p\        P                  ! 4       pV RV 2,          p\        P                  ! VVRVP                  VVR7      RR	7       \        P                  ! VRR
7      pVP                   Fc  p	\        P                  ! V	4      p
V
P                  ^ 4      P                  ^ 4      pVP                   VJ g   Q hVP"                  W!,          J d   Kc  Q h	  EKo  	  EKz  	  R# )Tr  re  Nrc   write_page_index_r   )write_statisticswrite_page_indexr  )r   r  r  r  )TFr  r  )rB   r@   rC   rE   rH   r   r   r   r  r  rV   r  rm   r(  r  r:  has_offset_indexhas_column_index)r  r  r  r@   r  r   r  r  rs  rJ  r  ccs   &           r   #test_write_dataset_write_page_indexr  g  sE   ) -YYbhhj)bhhj) + ,F  1FHH(((?E..0K#45E4F!GGH (;;%5%5 <  (=	 **Xi8C		++D1''*11!4**.>>>>**.>.QQQQ "- !. *r   c                 h   \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      .RR.R7      pVR8X  d@   \        P                  ! W R,          RR	7       \        P
                  ! V R,          RR	7      pM$VR
8X  d   \        P
                  ! V4      pM\        hVP                  R4      P                  4       P                  4       R. ROR. RO/8X  g   Q hVP                  R.4      P                  4       P                  4       R. ROR. RO/8X  g   Q hVP                  \        P                  ! R4      ^8  4      P                  R4      P                  4       P                  4       R. ROR. RO/8X  g   Q h\         P                  P                  \         P                  ! . RO\         P                  ! 4       R7      \         P                  ! . RO4      .RR.R7      p\        P
                  ! V4      pVP                  R.4      pVP                  4       P                  4       pVR,          . RO8X  g   Q hVR,          . RO8X  g   Q hVP                  R.4      pVP                  4       P                  4       pVR,          . RO8X  g   Q hVR,          . RO8X  g   Q hR# )r1  r]   r\   r  r  r  rd   r  r  r  r  rw   N)r1  r/  r2  r0  r  )r]   r\   r]   r\   r{   )r\   r\   r]   r]   r{   r  )r  
descending)r{   r]   r]   r\   r\   )r  r2  r1  r0  r/  )r\   r\   r]   r  )r  rU  rU  #   )r  carr  foobar)r\   r  )r  rU  rU  r  )r  r  r  r  )r\   rG  )rB   r   r|   r   r  rV   r'  r>  r   r?  r  r  rC   rH   r   rE   )r  r  r   r   
sorted_tabsorted_tab_dicts   &&    r   test_dataset_sort_byr    sV    HH
!
*+ !E
 ~
$u=ZZ$u5	5ZZ!!::h((*446)/;   
 ::/01::<FFH)/M   
 99bhhx(1,.66hj)!   HH  
RXXZ0
01" 3Z ! E 
E	B012J ))+557O3=0003#BBBB/01J ))+557O3=0003#BBBBr   c                   \         P                  ! R. RO/4      p\         P                  P                  4       pVP	                  RR7      pV R,          p\
        P                  ! VVVVR7       \
        P                  ! RR7      p\         P                  P                  VR7      p\
        P                  ! VVR7      P                  4       pW8X  g   Q hV R	,          p\        WH4       \        VP                  4       4      p	\        V	4      ^8X  g   Q hV	^ ,          p
\        V
P                  4       4      pV^,          V^$,          8w  g   Q hV^$,          V^,          uV^&   V^$&   V
P                  V4       \
        P                  ! R
R7      p\         P                  P                  VR7      p\
        P                  ! WR7      P                  4       pW8w  g   Q hV\         P                  ! R. RO/4      8X  g   Q h\         P"                  ! \$        RR7      ;_uu_ 4        \
        P                  ! VVR7      P                  4       pRRR4       R#   + '       g   i     R# ; i)zsCheck that checksum verification works for datasets created with
ds.write_dataset and read with ds.dataset.to_tabler\   T)write_page_checksumcorrect_dir)r<   r  r   r  r  )default_fragment_scan_optionsr  corrupted_dirFzCRC checksum verificationr	  Nr%  )r/  r1  r0  r2  )rB   r   rV   r   r  r   r  r  r   r   ri   iterdirr   	bytearray
read_byteswrite_bytesr  r  rb  )r  
table_origpq_write_formatr  original_dir_pathpq_scan_opts_crcpq_read_format_crctable_checkcorrupted_dir_pathcorrupted_file_path_listcorrupted_file_pathbin_datapq_scan_opts_no_crcpq_read_format_no_crctable_corruptr  s   &               r   1test_checksum_write_dataset_read_dataset_to_tabler    s+    3-.J jj224O#66  7 "M  -/""	 44#')55&6 6 8**! hj  $$$ !?23
  $$6$>$>$@A'(A---215,779:H B<8B<'''!)"x|HRL(2, ##H- 77#(*JJ88&9 9 ;JJ::B(* 
 &&&BHHc<%89999 
w&A	B	BJJ%
 (* 	
 
C	B	B	Bs   'II 	c                  ,   R p Rp\         P                  ! \        4      ;_uu_ 4       p\        P                  P
                  P                  ^+4       RRR4       V \        XP                  4      9   g   V\        VP                  4      9   g   Q h\        P                  P                  4       pRp\         P                  ! \        VR7      ;_uu_ 4        VP                  ^+4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zImake_write_options() should be called on an instance of ParquetFileFormatzqdescriptor 'make_write_options' for 'pyarrow._dataset_parquet.ParquetFileFormat' objects doesn't apply to a 'int'Nz;make_write_options\(\) takes exactly 0 positional argumentsr	  )	r  r  r  rB   rV   r   r  r`   r,   )msg_1msg_2excinfopformatrp  s        r   test_make_write_options_errorr
    s    -E(E 
y	!	!W


$$77; 
"C&&%3w}}3E*EEEjj**,G
IC	y	,	,""2& 
-	, 
"	! 
-	,	,s   *C/D/C?	D	c                 F    ^ RI Hp RpRpV P                  XP                  P                  V4      VP                  P                  V4      R7      P                  4       pVP                  4       RRR./8X  g   Q hR#   \         d    \        P                  ! R4        Li ; i)r   Nzsubstrait NOT enableds   
SOhttps://github.com/apache/arrow/blob/main/format/substrait/extension_types.yaml	
u64
	u32

str"i
i64
f64
str
const
struct
a
b
group
key7
:
Z
b
:

:
b
*
bs3  
/functions_comparison.yaml
SOhttps://github.com/apache/arrow/blob/main/format/substrait/extension_types.yamlequal:any1_any1	
u64
	u32

"
 "
("i
i64
f64
str
const
struct
a
b
group
key7
:
Z
b
:

:
b
*
br  r`   4)
pyarrow.substrait	substraitr4  r  r  r   BoundExpressionsfrom_substraitr   r?  )rV   psrG  	filteringrF  s   &    r   test_scanner_from_substraitr    s    -&
WJ
CI __##22:>""11)<   hj  %#s!44449  -+,-s   A< <!B B ))r  )zfoo=A/bar=ant%20beer  r  r  )r   )z	A/ant beer  r  )r  )r  z
A_ant bee_)r  r  r  r   )r  r  r_  r  )DEFr
  )r/  Nr1  )r  Nr_  )Nr0  r1  )bz2r  lz4zstd)r  r  r  )r2  r/  rv  )r  r   (  r   r.   ru  r  r~  r  sysr  r~  r  r  shutilr   urllib.parser   numpyrn  r4  r  r   rB   rH  rI  r  pyarrow.csvr  r   rd   pyarrow.jsonpyarrow.libr   pyarrow.tests.utilr   r   r   r	   r
   r   r6   r  rV   r   pyarrow.parquetr   rm   mark
pytestmarkr   r>   rL   rY   fixturero   r   r   r   r   r"  r'  rH  rV  r\  rb  rv  r  r  r  r  r  r  r  parametrizer  r  r  r  r
  r  r7  rC  r   rU  r\  s3ro  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)  r1  r?  rH  r[  rb  rh  rj  rs  r|  r  r  r  r  r  r  r  r  r/  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r!  rc  r-  r0  r9  rG  rK  rP  rX  r[  r]  rc  rh  rr  ru  rw  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipifplatformr   r  r
  r  r  r  r  r"  r%  r(  r+  r/  r4  r<  rB  rE  rO  rV  rY  r`  re  rl  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r!  r.  r6  r=  rD  rG  rJ  rL  rQ  r\  r]  r`  ru  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r   r   r   <module>r+     s  $   	    
              ,, ,   [[  
? ?K +%  D      F  @ h0  0f   	
 	H+	+\ DG DGN), ?9 ?9D)GX&( " " -I -I` % %$ - -, 5 5 O OA!HF$ F8
8
v#"6 & &R $ $" 6 6r$TNJ2 ,OOH-$$/  t}5E"  6E"P 4 4$ 5-  5-pH2H, *D *DZ  " 7 7@ 	%  	% 9N 9Nx  : ) )" 
:  
: %0 %0P  "5Jp '  'T 7 7 7  7 ) ), &. &.R $ $6 ' '> 	 	  3  3F     F  @ACIC I< +eT]; @AC@C < @@  @ACa,Ca,H  @ACR,CR,jJ? (  (2N
+;
=O"6J H H(*8,>@" I I
 I I L L $ $$ < <& J J& 7 7&    , - - = =*"?(DJ" 6 7&" !# !#H ? ?, , , N N.A +v)>?5$-8+eT];)i  o&	?# !< , 62 < 9 @ 62r ; ;< D D& 
:  
: :  : ,  ,0 ?=  ?=D / / 9 92 = =6 F F 	 	 9 9(4?%DM2@ 6) 6)r  "$, #M #ML ? ?,*    "    $  )    (H*: A0    (    (    ,D2@0G@  ) 
,/ ,/^ , !  ! CLLG+D  F!F  !( !  !2 . .* 	  	$3 4  4$ 
;  
; 3  3N @  @  G G* D  D 	=  	==0 :?  :?z B  B&(3&  P  PF *  *>)")"=& H  HVF" -# -#`;	O !< !<H  <  <F $ $8 A9 A9H #  #0 #9  #9L   ,<^!H 6@4 0 ('  ('V 4  *  ,  ,F 4  4	1 1 1 ,   , ^ $ I
  I
X " "$  <  < A A6  6  :  . 
 
> %$ K>K>\ %$ *1*1Z$
2 #56 76"'J = =.R:R@ %$ -C-C`FR'&5iw  	B"  	B
  	B
  	Bs[   AT# 3AT3 8AU ?AU T#	AT0T/AT0T3	AU T?AU U	AUUAUU	AU UAU 