+
    nDj                        ^ RI t ^ RIt^ RIH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Ht ^ RIHt ^ RIHtHtHt  ^ RIHt ^ RIHtHt  ^ RIt^ RIHt ^ R	I H!t! ^ R
IH"t"  ^ RI#t$]PJ                  P,                  t&R t'R t(]PJ                  PF                  R 4       t)]PJ                  PF                  R 4       t*]PJ                  P6                  R 4       t+]PJ                  P6                  R 4       t,]PJ                  P6                  R 4       t-R t.R t/R t0]PJ                  Pb                  R 4       t2]PJ                  P6                  R 4       t3]PJ                  P6                  R 4       t4R t5]PJ                  P6                  R 4       t6R t7]PJ                  Pq                  RR]Pr                  ! 4       .4      ]PJ                  Pq                  RRH4      R 4       4       t:R t;R t<R  t=R! t>R" t?R# t@R$ tAR% tBR& tCR' tD]PJ                  P6                  R( 4       tE]PJ                  P6                  R) 4       tF]PJ                  P6                  R* 4       tGR+ tHR, tI]PJ                  P6                  R- 4       tJR. tK]PJ                  P6                  ]PJ                  P                  ]PJ                  P                  R/4      ]PJ                  P                  R04      ]PJ                  P                  R14      R2 4       4       4       4       4       tN]PJ                  Pq                  R3R4 R5 R6 R7 .4      ]PJ                  Pq                  R8R9R:.4      R; 4       4       tOR< tPR= tQR> tRR? tSR@ tTRA tU]PJ                  P                  RB 4       tW]PJ                  Pq                  RCRDRERF..4      RG 4       tXR#   ] d    Rt ELhi ; i  ] d	    R;tt ELci ; i  ] d    Rt$ ELni ; i)I    N)OrderedDict)copytree)Decimal)fs)util)_check_roundtrip_roundtrip_table_test_table)_read_table_write_table)dataframe_with_lists)alltypes_samplec                    \         P                  ! R . RO/4      p\        P                  ! \        RR7      ;_uu_ 4        \        WR,          RR7       RRR4       \        P                  ! \        R	R7      ;_uu_ 4        \        WR,          RR7       RRR4       R#   + '       g   i     LS; i  + '       g   i     R# ; i)
az"Unsupported Parquet format versionmatchztest_version.parquetz2.2versionN)data_page_version         z%Unsupported Parquet data page version)patablepytestraises
ValueErrorr   )tempdirr   s   & Z/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/parquet/test_basic.pytest_parquet_invalid_versionr!   =   s    HHc9%&E	z)M	N	NU&<<eL 
O	z *! 
" 
"U&<<',	.
" 
" 
O	N
" 
" 
"s   B B2B/	2C	c                      \         P                  ! . ROR,          4      p \         P                  P                  V .R.R7      pRR.pV F  p\	        WR7       K  	  R# )	r   i f0names)data_page_sizeNr   i   i   )r   arrayTablefrom_arraysr   )arrt
page_sizestarget_page_sizes       r    test_set_data_page_sizer.   G   sQ    
((9v%
&C
cU4&1A 7#J&< '    c                  :    \        ^d4      p \        V ^
^RR7       R# )d   2.4)r&   write_batch_sizer   N)r
   r   r   s    r    test_set_write_batch_sizer5   Q   s    Eb1er/   c            	          \        ^d4      p \        V ^^
RR7       \        P                  ! \        4      ;_uu_ 4        \        V R^
RR7       RRR4       R#   + '       g   i     R# ; i)r1   r2   )dictionary_pagesize_limitr&   r   r   N)r
   r   r   r   	TypeErrorr4   s    r    "test_set_dictionary_pagesize_limitr9   Z   sN    EUa$&7 
y	!	!#(*E	; 
"	!	!	!s   AA(	c            
         . p \         P                  P                  \        ^
R7      4      pV P	                  \         P
                  P                  V.^,          4      4       \        4       w  r#\         P                  P                  V4      pV P	                  \         P
                  P                  V.^,          4      4       R F$  pR F  pV  F  p\        VRVVR7       K  	  K  	  K&  	  R# )
   size2.6)r   r   use_dictionaryN)z1.0z2.0)TF)	r   RecordBatchfrom_pandasr   appendr(   from_batchesr   r   )tablesbatchdf_r   r?   r   s          r    test_chunked_table_writerH   f   s     FNN&&B'?@E
MM"((''!45 "EBNN&&r*E
MM"((''!45++N 5&7#13   , ,r/   c                 |   \        ^
R7      p\        P                  P                  V4      p\	        VRR/RR7       \        V R,          4      p\        VR4      ;_uu_ 4       p\        W$RR7       R	R	R	4       \        P                  ! VRR
7      pVP                  V4      '       g   Q hR	#   + '       g   i     LC; i)r;   r<   
memory_mapTr>   read_table_kwargsr   tmp_filewbr   N)rJ   r   r   r(   rA   r   stropenr   pqread_pandasequalsr   rF   r   filenamef
table_reads   &     r    test_memory_maprY   y   s    	b	!BHH  $EU|T.B"$ 7Z'(H	h		Uu- 
T:JU#### 
	   "B++B;	c                 |   \        ^
R7      p\        P                  P                  V4      p\	        VRR/RR7       \        V R,          4      p\        VR4      ;_uu_ 4       p\        W$RR7       R	R	R	4       \        P                  ! VR
R7      pVP                  V4      '       g   Q hR	#   + '       g   i     LC; i)r;   r<   buffer_sizei  r>   rK   rM   rN   r   Ni   )r\   rO   rU   s   &     r    test_enable_buffered_streamr]      s    	b	!BHH  $EU}d.C"$ 7Z'(H	h		Uu- 
d;JU#### 
	rZ   c                 l   \         P                  P                  \         P                  ! ^*.4      .R.4      pRpW,          pVP	                  4       '       d   Q h\        V\        V4      4       VP	                  4       '       g   Q h\        \        V4      4      pVP                  V4      '       g   Q hR# )*   intsz	foo # barN)	r   r(   r)   r'   existsr   rP   r   rT   )r   r   rV   pathrX   s   &    r    test_special_chars_filenamerc      s    HH  "((B4.!1F8<EHD{{}}D	";;===SY'JU####r/   c                  `   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! R4       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        P
                  ! R4       RRR4       R#   + '       g   i     LU; i  + '       g   i     R# ; i)Noner   N)r   r   r8   rR   
read_tableParquetFile r/   r    test_invalid_sourceri      sb     
y	/	/
d 
0 
y	/	/
t 
0	/ 
0	/ 
0	/	/s   B	(B	B	B-	c           	         ^ RI Hp  ! R R4      pV R,          p\        P                  ! R. RO/4      p\	        WC4       VP                  RVR7      ;_uu_ 4        \        P                  ! \        RR	7      ;_uu_ 4        \        P                  ! VR.R
7       RRR4       \        P                  ! \        RR	7      ;_uu_ 4        \        P                  ! VRR.R7       RRR4       \        P                  ! \        RR	7      ;_uu_ 4        \        P                  ! W4P                  R7       RRR4       \        P                  ! \        RR	7      ;_uu_ 4        \        P                  ! V 4       RRR4       \        P                  ! V4      pWT8X  g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Ls; i  + '       g   i     R# ; i)r   )mockc                   &   a  ] tR t^t o R tRtV tR# );test_read_table_without_dataset.<locals>.MockParquetDatasetc                    \        R 4      h)MockParquetDataset)ImportError)selfargskwargss   &*,r    __init__Dtest_read_table_without_dataset.<locals>.MockParquetDataset.__init__   s    233r/   rh   N)__name__
__module____qualname____firstlineno__rt   __static_attributes____classdictcell____classdict__s   @r    ro   rm      s     	4 	4r/   ro   test.parquetr   z#pyarrow.parquet.core.ParquetDataset)newzthe 'filters' keywordr   )filtersNzthe 'partitioning' keywordweekcolor)partitioningzthe 'schema' argumentschemathe 'source' argumentr   )integer=r   )unittestrk   r   r   r   patchr   r   r   rR   rf   r   )r   rk   ro   rb   r   results   &     r    test_read_table_without_datasetr      s9   4 4 ^#DHHc9%&E	9?Q	R	R]]:-DEEMM$)<(=> F]]:-IJJMM$fg->? K]]:-DEEMM$||4 F]]:-DEEMM'" Ft$ 
S	REEEJJEEEE 
S	R	Rsl   %G/?F"	,G/F6	 ,G/"G		.,G/G	1&G/"F3-	G/6GG/	GG/G,'G//H 	c                  x    \         P                  ! \        \        R 4      4      .R.R7      p \	        V ^R7       R# )i@  r#   r$   )row_group_sizeN)r   r   listranger   )r+   s    r    (test_file_with_over_int16_max_row_groupsr      s,     	$uU|$%dV4AQq)r/   c                  t   \        ^
R7      p \        P                  P                  V 4      p\        P                  P	                  VP                  4        Uu. uF  q"P                  ^ 4      R,          NK  	  upVP                  P                  R7      pVP                  P                  R4      P                  \        P                  ! 4       8X  g   Q hVP                  P                  R4      P                  \        P                  ! \        P                  ! 4       4      8X  g   Q h\        VRR7       R# u upi )	r;   r<   :Nr   Nr$   null	null_listr>   r   N)r   r   r(   rA   r)   itercolumnschunkr   r%   fieldtyper   list_r   )rF   r   cols      r    test_empty_table_roundtripr      s    	b	!B HH  $EHH  %*%6%6%89%8c1b		%89ll   ! "E <<f%**bggi777<<k*//288BGGI3FFFFu 	:s    D5c                      \         P                  ! 4       p \        P                  P	                  V R R7      p\        V4       R# )F)preserve_indexN)pd	DataFramer   r(   rA   r   )rF   emptys     r    test_empty_table_no_columnsr      s.    	BHH  E :EUr/   c            	      `   \        \        P                  ! 4       \        P                  ! \        P                  ! 4       4      R 7      p . \        ^RR 7      ..pV Uu. uF=  p\        P
                  ! V\        P                  ! V 4      R7      P                  4       NK?  	  ppV Uu. uF8  p\        P                  P                  V\        P                  ! V 4      R7      NK:  	  pp\        P                  P                  V\        P                  ! V 4      4      p\        V4       R# u upi u upi ))int32list_stringr   r   N)G)r   r   r   r   stringr'   structflattenr@   r)   r   r(   rC   r   )colsdatarE   	my_arrays
my_batchestbls         r    1test_write_nested_zero_length_array_chunk_failurer      s    hhjHHRYY[)D 1&9<=D #$"U %biio6>>@"  $  )*(e ..,,U299T?,K(  *
((


BIIdO
<CS$*s   AD&%>D+c                    V R ,          p\         P                  ! R\        P                  ! ^
\        P                  R7      /4      p\        W!4       \        V4      pVP                  4       p\        P                  ! W$4       \        V 4      R ,           p\         P                  ! R\        P                  ! ^
\        P                  R7      /4      p\        W!4       \        V4      pVP                  4       p\        P                  ! W$4       R# )zzzz.parquetxdtypeN)r   r   nparangeint64r   r   	to_pandastmassert_frame_equalrP   )r   rb   rF   rX   df_reads   &    r    test_multiple_path_typesr     s     ]"D	sBIIb9:	;BT"J""$G"& w<-'D	sBIIb9:	;BT"J""$G"&r/   c                    V R ,          p\         P                  ! R. RO/4      p\        W!4       \        P                  ! V4      p\        V4      pVP                  V4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        \        V\        P                  ! 4       R7       RRR4       R#   + '       g   i     R# ; i)r~   r   
filesystemNr   )r   r   r   r   FSProtocolClassr   rT   r   r   r8   r   
FileSystem)r   rb   r   fs_protocol_objr   s   &    r    test_fspathr     s    ^#DHHc9%&E**40O)F== 
y	!	!O@ 
"	!	!	!s   !B66C	r   namec                    \         P                  ! R . RO/4      pW,          p\        P                  ! V\	        V4      4       \
        P                  ! V 4      ;_uu_ 4        \        P                  ! W!R7      pRRR4       XP                  V4      '       g   Q hVP                  4        VP                  4       '       d   Q h\
        P                  ! V 4      ;_uu_ 4        \        P                  ! W2VR7       RRR4       \        P                  ! V4      pVP                  V4      '       g   Q hR#   + '       g   i     L; i  + '       g   i     LT; i)r   r   Nr   )r   r   rR   write_tablerP   r   
change_cwdrf   rT   unlinkra   )r   r   r   r   rb   r   s   &&&   r    test_relative_pathsr   %  s     HHc9%&E>D NN5#d)$		!	!t; 
"==KKM{{}} 
	!	!
uz: 
"]]4 F== 
"	! 
"	!s   !D2 E2E	E	c                      \         P                  ! \        4      ;_uu_ 4        \        P                  ! R 4       RRR4       R#   + '       g   i     R# ; i)zi-am-not-existing.parquetN)r   r   FileNotFoundErrorrR   rf   rh   r/   r    test_read_non_existing_filer   >  s.    	(	)	)
12 
*	)	)	)s   AA	c                       ! R  R\         P                  4      p \        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! V ! R4      4       RRR4       R#   + '       g   i     R# ; i)c                   ,   a  ] tR tRt o R tR tRtV tR# )3test_file_error_python_exception.<locals>.BogusFileiE  c                    \        R 4      hzorglubZeroDivisionErrorrq   rr   s   &*r    read8test_file_error_python_exception.<locals>.BogusFile.readF      #I..r/   c                    \        R 4      hr   r   r   s   &*r    seek8test_file_error_python_exception.<locals>.BogusFile.seekI  r   r/   rh   N)rv   rw   rx   ry   r   r   rz   r{   r|   s   @r    	BogusFiler   E  s     	/	/ 	/r/   r   r   r   r/   N)ioBytesIOr   r   r   rR   rf   )r   s    r     test_file_error_python_exceptionr   D  sE    /BJJ / 
(		:	:
in% 
;	:	:	:s   A%%A6	c                 l   \         P                  ! R . RO/4      p\        P                  ! V\	        V R,          4      4       \        \	        V R,          4      R4      ;_uu_ 4       p\        P                  ! V4      pRRR4       XP                  V4      '       g   Q h\        \	        V R,          4      R4      ;_uu_ 4       p\        P                  ! \         P                  ! V4      4      pRRR4       VP                  V4      '       g   Q hR#   + '       g   i     L; i  + '       g   i     L>; i)r   data.parquetrbNr   )	r   r   rR   r   rP   rQ   rf   rT   
PythonFile)r   r   rW   r   s   &   r    test_parquet_read_from_bufferr   Q  s    HHc9%&ENN5#g678	c'N*+T	2	2aq! 
3==	c'N*+T	2	2ar}}Q/0 
3== 
3	2 
3	2s   &D+D#D 	#D3	c            
          \         P                  ! \        \        \        \        ^d4      4      4      4      p \         P                  ! \        \        \        \        ^d4      4      4      4      p\         P                  ! RR.^2,          4      pW .p\         P                  P                  VRR.R7      p\        WDRRRR7       \        WDRR.R.R7       \        WDRRR.RR.R7       \         P                  P                  W W.. ROR7      p\        WURR	.RR.R
7       \         P                  P                  V.R.R7      p\        P                  ! \        RR7      ;_uu_ 4        \        WDRRR7       RRR4       R#   + '       g   i     R# ; i)r1   TFr   br$   gzip)expectedcompressionr?   use_byte_stream_splitcd)r   r?   r   tmpBYTE_STREAM_SPLIT only supportsr   )r   r   r?   Nr   r   r   r   )r   r'   r   mapfloatr   intr(   r)   r   r   r   IOError)	arr_floatarr_intarr_bool
data_floatr   mixed_tables         r    test_byte_stream_splitr   _  sP   c%s456IhhtCU3Z012Gxxu*+H'JHH  C: >E U$)G
 U%(E,/52
 U%(#J,/:7
 ((&&	g'O-A ' CK[%(#J,/:7 HH  (E7 ;E	w&G	H	Hd(-	/ 
I	H	H	Hs   #E<<F	c                 j   \         P                  ! \        \        \        \        ^d4      4      4      \         P                  ! ^^4      R7      p\         P                  ! \        \        \        \        ^d4      4      4      \         P                  ! ^^	4      R7      p\         P                  ! \        \        \        \        ^d4      4      4      \         P                  ! ^^4      R7      p\         P                  ! RR.^2,          4      pWV.p\         P                  P                  V. ROR7      p\        VVRRRR7       \        P                  P                  V R	4      p\        P                  ! WgRRRR
7       \        P                  ! V4      pVP                   P#                  ^ 4      p	VP                   P#                  ^4      p
V	P$                  R8X  g   Q hV
P$                  R8X  g   Q h\        VVRRRRRRR/R7       \         P                  P                  WW4.. ROR7      p\        VVRRR7       R# )r1   r   TFr   r   r$   r   )r   r   r?   store_decimal_as_integerr~   )r   r?   r   INT32INT64DELTA_BINARY_PACKED)r   r   r?   r   column_encoding)r   r?   r   N)r   r   r   r   )r   r'   r   r   r   r   
decimal128r(   r)   r   osrb   joinrR   r   rg   r   columnphysical_type)r   arr_decimal_1_9arr_decimal_10_18arr_decimal_gt18r   data_decimalr   pqtestfile_path
pqtestfilepqcol_decimal_1_9pqcol_decimal_10_18r   s   &           r    test_store_decimal_as_integerr    s   hhtCs$<=$&MM!Q$79Oc'5:&>!?&(mmB&:<xxS%*%= >%']]2q%9;xxu*+H#8HILHH  _ EE U#!'$).2	4 ggll7N;ONN5%"',02
 0J"))003$++2215**g555,,777 U#!'$).233& ((&&	-=H" ' $K [)$).24r/   c                  n	   \         P                  ! \        \        \        \        ^d4      4      4      4      p \         P                  ! \        \        \        \        ^d4      4      4      4      p\         P                  ! \        ^d4       Uu. uF  p\        V4      NK  	  up\         P                  ! 4       R7      p\         P                  ! \        ^d4       Uu. uF  p\        V4      P                  ^
4      NK  	  up\         P                  ! ^
4      R7      p\         P                  ! . RO^,          4      p\         P                  P                  WW4V.. ROR	7      p\        WfRRR
RR
RRRR
/R7       \        WfRRR7       \        WfRRRRRRR/R7       \        WfRRRRRRR/R7       \        WfRRRRRRRRR/R7       \        WfRRR/R7       \        P                  ! \        RR7      ;_uu_ 4        \        WfRRRRRRR
/R7       RRR4       \        P                  ! \         RR7      ;_uu_ 4        \        WfRRRRRRR/R7       RRR4       \        P                  ! \"        RR7      ;_uu_ 4        \        WfRRR7       RRR4       \        P                  ! \"        RR7      ;_uu_ 4        \        WfRRR/R7       RRR4       \        P                  ! \"        4      ;_uu_ 4        \        WfR.RR/R7       RRR4       \        P                  ! \"        4      ;_uu_ 4        \        WfRR/R7       RRR4       \        P                  ! \"        4      ;_uu_ 4        \        WfRR.RRRR
RR/R7       RRR4       \        P                  ! \"        4      ;_uu_ 4        \        WfRRRRRR
RR/R7       RRR4       \        P                  ! \$        4      ;_uu_ 4        \        WfRRR7       RRR4       R# u upi u upi   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELa; i  + '       g   i     EL;; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)r1   r   FTr   r   r   r   er$   BYTE_STREAM_SPLITPLAIN)r   r?   r   r   DELTA_LENGTH_BYTE_ARRAYDELTA_BYTE_ARRAYRLEr   r   Nz)DELTA_BINARY_PACKED encoder only supportsz+'RLE_DICTIONARY' is already used by defaultRLE_DICTIONARYz/Unsupported column encoding: 'MADE_UP_ENCODING'MADE_UP_ENCODING)r   r   )r   r?   r   r   )FTFF)r   r   r   r   r  )r   r'   r   r   r   r   r   rP   binaryzfillr(   r)   r   r   r   r   OSErrorr   r8   )r   r   r   arr_binarr_flbar   r   s          r    test_column_encodingr    s   c%s456IhhtCU3Z012Ghhc
3
1A
3"))+FGxx#(:.:aQb	:.RYYr]DHxx3b89H((&&	W9' ' )K [u&)+>&)+>&)7&)+>&@A [$)%,.
 [$)&)7&)+@&)7&45 [$)&)7&)+@&)+D&FG [$)&)7&)+@&)+=&)+=&?@ [$)&)5\3 
w>
@ 
@(-*-w*-w*-/B*D	E
@ 
wH
J 
J(-*-/D*-w*-w*8	9
J 
zJ
L 
L(-)9	;
L 
zN
P 
P(-*-/A)B	D
P 
z	"	"),*-w	9 
# 
z	"	"*-w	9 
# 
z	"	"(-03u*-u*-/B*-w*8	9 
# 
z	"	"(-/3*-u*-/B*-w*8	9 
# 
y	!	!(-)-	/ 
"	!o 4.`
@ 
@ 
@
J 
J 
J
L 
L 
L
P 
P 
P 
#	"	" 
#	"	" 
#	"	" 
#	" 
"	!	!sx   
O:#O?2P3P4P,/Q *Q&Q( Q<!R!R#P	P)	,P=	 Q	Q%	(Q9	<R	R 	#R4	c            
      b   \         P                  ! \        \        \        \        R 4      4      4      4      p W .p\         P                  P                  VRR.R7      p\        W"R^R7       \        W"R^R7       \        W"RRRR/R7       \        W"RR^R^/R7       \        W"R^R7       \        W"R^	R7       . ROp\        P                  ! 4       pV FD  w  rV\        P                  ! \        \        34      ;_uu_ 4        \        W$VVR	7       R
R
R
4       KF  	  R
#   + '       g   i     K[  ; i)  r   r   r$   r   )r   r   compression_levelsnappyr   r   lz4)r   r  N))r     )r   i)re   i  )lzo   )r   r'   r   r   r   r   r(   r)   r   r   r   r   r   r   r  r   )r*   r   r   invalid_combinationsbufcodeclevels          r    test_compression_levelr)  ;  s   
((4Ct-.
/C:DHH  c3Z 8E U'(*
 U'(* U"%vsH!=? U(+QQ'79
 U'(* U'(*8
**,C.]]J011+02 21 /111s    DD.c            
          \         P                  ! \        \        \        \        R 4      4      4      4      p \         P                  P                  W .RR.R7      p\        WRR7       \        WRR7       R# )r  r   r   r$   lz4_rawr   LZ4_RAWN)	r   r'   r   r   r   r   r(   r)   r   )r*   r   s     r    test_lz4_raw_compression_aliasr-  h  sS    
((4Ct-.
/CHH  #C: >EU	BU	Br/   c                     \         P                  ! \        \        \        \        ^d4      4      4      4      p \         P                  ! \        ^d4       Uu. uF  p\        V4      NK  	  up\         P                  ! 4       R7      pW.p\         P                  P                  VRR.R7      p\        WDRR^dRR//R7       \        WDRR^dRR/RR^
RR	//R7       \        WDRRR//R7       \        WDRR^d//R7       \        WDR/ /R7       \        WDRR
/R7       \        WDRR/R7       \        P                  ! 4       pRp\        P                  ! \        VR7      ;_uu_ 4        \!        WERRRRR//R7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \!        WERR^dRR//R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \!        WER
R7       RRR4       Rp\        P                  ! \"        VR7      ;_uu_ 4        \!        WERRR//R7       RRR4       Rp\        P                  ! \"        \$        P&                  ! V4      R7      ;_uu_ 4        \!        WERRR//R7       RRR4       Rp\        P                  ! \"        \$        P&                  ! V4      R7      ;_uu_ 4        \!        WERRR//R7       RRR4       R# u upi   + '       g   i     EL|; i  + '       g   i     ELN; i  + '       g   i     EL(; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r1   r   r   r   r$   ndvfppg?)r   bloom_filter_options皙?TFz8'bloom_filter_options:ndv' for column 'a' must be an intr   100)r1  Nz9'bloom_filter_options:fpp' for column 'a' must be a floatz0.05z+'bloom_filter_options' must be a dictionaryzL'bloom_filter_options:ndv' for column 'a' must be greater than zero, got -10zH'bloom_filter_options:fpp' for column 'a' must be in (0.0, 1.0), got 2.0g       @zI'bloom_filter_options:fpp' for column 'a' must be in (0.0, 1.0), got -0.5ig      )r   r'   r   r   r   r   rP   r  r(   r)   r   r   r   r   r   r8   r   r   reescape)r   r   r  r   r   r&  expects          r    test_bloom_filter_optionsr7  p  s   hhtCU3Z012Ghhc
3
1A
3"))+FGDHH  c3Z 8E U5#ud3B5 6 U5#ud3S5"eS:QBS T U5$-B) * U5#,B( ) U"B U$B  ! U%B! " **,CGF	y	/	/U5%577 	8 
0
 IF	y	/	/U5#uf577 	8 
0
 
y(U	V	VUd; 
W
 	W 	z	0	0U5#,7( 	) 
1
 XF	z6):	;	;U5#,7( 	) 
< YF	z6):	;	;U5$-7) 	* 
<	;y 4B 
0	/	/ 
0	/	/
 
W	V	V 
1	0 
<	; 
<	;	;sN   K" K'"K;"LL#2L6M	'K8	;L	L 	#L3	6M		M	c                      \         P                  ! . RO4      p Rp\         P                  P                  V .V.4      p\	        VRR/R7      pRpVP
                  ^ ,          P                  V8X  g   Q hR# )r   zprohib; ,	{}flavorspark)write_table_kwargsprohib______N)r   r   r   r   r"  )r   r'   r(   r)   r	   r   r   )a0r   r   r   expected_names        r     test_sanitized_spark_field_namesr?    sb    	/	"BDHH  "v.Ee78KLF"M==  M111r/   c                  L   \        R R7      p \        P                  P                  V 4      p\        P
                  ! 4       p\        WRRR7       VP                  ^ 4       \        VRR7      pVP                  ^ 4       \        VRR7      pVP                  V4      '       g   Q hR# )	i'  r<   SNAPPYr>   )r   r   T)use_threadsFN)
r   r   r(   rA   r   r   r   r   r   rT   )rF   r   r&  table1table2s        r    test_multithreaded_readrE    sz    	e	$BHH  $E
**,C5AHHQK$/FHHQK%0F==    r/   c                     \         P                  ! \        P                  ! ^4      .. ROR7      p \        P
                  P                  V P                  4       4      p\        P                  ! 4       p\        WRR7       VP                  ^ 4       \        V4      pVP                  V4      '       g   Q h\        P                  ! \         4      ;_uu_ 4        \        W^ R7       RRR4       R#   + '       g   i     R# ; i)r"  )columns)
chunk_sizeN)ABCD)r   r   r   r   r   r(   rA   reset_indexr   r   r   r   r   rT   r   r   r   )r   r   r&  r   s       r    test_min_chunksizerO    s    <<10DEDHH  !1!1!34E
**,C+HHQKF==	z	"	"UA. 
#	"	"	"s   C..C?	c                    \         P                  ! R \        R4      R\        \        ^^4      4      R\        P
                  ! ^^4      P                  R4      R\        P
                  ! RRRR	7      R
. ROR\         P                  ! \        R4      4      R\         P                  ! R^R7      R\         P                  ! R^RR7      R\         P                  ! R^RR7      /	4      p\        P                  P                  V4      pV R,          p \        W#RR7       VP                  4       '       d   Q hR#   \        P                   d     L1i ; i)r   abcr   r   u1r         @      @float64r   r  rW   g20130101periodshz
US/Eastern)rY  tzins)rY  freqrM   r2   r   NTFT)r   r   r   r   r   r   astypeCategorical
date_ranger   r(   rA   r   ArrowExceptionra   )r   rF   pdfrV   s   &   r    (test_write_error_deletes_incomplete_filere    s    
sDKDq!-BIIaO2248BIIc3i@/BNN4;7BMM*a@BMM*a-9;BMM*adK	M 	
NB ((

r
"C#H 	SE2        s   D3 3E
Ec                     R p \         P                  ! V4       R#   \         d%   pYP                  ^ ,          9   g   Q h Rp?R# Rp?ii ; i)znonexistent-file.parquetN)rR   rf   	Exceptionrr   )r   rb   r  s   &  r    test_read_non_existent_filerh    s<    %D!
d !vvay   !s    AAAc                     \         P                  ! 4       ;_uu_ 4        \         P                  ! R R7       \        P                  ! V R,          4       RRR4       R#   + '       g   i     R# ; i)error)actionzv0.7.1.parquetN)warningscatch_warningssimplefilterrR   rf   )datadirs   &r    test_read_table_doesnt_warnrp    s@    		 	 	"	"W-
g 001 
#	"	"	"s   5AA.	c                     \         P                  P                  \         P                  ! R R.4      .R.4      p \        P
                  ! 4       p\        P                  ! WRR7       VP                  ^ 4       \        P                  ! V4      p\        P                  ! VP                  4       V P                  4       4       R# )rQ  defsome_colr   r   N)r   r(   r)   r'   r   r   rR   r   r   rf   r   r   r   )r   rW   	roundtrips      r    test_zlib_compression_bugrv  
  s~     HH  "((E5>":!;j\JE


ANN50FF1Ia I)--/1BCr/   c           	         \        V R ,          4      p\        P                  ! \        P                  RR7      ;_uu_ 4        \        VR4      ;_uu_ 4       p RRR4       \        P                  ! V4       RRR4       \        P                  ! \        P                  RR7      ;_uu_ 4        \        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  ! V4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     LV; i  + '       g   i     R# ; i)r~   zsize is 0 bytesr   rN   Nzsize is 4 bytess   ffff)	rP   r   r   r   ArrowInvalidrQ   rR   rf   write)r   rb   rW   s   &  r    test_parquet_file_too_smallrz    s    w'(D	r.?	@	@$ 
d 
A
 
r.?	@	@$GGG 
d 
A	@	  
A	@  
A	@	@sH   DC;	D,D4D!	D4;DDD	!D1,D44E	zignore:RangeIndex:FutureWarningz.ignore:tostring:DeprecationWarning:fastparquetz$ignore:unclosed file:ResourceWarningc                 `   \         P                  ! R 4      p\        P                  ! R\	        R4      R\	        \        ^^4      4      R\        P                  ! RRRR7      R	. ROR
\        P                  ! R^R7      R\        P                  ! . RO4      /4      p\        P                  ! V4      p\        V R,          4      p\        P                  ! W4RR7       VP                  V4      pVP!                  4       p\"        P$                  ! WbP'                  R\(        /4      4       \        V R,          4      pVP+                  WrP'                  R\(        /4      4       \        P,                  ! V4      p\"        P$                  ! VP!                  4       VP'                  R\(        /4      4       R# )fastparquetr   rQ  r   r   rS  rT  rU  r   r   r  rW  rX  rW   zcross_compat_arrow.parquetNrt  z cross_compat_fastparquet.parquetr_  )r   r   r   )r   importorskipr   r   r   r   r   r   rb  ra  r   r   rP   rR   r   rg   r   r   r   r`  objectry  rS   )	r   fprF   r   
file_arrowfp_filedf_fpfile_fastparquettable_fps	   &        r    $test_fastparquet_cross_compatibilityr  #  sB    
		]	+B	eeAqk"395$z150		

B HHRLE W;;<JNN5$7nnZ(GE %C=!9: 7%GGHHHyy#v78~~./H (,,.		3-0HIr/   array_factoryc                  @    \         P                  ! ^ R.^
,          4      # r   Nr   r'   rh   r/   r    <lambda>r  O  s    BHHaY^$r/   c                  \    \         P                  ! ^ R.^
,          4      P                  4       # r  r   r'   dictionary_encoderh   r/   r    r  r  P  s    BHHaY^$668r/   c                  @    \         P                  ! R R.^
,          4      #  Nr  rh   r/   r    r  r  Q  s    BHHb$Z"_%r/   c                  \    \         P                  ! R R.^
,          4      P                  4       # r  r  rh   r/   r    r  r  R  s    BHHb$Z"_%779r/   read_dictionaryFTc                    \         P                  P                  R V ! 4       /4      p\        P                  ! 4       p\
        P                  ! W#RR7       VP                  ^ 4       V'       d   R .MRp\
        P                  ! VRVR7      pVP                   FP  pVP                  w  pVP                  4       ^,          pVP                  4       VP                  R,          8X  d   KP  Q h	  R# )r   T)r?   NF)rB  r      )r   r(   from_pydictr   r   rR   r   r   rf   rG  chunksbuffers
to_pybytesr=   )r  r  
orig_tablebior   r   r   r&  s   &&      r    test_buffer_contentsr  N  s     %%umo&>?J
**,CNN:48HHQK!0ugdOMM#5*9;E }}**mmoa ~~388e#3333 r/   c                    \         P                  ! \         P                  ! \        ^4      4      .R.R7      pV R,          p\        P
                  ! WRR7       \        P                  ! V4      pVP                  V4      '       g   Q hR# )r"  r`   r$   zarrow-10480.pyarrow.gzGZIPrt  N)r   r   r'   r   rR   r   rf   rT   )r   r   rb   r   s   &   r    "test_parquet_compression_roundtripr  i  sb    
 HHbhhuQx()&:E--DNN5F3]]4 F==r/   c                 4   \         P                  P                  \         P                  ! . R R7      .R.4      pV R,          p^p\        P
                  ! W!P                  4      ;_uu_ 4       p\        V4       F  pVP                  V4       K  	  RRR4       \        P                  ! V4      pVP                  P                  V8X  g   Q h\        V4       F+  pVP                  V4      P                  V4      '       d   K+  Q h	  R#   + '       g   i     L; i)r   r   r#   zempty_row_groups.parquetN)r   r(   r)   r'   rR   ParquetWriterr   r   r   rg   metadatanum_row_groupsread_row_grouprT   )r   r   rb   
num_groupswriterr\  readers   &      r    test_empty_row_groupsr  u  s    HH  "((2G"<!=vFE//DJ			$	-	-z"Au% # 
. ^^D!F??))Z777:$$Q'..u5555  
.	-s   ,$DD	c                     R .R,          pVP                  ^.4       \        P                  P                  V.R.4      pV R,          p\        P
                  ! W#4       \        P                  ! V4      pW$8X  g   Q hR # )Nr  zarrow-11607.parqueti   )rB   r   r(   r)   rR   r   rf   )r   r   r   rb   rD  s   &    r    test_reads_over_batchr    sg    6WDKK HH  $(4E**DNN5]]4 F??r/   c                    V R ,          pVP                  RR7       \        P                  ! . R	O. R
O.RR.R7      p\        P                  ! W!R,          4       \        P                  ! . RO. RO.RR.R7      p\        P                  ! W1R,          4       \        P
                  ! \        V4      4      p\        P                  ! . RO. RO.RR.R7      pWE8X  g   Q hR# ) dataset_column_order_permutationT)exist_okr   r   r$   zdata1.parquetzdata2.parquetNr   )r2  皙?333333?)皙?      ?333333?)r"        )r   r   r   r"  r  r  )r2  r  r  r  r  r  )mkdirr   r   rR   r   rf   rP   )r   casedata1data2r   rD  s   &     r     test_permutation_of_column_orderr    s    77DJJJHHi.sCjAENN501HHlI.sCjAENN501MM#d)$EXX)57 #J(F ??r/   c                 ^   V R ,          p\         P                  ! \        \        ^
4      4      4      pRp\         P                  ! V.V,          \        V4       Uu. uF  pRV 2NK
  	  upR7      p\
        P                  ! WQ4       \        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! V^2V,          R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! WR7       RRR4       \
        P                  ! V^dV,          R7      pWe8X  g   Q h\
        P                  ! V^V,          R7      pWe8X  g   Q h\
        P                  ! V4      pWe8X  g   Q hR# u upi   + '       g   i     L; i  + '       g   i     L; i)	zlargethrift.parquetr  some_long_column_name_r$   z1Couldn't deserialize thrift:.*Exceeded size limitr   )thrift_string_size_limitN)thrift_container_size_limit)r   r'   r   r   r   rR   r   r   r   r  rf   )r   rb   r'   num_colsr\  r   gots   &      r    test_thrift_size_limitsr    sE   **DHHT%)_%EHHH	(5:8_E_'s+_EGE NN5	E
G 
G 	dR(]C
G 
E
G 
G 	dA
G
 --sX~
FC<<
--!h,
GC<<
--
C<<# F
G 
G
G 
Gs   F
* F	6F	F	F,	c                (   V R,          p\         P                  ! R. RO/4      p\        P                  ! W!RR7       \        P                  ! VRR7      pW#8X  g   Q h\        VP                  4       4      pV^,          V^$,          8w  g   Q hV^$,          V^,          uV^&   V^$&   V R,          pVP                  V4       \        P                  ! VRR7      pWb8w  g   Q hV\         P                  ! R. RO/4      8X  g   Q h\        P                  ! \        RR	7      ;_uu_ 4        \        P                  ! VRR7      pR
R
R
4       \        P                  ! VRR7      pVP                  4       p	W8w  g   Q hV	\         P                  ! R. RO/4      8X  g   Q h\        P                  ! VRR7      p\        P                  ! \        RR	7      ;_uu_ 4        VP                  4       pR
R
R
4       R
#   + '       g   i     L; i  + '       g   i     R
# ; i)zQCheck that checksum verification works for datasets created with
pq.write_table()zcorrect.parquetr   Twrite_page_checksumpage_checksum_verificationzcorrupted.parquetFCRC checksum verificationr   Nr   r   r   r"  r   r   r   r"  )r   r   rR   r   rf   	bytearray
read_byteswrite_bytesr   r   r  rg   r   )
r   original_path
table_origtable_checkbin_datacorrupted_pathtable_corruptrG   corrupted_pq_filetable_corrupt2s
   &         r    +test_page_checksum_verification_write_tabler    s   
 //M3-.JNN:$G --$OK$$$
 1134H B<8B<'''!)"x|HRL(2, 22Nx( MM.=BDM &&&BHHc<%89999 
w&A	B	BMM.TJ 
C
 ~BGI&++-N'''RXXsL&9:::: ~BFH 
w&A	B	B""$ 
C	B! 
C	B  
C	B	Bs   $G-H -G=	 H	c                Z   \         P                  ! R. RO/4      pV R,          p\        P                  ! VVRR7       \	        VP                  4       4      p\        V4      ^8X  g   Q hV^ ,          p\        P                  ! VRR7      pW8X  g   Q h\        VP                  4       4      pV^,          V^$,          8w  g   Q hV^$,          V^,          uV^&   V^$&   V R,          p\        W'4       WtP                  ,          pVP                  V4       \        P                  ! VRR7      p	W8w  g   Q hV	\         P                  ! R. RO/4      8X  g   Q h\        P                  ! \        RR	7      ;_uu_ 4        \        P                  ! VRR7      p
R
R
R
4       R
#   + '       g   i     R
# ; i)zTCheck that checksum verification works for datasets created with
pq.write_to_datasetr   correct_dirTr  r  corrupted_dirFr  r   Nr  r  )r   r   rR   write_to_datasetr   iterdirlenrf   r  r  r   r   r  r   r   r  )r   r  original_dir_pathoriginal_file_path_listr  r  r  corrupted_dir_pathcorrupted_file_pathr  rG   s   &          r    test_checksum_write_to_datasetr    s}   
 3-.J  -/
),02
 ##4#<#<#>?&'1,,,+A.M--$OK$$$
 1134H B<8B<'''!)"x|HRL(2, !?23,/A/AA##H- MM"5=BDM &&&BHHc<%89999 
w&A	B	BMM-$O 
C	B	B	Bs   6FF*	sourcez/tmp/z/tmp/file1.parquetz/tmp/file2.parquetc                     V P                  \        P                  R R4       \        P                  ! \
        RR7      ;_uu_ 4        \        P                  ! VR7       RRR4       R#   + '       g   i     R# ; i)zpyarrow.datasetNr   r   )r  )setitemsysmodulesr   r   r   rR   rf   )monkeypatchr  s   &&r    9test_read_table_raises_value_error_when_ds_is_unavailabler  2  sI     %6=	z)@	A	A
V$ 
B	A	A	As   A((A9	)r   u   例.parquet)Yr   r  collectionsr   r   r4  rl  shutilr   decimalr   r   pyarrowr   r   pyarrow.testsr   pyarrow.tests.parquet.commonr   r	   r
   pyarrow.parquetparquetrR   r   r   rp   pandasr   pandas.testingtestingr   pyarrow.tests.pandas_examplesr   r   numpyr   mark
pytestmarkr!   r.   r5   r9   rH   rY   r]   rc   ri   r   slowr   r   r   r   r   r   parametrizeLocalFileSystemr   r   r   r   r   r  r  r)  r-  r7  r?  rE  rO  re  rh  rp  rv  rz  r|  filterwarningsr  r  r  r  r  r  r  r  datasetr  r  rh   r/   r    <module>r     sB  $ 
 
 # 	 	       7 7 F
B< [[  
.=   ; ; 3 3$ $ $ $ $$0 * *    8 ' '$A  "


(  !@A  B *3
& #/L34l}/@*2ZC@*F2 ! !" / /  ! !4!2 D D
 =>LMBC#J D N ?  
#JL $8%9	+  *UDM:4 ;4(	 6$&67%t 1P 1Ph w-/CDEG%G%]   	B  NB
  	Bs6   N0 O  ,O 0	N=<N= OO	OO