+
    nDjTl                        ^ RI t ^ RIt^ RIHt ^ RIt ^ RIt^ RIt^ RI	t
^ RIHtHt ^ RIHt ^ RIHt  ^ RIHt ^ RIHt  ^ RIt^ RIHt ^ RIHt ]P8                  P&                  t]P8                  P,                  R 4       tR	 t]P8                  P,                  ]P8                  PA                  R:. R;O]
PB                  ! 4       R
^^^^R3. R;O]
PD                  ! 4       R
^^^^R3. R;O]
PF                  ! 4       R
^^^^R3. R;O]
PH                  ! 4       R^^^^R3. R=O]
PJ                  ! 4       R
R<^^^R3. R=O]
PL                  ! 4       R
R<^^^R3. R=O]
PN                  ! 4       R
R<^^^R3. R=O]
PP                  ! 4       RR<^^^R3. R?O]
PR                  ! 4       RR>R^^R3. R?O]
PT                  ! 4       RR>R^^R3RR]+! R4      RR.]
PX                  ! 4       RR]+! R4      P[                  R4      ^^R3. R@O]
P\                  ! 4       RRR^ ^R3. RAO]
PX                  ! 4       RRR^^R3.4      R 4       4       t/R t0]P8                  P,                  R 4       t1R t2R t3R  t4R! t5R" t6R# t7R$ t8]P8                  P,                  R% 4       t9R& t:]P8                  Pw                  R'4      R( 4       t<R) t=]P8                  P,                  R* 4       t>]P8                  P,                  R+ 4       t?R, t@]P8                  P                  ]P8                  P                  R- 4       4       tCR. tDR/ tE]P8                  PA                  R0R1]F! ^
4      /R1]F! ^
4      /R3R1]F! ^
4      /R2]F! ^
4      /R33R1]F! ^
4      R2]F! ^
4      /R4]F! ^
4      /R5334      R6 4       tG]P8                  P                  R7 4       tIR8 tJR9 tKR#   ] d    Rt ELi ; i  ] d    Rt ELi ; i  ] d	    R;tt ELi ; i)B    N)OrderedDict)_check_roundtripmake_sample_file)LocalFileSystem)util)_write_table)alltypes_samplec                  0   \        R R7      p V P                  \        V P                  4      R7      p \        P
                  P                  ^ R\        V 4      R7      V n        \        V 4      p\        V P                  4      pVP                  p\        V4       VP                  \        V 4      8X  g   Q hVP                  V^,           8X  g   Q hVP                  ^8X  g   Q hVP                  R8X  g   Q hRVP                   9   g   Q h\#        VP$                  \&        4      '       g   Q h\#        VP                  \(        4      '       g   Q hVP*                  pVP*                  VJ g   Q h\        V4      V^,           8X  g   Q h\        V4       V^ ,          p\        V4       VP,                  V P                  ^ ,          8X  g   Q hVP.                  ^8X  g   Q hVP0                  ^ 8X  g   Q hVP0                  ^ 8X  g   Q hVP2                  R8X  g   Q hVP4                  R8X  g   Q hV^,          pVP6                  P8                  R8X  g   Q h\:        P<                  ! \>        4      ;_uu_ 4        WB^,           ,           R	R	R	4       \:        P<                  ! \>        4      ;_uu_ 4        VR,           R	R	R	4       \A        VP                  4       F  pVPC                  V4      p\#        V\D        PF                  4      '       g   Q h\        V4       \A        VP                  4       FA  pVPI                  V4      p	\#        V	\D        PJ                  4      '       g   Q h\        V	4       KC  	  K  	  \:        P<                  ! \>        4      ;_uu_ 4        VPC                  R4       R	R	R	4       \:        P<                  ! \>        4      ;_uu_ 4        VPC                  VP                  ^,           4       R	R	R	4       VPC                  ^ 4      pVP                  \        V 4      8X  g   Q hVP                  V^,           8X  g   Q hVPL                  ^ 8  g   Q h\:        P<                  ! \>        4      ;_uu_ 4        VPI                  R4      p	R	R	R	4       \:        P<                  ! \>        4      ;_uu_ 4        VPI                  V^,           4      p	R	R	R	4       VPI                  ^ 4      p	V	PN                  ^ 8X  g   Q hV	PP                  R
8X  g   Q hV	P2                  R8X  g   Q hV	PR                  R 8X  g   Q hV	PT                  R8X  g   Q hV	PV                  RJ g   Q h\#        V	PX                  \D        PZ                  4      '       g   Q hV	P\                  R8X  g   Q h\_        V	P`                  4      RR08X  g   Q hV	Pb                  RJ g   Q hV	Pd                  e   Q hV	Pf                  ^ 8  g   Q hV	Ph                  ^ 8  g   Q hV	Pj                  ^ 8  g   Q h\:        P<                  ! \l        4      ;_uu_ 4        V	Pn                   R	R	R	4       \:        P<                  ! \l        4      ;_uu_ 4        V	Pp                   R	R	R	4       R	#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL	; i  + '       g   i     EL; i  + '       g   i     ELN; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R	# ; i)'  sizecolumnsi@B 2.6zparquet-cppBOOLEANNONEFLOAT16N boolTSNAPPYPLAINRLEF)9r	   reindexsortedr   nprandomrandintlenindexr   metadatareprnum_rowsnum_columnsnum_row_groupsformat_version
created_by
isinstanceserialized_sizeintdictschemanamemax_definition_levelmax_repetition_levelphysical_typeconverted_typelogical_typetypepytestraises
IndexErrorrange	row_grouppqRowGroupMetaDatacolumnColumnChunkMetaDatatotal_byte_sizefile_offset	file_path
num_valuespath_in_schemais_stats_set
statistics
Statisticscompressionset	encodingshas_dictionary_pagedictionary_page_offsetdata_page_offsettotal_compressed_sizetotal_uncompressed_sizeNotImplementedErrorhas_index_pageindex_page_offset)
dffilehncolsmetar,   colcol_float16rgrg_metacol_metas
             ]/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/parquet/test_metadata.pytest_parquet_metadata_apirZ   7   sv   	e	$B	F2::.	/Byy  G#b' :BHR E

OE >>DJ==CG###uqy(((!###%'''DOO+++d**C0000dmmT**** \\F;;&   v;%!)###L
)CI88rzz!}$$$##q(((##q(((##q(((	)))''')K##((I555	z	"	"qy 
# 
z	"	"r
 
# D''(..$'2#6#67777W,,-C~~c*Hh(>(>????N . ) 
z	"	"r 
# 
z	"	"t**Q./ 
# nnQGs2w&&&%!)+++""Q&&&	z	"	">>"% 
# 
z	"	">>%!), 
# ~~a H1$$$###!!Y...%'''""f,,,  D(((h))2==99998+++x!!"w&6666''5000**222$$q((())A---++a///	*	+	+ 
,	*	+	+"" 
,	+g 
#	"	" 
#	"	" 
#	"	" 
#	"	" 
#	"	" 
#	"	"$ 
,	+	+	+	+s`   -Y9'
ZZ!#Z52[	.[+[1"\9Z
	Z	!Z2	5[		[	[.	1\	\	c                    \         P                  ! R . RO/4      p\        P                  ! WR,          4       \        P                  ! V R,          4      pVP
                  P                  ^ 4      P                  ^ 4      P                   R# )aztest_metadata_segfault.parquetN         )	patabler9   write_tableParquetFiler!   r8   r;   rC   )tempdirrb   parquet_files   &  rY   test_parquet_metadata_lifetimerg      s`    HHc9%&ENN5$DDE>>',L"LML##A&--a0;;    INT32INT64皙@FLOATDOUBLEr   b  aaa
BYTE_ARRAYrh   zutf-8TFr          bc                    \         P                  ! R V /4      p\        P                  ! \        P                  ! R V4      .4      p	\        P
                  P                  WRR7      p
\        V
4      pVP                  pVP                  ^ 4      pVP                  ^ 4      pVP                  pVP                  '       g   Q h\        WP                  V4      '       g   Q h\        WP                  V4      '       g   Q hVP                   V8X  g   Q hVP"                  V8X  g   Q hVP$                  V8X  g   Q hVP&                  V8X  g   Q hR# )dataF)r,   safeN)pd	DataFramera   r,   fieldTablefrom_pandasr   r!   r8   r;   rC   has_min_max_closeminmax
null_countr@   distinct_countr0   )ru   r3   r0   	min_value	max_valuer   r@   r   rP   r,   rb   rQ   rS   rW   rX   stats   &&&&&&&&        rY   "test_parquet_column_statistics_apir      s   \ 
vtn	%BYY./0FHH   ?EU#E>>DnnQG~~a HD$),,,,$),,,,??j(((??j((( .000...rh   c                     V \         P                  ! 4       8X  d   \        W,
          4      R 8  # V \         P                  ! 4       8X  d   \        W,
          4      R8  # W8H  # )gHz>gvIh%<=)ra   float32absfloat64)r3   leftrights   &&&rY   r}   r}      sJ    rzz|4< 4''		4< 5((}rh   c                     \         P                  ! R \         P                  ! \         P                  .RR7      /4      p \	        \
        P                  P                  V 4      4      P                  pVP                  ^ 4      P                  ^ 4      P                  P                  '       d   Q hVP                  ^ 4      P                  ^ 4      P                  P                  e   Q hR# )tzdatetime64[ns])dtypeN)rw   rx   SeriesNaTr   ra   rz   r{   r!   r8   r;   rC   r|   r   )rP   rS   s     rY   &test_parquet_raise_on_unset_statisticsr      s    	sBIIrvvh6FGH	IBBHH0045>>D~~a ''*55AAAAA>>!##A&1155===rh   c                    ^
R\         P                  ! 4       3^
R\         P                  ! 4       3RR\         P                  ! 4       3\        P
                  ! ^
^^ R4      \        P
                  ! ^^^ R4      \         P                  ! R4      3\        P
                  ! ^
^^ R4      \        P
                  ! ^^^ R4      \         P                  ! R4      3\        P                  ! R^^^ ^ ^ R4      \        P                  ! R^^^ ^ ^ R4      \         P                  ! R4      3\        P                  ! R^^^ ^ ^ R4      \        P                  ! R^^^ ^ ^ R4      \         P                  ! R4      3\        P                  ! R^^4      \        P                  ! R^^4      \         P                  ! 4       3\        P                  ! R	4      \        P                  ! R
4      \         P                  ! ^^4      3.	p\        V4       F  w  pw  r4p\         P                  P!                  \         P"                  ! W4.VR7      .R.4      p\%        V RV R2,          4      p\&        P(                  ! WgRR7       \&        P*                  ! V4      pVP,                  P/                  ^ 4      P1                  ^ 4      P2                  p	V	P4                  V8X  g   Q hV	P6                  V8X  d   K  Q h	  R# )
   l   5f|~W	 l    u   ähnlichu   öffentlichro   msusi  z20.123z20.124r3   rT   examplez.parquetr   versionN)ra   uint64uint32utf8datetimetimetime32time64	timestampdatedate32decimalDecimal
decimal128	enumeraterz   from_arraysarraystrr9   rc   rd   r!   r8   r;   rC   r~   r   )
re   casesimin_valmax_valtypr   pathpfstatss
   &         rY   %test_statistics_convert_logical_typesr      sO    &		4*biik*-3mmBAt,hmmBAt.LiiommBAt,hmmBAt.LiioaQ1d;aQ1d;ll4 " aQ1d;aQ1d;ll4 " mmD!R(mmD!R(iik ooh'ooh'mmB"$!%E( '0&6""GcHH  "((G+=C"H!I"'*7wqc223
q.^^D!%%a(//2==yyG###yyG### '7rh   c           
         \         P                  P                  \        R \         P                  ! . R	O4      3R\         P                  ! . R
O4      3.4      4      p\        WR,          4       \        P                  ! V R,          4      pR FE  pVP                  ^ 4      P                  V4      pVP                  RJ g   Q hVP                  e   KE  Q h	  \        WR,          RR7       \        P                  ! V R,          4      pR FE  pVP                  ^ 4      P                  V4      pVP                  RJ g   Q hVP                  f   KE  Q h	  \        WR,          R .R7       \        P                  ! V R,          4      pVP                  ^ 4      P                  ^ 4      pVP                  ^ 4      P                  ^4      pVP                  RJ g   Q hVP                  RJ g   Q hVP                  f   Q hVP                  e   Q hR# )r\   rn   data.parquetTNzdata2.parquetF)write_statisticszdata3.parquetr]   r\   rn   c)r   r^   )ra   rz   from_pydictr   r   r   r9   read_metadatar8   r;   rB   rC   )re   rb   rS   rT   cccc_acc_bs   &      rY   %test_parquet_write_disable_statisticsr     s   HH  "((9%&"((?+,
 	E .01Gn45D^^A%%c*$&&&}}((( 
 /1EJGo56D^^A%%c*%'''}}$$$ 
 /1SEJGo56D>>!##A&D>>!##A&D$$$%%%??&&&??"""rh   c                     \         P                  ! ^
4      p V P                  4       R^
RRRR/8X  g   Q h\         P                  ! ^ RRR7      p V P                  4       R^ RRRR/8X  g   Q h\        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3.4      p\         P                  ! ^RR	7      \         P                  ! ^ RR	7      3p\         P                  P                  W4      w  r4VR8X  g   Q hVR
8X  g   Q h\         P                  P                  WV4      pWR8X  g   Q h\         P                  P                  VRRR7      p\         P                  ! ^ RRR7      \         P                  ! ^RRR7      3pW&8X  g   Q h\         P                  P                  VR4      pVR8X  g   Q h\         P                  P                  VR4      R8X  g   Q h\        P                  ! \        4      ;_uu_ 4        \         P                  P                  VR4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \         P                  ! ^RR7      \         P                  ! ^ RR7      3p\         P                  P                  W4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   column_index
descendingFnulls_firstT)r   r   r\   rn   r   at_endat_start)null_placementNzinconsistent null placementmatch)r   )rn   r   )r\   	ascending)r\   r    )r   r   )r\   znot a valid sort order)r9   SortingColumnto_dictra   r,   int64to_orderingfrom_orderingr4   r5   
ValueError)sorting_colr,   sorting_cols
sort_orderr   sorting_cols_roundtrippedexpectedempty_sorting_colss           rY   test_parquet_sorting_columnr   5  s|   ""2&K eu%    ""14HK dt%    YYbhhj)C+<=>F
t,
u-L "$!1!1!=!=f!SJBBBBX%%% " 0 0 > >N!,$444##11*: 2 GL 	u$?
t>H ### ))77C###''3~EEE	z	"	"
&&v0OQ 
# 
z)F	G	GQD1QE2
 	$$V: 
H	G 
#	" 
H	G	Gs   !J,AJ?,J<	?K	c            	         \         P                  ! R \         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3.4      R\         P                  ! 4       /4      p \        P
                  ! ^ RR7      \        P
                  ! ^RR7      .p\        P
                  P                  W4      w  r#VR8X  g   Q h\        V4      ^8X  g   Q hV^ ,          R	8X  g   Q hV^,          R
8X  g   Q hR# )r\   xyrn   Tr   Fr   N)za.xr   )rn   r   )ra   r,   structr   r9   r   r   r   )r,   sorting_columnsr   r   s       rY   "test_parquet_sorting_column_nestedr   j  s    YYRYYbhhj)C+<=>RXXZ F 	t,
u-O
 "$!1!1!=!=f!VJX%%%z?aa=1111a=....rh   c                  N   \         P                  ! R . ROR. RO/4      p \        P                  ! ^ RRR7      \        P                  ! ^RR7      3p\         P                  ! 4       p\        WVR7       \         P                  ! VP                  4       4      p\        P                  ! V4      pWP                  ^ 4      P                  8X  g   Q hVP                  4       pVP                  R4      ^8X  g   Q hVP                  R4      ^8X  g   Q hVP                  R	4      ^8X  g   Q hR
# )r\   rn   T)r   r   r   F)r   r   )r   r$   r#   r%   Nr]   r   )ra   rb   r9   r   BufferOutputStreamr   BufferReadergetvaluer   r8   r   r   get)rb   r   writerreaderr!   metadata_dicts         rY   !test_parquet_file_sorting_columnsr   |  s    HHc9c?;<E 	aDdK
aE:O ""$F@__V__./F 'H003CCCCC$$&M]+q000Z(A----.!333rh   c                  |   R p \         P                  ! R\         P                  ! 4       V R/R7      p\         P                  ! R\         P                  ! V.4      V R/R7      p\         P                  ! R\         P                  ! 4       RRV R	/R7      \         P                  ! R
\         P                  ! \         P                  ! R\         P                  ! 4       V R/R7      4      V R/R7      \         P                  ! R\         P                  ! V.4      V R/R7      \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       V R/R7      \         P                  ! R\         P                  ! 4       V R/R7      .pV Uu. uF  p. NK  	  pp\         P
                  ! V\         P                  ! V4      R7      p\         P                  ! 4       p\        P                  ! Wg4       VP                  4       p\        P                  ! \         P                  ! V4      4      p	V	P                  p
V
^ ,          P                  V ,          R	8X  g   Q hV
^ ,          P                  R,          R8X  g   Q hV
^,          pVP                  V ,          R8X  g   Q hVP                  P                   pVP                  V ,          R8X  g   Q hV
^,          pVP                  V ,          R8X  g   Q hVP                  ^ ,          pVP                  V ,          R8X  g   Q hVP                  ^ ,          pVP                  V ,          R8X  g   Q hV
^,          P                  e   Q hV
^,          P                  V ,          R8X  g   Q hV
^,          P                  V ,          R8X  g   Q hR# u upi )s   PARQUET:field_idinners   100r!   middles   101basics   others   abc   1listz
list-inners   10s   11r   s   102zno-metadataznon-integral-field-ids   xyzznegative-field-ids   -1000r,   N)ra   ry   int32r   list_rb   r,   r   r9   rc   r   rd   r   schema_arrowr!   r3   value_field)field_idr   r   fields_arrsrb   biocontentsr   r,   
list_fieldlist_item_fieldstruct_fieldstruct_middle_fieldstruct_inner_fields                   rY   test_field_id_metadatar     s   "HHHWbhhjHf3EFEXXh			!$f-/F 	"((*68T03 	4
HHRXXlBHHJ(0%'8: ;&		(
 	299fX.(F9KL

+
("((*#V,	.
$bhhj#X.	0F 1BDHHT"))F"34E



!CNN5||~H	1	2B__F!9h'4///!9h'6111Jx(E111 oo11O##H-666!9L  *f444&++A.''1V;;;,11!4&&x0F:::!9%%% !9h'6111!9h'8333A  s   "N9c                     R F  p \         P                  ! R. RO/4      p\         P                  ! 4       p\        WV R7       \         P                  ! VP                  4       4      p\        P                  ! V4      pVP                  ^ 4      P                  ^ 4      pVP                  V J g   Q hVP                  V J d   K  Q h	  R# )Fr\   )write_page_indexN)FTr]   )ra   rb   r   r   r   r   r9   r   r8   r;   has_offset_indexhas_column_index)r  rb   r   r   r!   r   s         rY   test_parquet_file_page_indexr    s    )#y)*&&(U5EF!23 ##F+"))!,""&6666""&6666 *rh   c                    R R.p\        V R,          4      p\        P                  ! R. ROR. ROR^^.^^.^^../4      p\        P                  P                  V4      pRpV Fl  p. p\        P                  ! V\        W,          4      VR7       V^ ,          P                  V4       Vf   V^ ,          pKT  VP                  V^ ,          4       Kn  	  \        VR4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! V4      pVP                  4       p	VP                  4       p
V
 F!  pVR	8w  g   K  W,          W,          8X  d   K!  Q h	  V
R
,          ^8X  g   Q hV
R,          ^8X  g   Q hV
R,          ^8X  g   Q hV
R	,          ^ 8X  g   Q hV	R	,          ^ 8  g   Q hR#   + '       g   i     L; i)zARROW-1983-dataset.0zARROW-1983-dataset.1	_metadataonetwothreeNmetadata_collectorwbr)   r$   r#   r%   r]   )r   )r   rw   rx   ra   rz   r{   r9   rc   set_file_pathappend_row_groupsopenwrite_metadata_filer   r   )re   	filenamesmetapathrP   rb   _metafilenamerS   fmd_mdkeys   &           rY   test_multi_dataset_metadatar    s   ')?@I7[()H 
y|1a&1a&1a&) 
B
 HH  $E E
uc'"45*.	0Qh'=GE##DG,  
h		!!!$ 
 H%D	B
--/C##8rw&&&  }"""z?a A%%% !Q&&& 1$$$ 
	s   'F00G 	c                    \        V R ,          4      p\        P                  ! RR.4      p\        P                  ! W!4       \        P
                  ! V4      p\        V R,          4      p\        P                  ! RR.4      p\        P                  ! WT4       \        P
                  ! V4      p\        V R,          4      p\        P                  ! RR.4      p\        P                  ! W4       \        P
                  ! V4      p	\        V4      \        V4      8X  g   Q h\        V4      \        V4      8X  g   Q h\        V4      \        V	4      8w  g   Q hR# )	metadata1	metadata2	metadata3Nr\   r   rn   r   )rn   r   )r   ra   r,   r9   write_metadatar   hash)
re   path1schema1parquet_meta1path2schema2parquet_meta2path3schema3parquet_meta3s
   &         rY   test_metadata_hashingr-    s   +%&Eii)9:;Gg%$$U+M +%&Eii)9:;Gg%$$U+M +%&Eii)9:;Gg%$$U+M $}"5555$}"5555 $}"5555rh   z#ignore:Parquet format:FutureWarningc                 <   \        V R ,          4      p\        P                  ! RR.4      p\        P                  ! W!4       \        P
                  ! V4      pVP                  P                  4       pVP                  V4      '       g   Q hVP                  '       d   RVP                  9  g   Q hR FO  p\        P                  ! W!VR7       \        P
                  ! V4      pVR8X  d   RMRpVP                  V8X  d   KO  Q h	  \        P                  ! R^^.RRR./VR	7      p\        P                  ! WpR
,          4       \        P
                  ! \        V R
,          4      4      p\        P                  ! W!W3.R7       \        P
                  ! V4      pVP                  ^8X  g   Q hRp	\        P                  ! \        V	R7      ;_uu_ 4        \        P                  ! \        P                  ! RR.4      WV.R7       RRR4       R#   + '       g   i     R# ; i)r!   r\   rn   s   ARROW:schema1.0r   r   g?g?r   r   r
  zLAppendRowGroups requires equal schemas.
The two columns with index 0 differ.r   Nr   r!  )r/  z2.4r   )r\   r   )rn   null)r   ra   r,   r9   r"  r   to_arrow_schemaequalsr!   r&   rb   rc   r%   r4   r5   RuntimeError)
re   r   r,   parquet_metaschema_as_arrowr   expected_versionrb   parquet_meta_multmsgs
   &         rY   test_write_metadatar9    s   w#$DYY(89:F f###D)L"))99;O!!&)))) o&>&>>>> )
&8''- %,u$45%**.>>>> ) HHcAq63R1&AENN5N23##C.(@$ABL,)E ((.++q0002C	|3	/	/
II~}56L%A	
 
0	/	/	/s   1H

H	c                      \         P                  ! \         P                  ! R R4      .RRR,          /R7      p \         P                  ! \	        ^
4      .V R7      p\        V4       R# )f0doublelarger   i r   r   N)ra   r,   ry   rb   r7   r   )	my_schemarb   s     rY   test_table_large_metadatar?  I  sL    		288D(34$+S8^#<>I HHeBi[3EUrh   c                     \        R R7      p \        V 4      p\        V 4      p\        W P                  R,          ,          4      p\        VP                  \
        P                  4      '       g   Q hVP                  P                  VP                  4      '       g   Q hVP                  VP                  8X  g   Q hVP                  P                  VP                  4      '       g   Q hVP                  VP                  8X  g   Q hVP                  R8w  g   Q hVP                  P                  VP                  4      '       d   Q hVP                  VP                  8w  g   Q h\        VP                  ^ ,          \
        P                  4      '       g   Q hVP                  ^ ,          P                  VP                  ^ ,          4      '       g   Q hVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^ ,          P                  VP                  ^,          4      '       d   Q hVP                  ^ ,          VP                  ^,          8w  g   Q hVP                  ^ ,          R8w  g   Q hR# )r   r   :NNr_   zarbitrary objectN)	r	   r   r   r(   r,   r9   ParquetSchemar2  ColumnSchema)rP   rQ   fileh2fileh3s       rY   test_compare_schemasrE  R  s   	e	$BR Eb!FbC12F ellB$4$45555<<u||,,,,<<5<<'''<<v}}----<<6==(((<<----||""6==1111<<6==((( ell1or7777<<?!!%,,q/2222<<?ell1o---||A%%ell1o6666<<?ell1o---<<?0000rh   c                 `   ^dp\         P                  ! R\        P                  ! V4      R\        P                  P                  V4      /RR.R7      pV R,          p\        P                  P                  V4      p\        WC4       \        P                  ! V4      p\        P                  ! VRR7      pVP                  P                  V4      '       g   Q hVP                  P                  V4      '       g   Q hVP                  P                  R,          VP                  R,          8X  g   Q hR# )	d   r    valuesr   ztest.parquetT)
memory_maps   pandasN)rw   rx   r   aranger   randnra   rz   r{   r   r9   read_schemar,   r2  r!   )re   NrP   	data_pathrb   read1read2s   &      rY   test_read_schemarQ  m  s    A	1"))//!$ "
$B
 .(IHH  $E"NN9%ENN96E<<u%%%%<<u%%%%<<  +u~~i/HHHHrh   c                    \         P                  ! R \         P                  ! . RR7      /4      p\        P                  ! WR,          4       \        P
                  ! V R,          4      pVP                  4       p\        VR,          4      ^8X  g   Q h\        VR,          ^ ,          R,          4      ^8X  g   Q hVR,          ^ ,          R,          ^ ,          R,          e   Q hR# )r\   r   r   r   
row_groupsr   rC   N)ra   rb   r   r9   rc   r   r   r   )re   rb   r!   r   s   &   rY   #test_parquet_metadata_empty_to_dictrT    s    HHc288BW567ENN5N23. 89H$$&M}\*+q000}\*1-i89Q>>>&q))4Q7EMMMrh   c            	      x   R p Rp\         P                  ! \        V 4       Uu/ uF,  p\        V4      \        P
                  P                  ^
4      bK.  	  up4      p\         P                  ! 4       ;_uu_ 4       p\        P                  ! W44       VP                  4       pRRR4       \        P                  ! \         P                  ! X4      4      p\        P                  ! \         P                  ! V4      4      p\        V4       F  pVP                  V4       K  	  \         P                  ! 4       ;_uu_ 4       pVP                  V4       VP                  4       pRRR4       \        P                  ! \         P                  ! V4      4      pR# u upi   + '       g   i     L; i  + '       g   i     LT; i)ro   i  N)ra   rb   r7   r   r   r   rK  r   r9   rc   r   r   r   r  r  )NCOLSNREPEATSr   rb   outbuforiginal_metadatar!   s           rY   "test_metadata_exceeds_message_sizer[    s&   
 EHHH5<H<ac!fbiioob11<HIE				 	 C
u"lln 
! (()=> 45H8_""#45  
			 	 C$$S)lln 
!  45H I	 	  
!	 s   2F8'F;"F)F&	)F9	c                    \         P                  ! R . RO/4      pRp\        W,          4      pRV,           p\        P                  ! W4       \        P
                  ! W,          4      pVP                  p\        P
                  ! V4      P                  V4      '       g   Q h\        P
                  ! V\        4       R7      P                  V4      '       g   Q h\        P
                  ! VRV  2R7      P                  V4      '       g   Q h\        P                  ! V4      P                  V4      '       g   Q h\        P                  ! V\        4       R7      P                  V4      '       g   Q h\        P                  ! VRV  2R7      P                  V4      '       g   Q h\        P                  ! V 4      ;_uu_ 4        \        P
                  ! V\        4       R7      P                  V4      '       g   Q h\        P                  ! V\        4       R7      P                  V4      '       g   Q h RRR4       R#   + '       g   i     R# ; i)r\   r   zfile:///
filesystemNr]   )ra   rb   r   r9   rc   r   r,   r2  r   rL  r   
change_cwd)re   rb   fnamer?   file_urir!   r,   s   &      rY   test_metadata_schema_filesystemrb    s   HHc9%&E EGO$II%HNN5$ 0H\\FH%,,X6666o/1171AB B BHWI.006x0@A A A >>(#**62222>>o/117@ @ @>>HWI.006v? ? ? 
	!	!o/1171AB 	B B ~~o/117@ 	@ @ 
"	!	!	!s   ?A/H99I
	c                     \         P                  ! R . RO/4      p \         P                  ! 4       ;_uu_ 4       p\        P                  ! W4       VP                  4       pRRR4       \        P                  ! \         P                  ! X4      4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     L|; i  + '       g   i     R# ; i)r\   Nz#Argument 'other' has incorrect typer   r]   )ra   rb   r   r9   rc   r   r   r   r4   r5   	TypeErrorr2  )rb   rX  rY  rZ  r   s        rY   test_metadata_equalsre    s    HHc9%&E				 	 C
u"lln 
! (()=>1E	y	.	.  & 
/	. 
!	  
/	.	.s   'C7C&C#	&C7	zt1,t2,expected_errorcol1col2z$The two columns with index 0 differ.col3z&This schema has 2 columns, other has 1c                    \         P                  ! V 4      p\         P                  ! V4      p\        P                  ! 4       p\        P                  ! 4       p\        P
                  ! W54       \        P
                  ! WF4       VP                  ^ 4       VP                  ^ 4       \        P                  ! V4      P                  p\        P                  ! V4      P                  pV'       dI   Rp	\        P                  ! \        W,           R7      ;_uu_ 4        VP                  V4       RRR4       R# VP                  V4       R#   + '       g   i     R# ; i)r   z(AppendRowGroups requires equal schemas.
r   N)ra   rb   ioBytesIOr9   rc   seekrd   r!   r4   r5   r3  r  )
t1t2expected_errortable1table2buf1buf2meta1meta2prefixs
   &&&       rY   $test_metadata_append_row_groups_diffrw    s     XXb\FXXb\F::<D::<DNN6 NN6 IIaLIIaLNN4 ))ENN4 ))E<]]<v/FGG##E* HG 	& HGGs   EE	c                    Vw  r#V R ,          pV R,          pV R,          pV R,          pV R2p\         P                  ! R\        ^4      /4      p	\        P                  ! V	P
                  V. 4       \        P                  ! V	P
                  V. \        4       R7       \        P                  ! V	P
                  VP                  4       . 4       VP                  R4      ;_uu_ 4       p
\        P                  ! V	P
                  V
. 4       RRR4       \        P                  ! V	P
                  V. VR7       VP                  4       VP                  4       u;8X  dR   VP                  4       u;8X  d<   VP                  4       u;8X  d&   VP                  V4      P                  4       8X  g   Q h Q hR#   + '       g   i     L; i)	rt  ru  meta3meta4z/meta5rT   r]  zwb+N)ra   rb   r7   r9   r"  r,   r   as_urir  
read_bytesread)re   s3_example_s3fss3_fss3_pathrt  ru  ry  rz  meta5rb   meta4_streams   &&         rY   (test_write_metadata_fs_file_combinationsr    sd   $NEgEgEgEgEivEHHeU1X&'E ellE2. ellE2/:KL ellELLNB7 
E		l
%,,b9 
 ellE2%@!1!1!3 $$!&!1!1!3$::e!!#$ $ $ $ $ 
	s   &#F00G 	c                    \         P                  ! V R ,          4      pVP                  ^ 4      P                  ^ 4      P                  pVRRRR/8X  g   Q hVP                  ^ 4      P                  ^4      P                  pVe   Q hR# )z'column_chunk_key_value_metadata.parquets   foos   bars   thisiskeywithoutvaluerh   N)r9   r   r8   r;   r!   )parquet_test_datadirr!   key_value_metadata1key_value_metadata2s   &   rY   $test_column_chunk_key_value_metadatar    s     4 I!J KH",,Q/66q9BB663KS"QQQQ",,Q/66q9BB&&&rh   c                     R  p \         P                  ! \        V ! R4      R7      ;_uu_ 4        \        P                  ! 4        RRR4       \         P                  ! \        V ! R4      R7      ;_uu_ 4        \        P
                  ! 4        RRR4       \         P                  ! \        V ! R4      R7      ;_uu_ 4        \        P                  ! 4        RRR4       \         P                  ! \        V ! R4      R7      ;_uu_ 4        \        P                  ! 4        RRR4       \         P                  ! \        V ! R4      R7      ;_uu_ 4        \        P                  ! 4        RRR4       R#   + '       g   i     EL3; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)c                     R V  R2# )zDo not call z's constructor directlyr   )r   s   &rY   r8  .test_internal_class_instantiation.<locals>.msg   s    aS 788rh   rD   r   NParquetLogicalTyper<   r:   FileMetaData)	r4   r5   rd  r9   rD   r  r<   r:   r  )r8  s    rY   !test_internal_class_instantiationr    s   9 
yL(9	:	:
 
; 
y,@(A	B	B
 
C 
y,A(B	C	C
  
D 
y,>(?	@	@
 
A 
yN(;	<	<
 
=	< 
;	:	: 
C	B 
D	C 
A	@ 
=	<	<s;   E.6F>FF(F;.E?	F	F%	(F8	;G	)ru   r3   r0   r   r   r   r@   r   )r^   r_   r_   N   r   )r   r_   r_   Nr  皙)r  g@gffffff@Nrk   )TFFTT)rr   rs   s   12Ns   aaa)Lr   r   collectionsr   rj  numpyr   ImportErrorr4   pyarrowra   pyarrow.tests.parquet.commonr   r   
pyarrow.fsr   pyarrow.testsr   pyarrow.parquetparquetr9   r   pandasrw   pandas.testingtestingtmr	   mark
pytestmarkrZ   rg   parametrizeuint8uint16r   r   int8int16r   r   r   r   chrbinaryencodebool_r   r}   r   r   r   r   r   r   r   r  r  r-  filterwarningsr9  r?  rE  rQ  rT  slowlarge_memoryr[  rb  re  r7   rw  s3r  r  r  r   rh   rY   <module>r     sX  $   # 	   K &  9
< [[  
 Y# Y#x< 	 
RXXZ!Q1dC	RYY['1aAtD	RYY['1aAtD	RYY['1aAtD	bggi"aAtD	bhhj'2q!QE	bhhj'2q!QE	bhhj'2q!QE'T31d	

 (dCAt	

 c$iu-ryy{#s4y//8!Q	

 -bhhjudAq$	

 1"))+'4At	
3)T/U) V/2 > > $F#>2;j/$4*54p7 '% '%T64 AB(
 C(
V 1 14 I I(	N 6  60 @F	' /eBi659-t4eBi659-+-eBir+feBi-@-/	2 ''. $ $@'M  	B  	B  NBs4   N) N9 O	 )	N65N69	OO	OO