Ë
    ìmxiTl  ã                   ó¦  — d dl Z d dlZd dlmZ d dlZ	 d dlZd dlZd dl	Z
d dlmZmZ d dlmZ d dlmZ 	 d dlmZ d dlmZ 	 d dlZd dlmZ d dlmZ ej8                  j&                  Zej8                  j,                  d„ «       Zd	„ Zej8                  j,                  ej8                  jA                  d
g d¢ e
jB                  «       ddddddfg d¢ e
jD                  «       ddddddfg d¢ e
jF                  «       ddddddfg d¢ e
jH                  «       ddddddfg d¢ e
jJ                  «       ddddddfg d¢ e
jL                  «       ddddddfg d¢ e
jN                  «       ddddddfg d¢ e
jP                  «       ddddddfg d¢ e
jR                  «       ddddddfg d¢ e
jT                  «       ddddddfdd e+d«      ddg e
jX                  «       dd e+d«      j[                  d«      dddfg d¢ e
j\                  «       dd d!d d"dfg d#¢ e
jX                  «       dd$d%dddfg«      d&„ «       «       Z/d'„ Z0ej8                  j,                  d(„ «       Z1d)„ Z2d*„ Z3d+„ Z4d,„ Z5d-„ Z6d.„ Z7d/„ Z8ej8                  j,                  d0„ «       Z9d1„ Z:ej8                  jw                  d2«      d3„ «       Z<d4„ Z=ej8                  j,                  d5„ «       Z>ej8                  j,                  d6„ «       Z?d7„ Z@ej8                  j‚                  ej8                  j„                  d8„ «       «       ZCd9„ ZDd:„ ZEej8                  jA                  d;d< eFd=«      id< eFd=«      idfd< eFd=«      id> eFd=«      id?f eFd=«       eFd=«      d@œdA eFd=«      idBff«      dC„ «       ZGej8                  j�                  dD„ «       ZIdE„ ZJdF„ ZKy# e$ r dZY �Œ™w xY w# e$ r dZY �Œ~w xY w# e$ r dxZZY �Œ}w xY w)Gé    N)ÚOrderedDict)Ú_check_roundtripÚmake_sample_file)ÚLocalFileSystem)Úutil)Ú_write_table)Úalltypes_samplec                  ó  — t        d¬«      } | j                  t        | j                  «      ¬«      } t        j
                  j                  ddt        | «      ¬«      | _        t        | «      }t        | j                  «      }|j                  }t        |«       |j                  t        | «      k(  sJ ‚|j                  |dz   k(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚d|j                   v sJ ‚t#        |j$                  t&        «      sJ ‚t#        |j                  t(        «      sJ ‚|j*                  }|j*                  |u sJ ‚t        |«      |dz   k(  sJ ‚t        |«       |d   }t        |«       |j,                  | j                  d   k(  sJ ‚|j.                  dk(  sJ ‚|j0                  dk(  sJ ‚|j0                  dk(  sJ ‚|j2                  d	k(  sJ ‚|j4                  d
k(  sJ ‚|d   }|j6                  j8                  dk(  sJ ‚t;        j<                  t>        «      5  ||dz       d d d «       t;        j<                  t>        «      5  |d    d d d «       tA        |j                  «      D ]Œ  }|jC                  |«      }t#        |tD        jF                  «      sJ ‚t        |«       tA        |j                  «      D ]:  }|jI                  |«      }	t#        |	tD        jJ                  «      sJ ‚t        |	«       Œ< ŒŽ t;        j<                  t>        «      5  |jC                  d«       d d d «       t;        j<                  t>        «      5  |jC                  |j                  dz   «       d d d «       |jC                  d«      }|j                  t        | «      k(  sJ ‚|j                  |dz   k(  sJ ‚|jL                  dkD  sJ ‚t;        j<                  t>        «      5  |jI                  d«      }	d d d «       t;        j<                  t>        «      5  |jI                  |dz   «      }	d d d «       |jI                  d«      }	|	jN                  dk(  sJ ‚|	jP                  dk(  sJ ‚|	j2                  d	k(  sJ ‚|	jR                  dk(  sJ ‚|	jT                  dk(  sJ ‚|	jV                  du sJ ‚t#        |	jX                  tD        jZ                  «      sJ ‚|	j\                  dk(  sJ ‚t_        |	j`                  «      ddhk(  sJ ‚|	jb                  du sJ ‚|	jd                  �J ‚|	jf                  dkD  sJ ‚|	jh                  dkD  sJ ‚|	jj                  dkD  sJ ‚t;        j<                  tl        «      5  |	jn                   d d d «       t;        j<                  tl        «      5  |	jp                   d d d «       y # 1 sw Y   �ŒxxY w# 1 sw Y   �Œ^xY w# 1 sw Y   �Œ”xY w# 1 sw Y   �ŒaxY w# 1 sw Y   �ŒëxY w# 1 sw Y   �ŒÂxY w# 1 sw Y   Œ†xY w# 1 sw Y   y xY w)Né'  ©Úsize©Úcolumnsr   i@B é   ú2.6zparquet-cppÚBOOLEANÚNONEé   ÚFLOAT16éÿÿÿÿé   Ú Ú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
             úZ/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/parquet/test_metadata.pyÚtest_parquet_metadata_apir]   7   s‚  € ä	˜eÔ	$€BØ	�‰œF 2§:¡:Ó.ˆÓ	/€BÜ�y‰y× Ñ   G´#°b³'Ð Ó:€B„Hä˜RÓ €EÜ�—
‘
‹O€Eð �>‰>€DÜˆ„JØ�=‰=œC ›GÒ#Ð#Ð#Ø×Ñ˜u q™yÒ(Ð(Ð(Ø×Ñ !Ò#Ð#Ð#Ø×Ñ %Ò'Ð'Ð'Ø˜DŸO™OÑ+Ð+Ð+Ü�d×*Ñ*¬CÔ0Ð0Ð0Ü�d—m‘m¤TÔ*Ð*Ð*ð �\‰\€FØ�;‰;˜&Ñ Ð Ð Üˆv‹;˜% !™)Ò#Ð#Ð#Üˆ„Là
�‰)€CÜˆ„IØ�8‰8�r—z‘z !‘}Ò$Ð$Ð$Ø×#Ñ# qÒ(Ð(Ð(Ø×#Ñ# qÒ(Ð(Ð(Ø×#Ñ# qÒ(Ð(Ð(Ø×Ñ 	Ò)Ð)Ð)Ø×Ñ Ò'Ð'Ð'à˜‘)€KØ×#Ñ#×(Ñ(¨IÒ5Ð5Ð5ä	�‰”zÓ	"ñ Øˆu�q‰yÒ÷ô 
�‰”zÓ	"ñ ØˆrŠ
÷ô �D×'Ñ'Ó(ò ˆØ—.‘. Ó$ˆÜ˜'¤2×#6Ñ#6Ô7Ð7Ð7ÜˆWŒä˜×,Ñ,Ó-ò 	ˆCØ—~‘~ cÓ*ˆHÜ˜h¬×(>Ñ(>Ô?Ð?Ð?Ü��Nñ	ðô 
�‰”zÓ	"ñ Ø�‰�rÔ÷ô 
�‰”zÓ	"ñ 0Ø�‰�t×*Ñ*¨QÑ.Ô/÷0ð �n‰n˜QÓ€GØ×Ñœs 2›wÒ&Ð&Ð&Ø×Ñ %¨!¡)Ò+Ð+Ð+Ø×"Ñ" QÒ&Ð&Ð&ä	�‰”zÓ	"ñ &Ø—>‘> "Ó%ˆ÷&ô 
�‰”zÓ	"ñ -Ø—>‘> %¨!¡)Ó,ˆ÷-ð �~‰~˜aÓ €HØ×Ñ 1Ò$Ð$Ð$Ø×Ñ Ò#Ð#Ð#Ø×!Ñ! YÒ.Ð.Ð.Ø×Ñ %Ò'Ð'Ð'Ø×"Ñ" fÒ,Ð,Ð,Ø× Ñ  DÑ(Ð(Ð(Ü�h×)Ñ)¬2¯=©=Ô9Ð9Ð9Ø×Ñ 8Ò+Ð+Ð+Üˆx×!Ñ!Ó" w°Ð&6Ò6Ð6Ð6Ø×'Ñ'¨5Ñ0Ð0Ð0Ø×*Ñ*Ð2Ð2Ð2Ø×$Ñ$ qÒ(Ð(Ð(Ø×)Ñ)¨AÒ-Ð-Ð-Ø×+Ñ+¨aÒ/Ð/Ð/Ü	�‰Ô*Ó	+ñ  Ø×Ò÷ ä	�‰Ô*Ó	+ñ #Ø×"Ò"÷#ð #÷gñ ú÷ñ ú÷ñ ú÷0ñ 0ú÷&ñ &ú÷-ñ -ú÷$ ð  ú÷#ð #ús`   È'	V&ÉV3ÌW ÍWÏWÐW'Õ"W4ÖX Ö&V0Ö3V=× W
×W×W$×'W1×4W=Ø X	c                 ó   — t        j                  dg d¢i«      }t        j                  || dz  «       t        j                  | dz  «      }|j
                  j                  d«      j                  d«      j                   y )NÚa©r   r   é   ztest_metadata_segfault.parquetr   )	ÚpaÚtabler<   Úwrite_tableÚParquetFiler$   r;   r>   rF   )Útempdirrc   Úparquet_files      r\   Útest_parquet_metadata_lifetimerh   ”   sb   € ä�H‰H�cš9Ð%Ó&€EÜ‡N�N�5˜'Ð$DÑDÔEÜ—>‘> 'Ð,LÑ"LÓM€LØ×Ñ×#Ñ# AÓ&×-Ñ-¨aÓ0×;Ó;ó    )Údatar6   r3   Ú	min_valueÚ	max_valueÚ
null_countrC   Údistinct_count)r   r   r   Né   ÚINT32r   ro   ÚINT64)r   r   r   Nro   r   )çš™™™™™ñ¿gš™™™™™@gffffff@Nçš™™™™™@ÚFLOATrr   rs   ÚDOUBLEr   Úbéè  ÚaaaÚ
BYTE_ARRAYri   zutf-8)TFFTTr   FTr   )ó    ó   bs   12Ns   aaarz   r{   c                 ó\  — t        j                  d| i«      }t        j                  t        j                  d|«      g«      }	t        j
                  j                  ||	d¬«      }
t        |
«      }|j                  }|j                  d«      }|j                  d«      }|j                  }|j                  sJ ‚t        ||j                  |«      sJ ‚t        ||j                  |«      sJ ‚|j                   |k(  sJ ‚|j"                  |k(  sJ ‚|j$                  |k(  sJ ‚|j&                  |k(  sJ ‚y )Nrj   F)r/   Úsafer   )ÚpdÚ	DataFramerb   r/   ÚfieldÚTableÚfrom_pandasr   r$   r;   r>   rF   Úhas_min_maxÚ_closeÚminÚmaxrm   rC   rn   r3   )rj   r6   r3   rk   rl   rm   rC   rn   rS   r/   rc   rT   rV   rZ   r[   Ústats                   r\   Ú"test_parquet_column_statistics_apirˆ   œ   s  € ô\ 
�‰�v˜t�nÓ	%€BÜ�Y‰YœŸ™ ¨Ó.Ð/Ó0€FÜ�H‰H× Ñ  ¨F¸Ð Ó?€EÜ˜UÓ#€Eà�>‰>€Dà�n‰n˜QÓ€GØ�~‰~˜aÓ €Hà×Ñ€DØ×ÒÐÐÜ�$˜Ÿ™ )Ô,Ð,Ð,Ü�$˜Ÿ™ )Ô,Ð,Ð,Ø�?‰?˜jÒ(Ð(Ð(Ø�?‰?˜jÒ(Ð(Ð(ð ×Ñ .Ò0Ð0Ð0Ø×Ñ Ò.Ð.Ñ.ri   c                 ó¬   — | t        j                  «       k(  rt        ||z
  «      dk  S | t        j                  «       k(  rt        ||z
  «      dk  S ||k(  S )NgH¯¼šò×z>g‚vIhÂ%<=)rb   Úfloat32ÚabsÚfloat64)r6   ÚleftÚrights      r\   r„   r„   à   sP   € ØŒr�z‰z‹|ÒÜ�4˜%‘<Ó  4Ñ'Ð'Ø	”—‘“Ò	Ü�4˜%‘<Ó  5Ñ(Ð(à�u‰}Ðri   c                  ó¶  — t        j                  dt        j                  t         j                  gd¬«      i«      } t	        t
        j                  j                  | «      «      j                  }|j                  d«      j                  d«      j                  j                  rJ ‚|j                  d«      j                  d«      j                  j                  �J ‚y )NÚtzdatetime64[ns])Údtyper   )r~   r   ÚSeriesÚNaTr   rb   r�   r‚   r$   r;   r>   rF   rƒ   r†   )rS   rV   s     r\   Ú&test_parquet_raise_on_unset_statisticsr”   ê   s›   € ä	�‰�sœBŸI™I¤r§v¡v hÐ6FÔGÐHÓ	I€BÜœBŸH™H×0Ñ0°Ó4Ó5×>Ñ>€Dà�~‰~˜aÓ ×'Ñ'¨Ó*×5Ñ5×AÒAÐAÐAØ�>‰>˜!Ó×#Ñ# AÓ&×1Ñ1×5Ñ5Ð=Ð=Ñ=ri   c                 ó‚  — ddt        j                  «       fddt        j                  «       fddt        j                  «       ft	        j
                  dddd«      t	        j
                  d	ddd«      t        j                  d
«      ft	        j
                  dddd«      t	        j
                  d	ddd«      t        j                  d«      ft	        j                  ddddddd«      t	        j                  ddddddd«      t        j                  d
«      ft	        j                  ddddddd«      t	        j                  ddddddd«      t        j                  d«      ft	        j                  ddd«      t	        j                  ddd«      t        j                  «       ft        j                  d«      t        j                  d«      t        j                  dd«      fg	}t        |«      D ]×  \  }\  }}}t         j                  j!                  t        j"                  ||g|¬«      gdg«      }t%        | d|› d�z  «      }t'        j(                  ||d¬«       t'        j*                  |«      }|j,                  j/                  d«      j1                  d«      j2                  }	|	j4                  |k(  sJ ‚|	j6                  |k(  rŒ×J ‚ y )Né
   l   5f|š~W	 l   ÿÿ u   Ã¤hnlichu   Ã¶ffentliché   r   rw   é   ÚmsÚusiã  é   é   é   z20.123z20.124é   r   ©r6   rW   Úexamplez.parquetr   ©Úversion)rb   Úuint64Úuint32Úutf8ÚdatetimeÚtimeÚtime32Útime64Ú	timestampÚdateÚdate32ÚdecimalÚDecimalÚ
decimal128Ú	enumerater�   Úfrom_arraysÚarrayÚstrr<   rd   re   r$   r;   r>   rF   r…   r†   )
rf   ÚcasesÚiÚmin_valÚmax_valÚtypr�   ÚpathÚpfÚstatss
             r\   Ú%test_statistics_convert_logical_typesr¼   ó   sZ  € ð Ð&¬¯	©	«Ð4Ø�*œbŸi™i›kÐ*Ø˜-¬¯©«Ð3Ü�m‰m˜B  A tÓ,¬h¯m©m¸BÀÀAÀtÓ.LÜ�i‰i˜‹oðä�m‰m˜B  A tÓ,¬h¯m©m¸BÀÀAÀtÓ.LÜ�i‰i˜‹oðä×Ñ  a¨¨Q°°1°dÓ;Ü×Ñ  a¨¨Q°°1°dÓ;Ü�l‰l˜4Ó ð"ô ×Ñ  a¨¨Q°°1°dÓ;Ü×Ñ  a¨¨Q°°1°dÓ;Ü�l‰l˜4Ó ð"ô �m‰m˜D ! RÓ(Ü�m‰m˜D ! RÓ(Ü�i‰i‹kðô �o‰o˜hÓ'Ü�o‰o˜hÓ'Ü�m‰m˜B Ó"ð$ð!%€Eô( '0°Ó&6ò $Ñ"ˆÑ"ˆG�W˜cÜ�H‰H× Ñ ¤"§(¡(¨G°WÐ+=ÀCÔ"HÐ!IØ"' ó*ˆä�7˜w q c¨Ð2Ñ2Ó3ˆÜ
�‰�q˜$¨Õ.Ü�^‰^˜DÓ!ˆØ—‘×%Ñ% aÓ(×/Ñ/°Ó2×=Ñ=ˆØ�y‰y˜GÒ#Ð#Ð#Ø�y‰y˜GÓ#Ð#Ð#ñ$ri   c           
      ó´  — t         j                  j                  t        dt        j                  g d¢«      fdt        j                  g d¢«      fg«      «      }t        || dz  «       t        j                  | dz  «      }dD ]@  }|j                  d«      j                  |«      }|j                  du sJ ‚|j                  �Œ@J ‚ t        || d	z  d
¬«       t        j                  | d	z  «      }dD ]@  }|j                  d«      j                  |«      }|j                  d
u sJ ‚|j                  €Œ@J ‚ t        || dz  dg¬«       t        j                  | dz  «      }|j                  d«      j                  d«      }|j                  d«      j                  d«      }|j                  du sJ ‚|j                  d
u sJ ‚|j                  €J ‚|j                  �J ‚y )Nr_   r`   rv   ©r_   rv   Úcúdata.parquet)r   r   r   Tzdata2.parquetF)Úwrite_statisticszdata3.parquetr   )rb   r�   Úfrom_pydictr   r²   r   r<   Úread_metadatar;   r>   rE   rF   )rf   rc   rV   rW   ÚccÚcc_aÚcc_bs          r\   Ú%test_parquet_write_disable_statisticsrÇ     sË  € Ü�H‰H× Ñ ÜØ”"—(‘(š9Ó%Ð&Ø”"—(‘(š?Ó+Ð,ð
ó 	ó€Eô �˜ .Ñ0Ô1Ü×Ñ˜G nÑ4Ó5€DØò )ˆØ�^‰^˜AÓ×%Ñ% cÓ*ˆØ�‰ $Ñ&Ð&Ð&Ø�}‰}Ñ(Ð(Ð(ð)ô
 �˜ /Ñ1ÀEÕJÜ×Ñ˜G oÑ5Ó6€DØò %ˆØ�^‰^˜AÓ×%Ñ% cÓ*ˆØ�‰ %Ñ'Ð'Ð'Ø�}‰}Ñ$Ð$Ð$ð%ô
 �˜ /Ñ1ÀSÀEÕJÜ×Ñ˜G oÑ5Ó6€DØ�>‰>˜!Ó×#Ñ# AÓ&€DØ�>‰>˜!Ó×#Ñ# AÓ&€DØ×Ñ Ñ$Ð$Ð$Ø×Ñ Ñ%Ð%Ð%Ø�?‰?Ð&Ð&Ð&Ø�?‰?Ð"Ð"Ñ"ri   c                  ó0  — t        j                  d«      } | j                  «       ddddœk(  sJ ‚t        j                  ddd¬«      } | j                  «       ddddœk(  sJ ‚t        j                  dt        j
                  «       fdt        j
                  «       fg«      }t        j                  d	d¬
«      t        j                  dd¬
«      f}t         j                  j                  ||«      \  }}|dk(  sJ ‚|dk(  sJ ‚t         j                  j                  |||«      }||k(  sJ ‚t         j                  j                  |dd¬«      }t        j                  ddd¬«      t        j                  d	dd¬«      f}||k(  sJ ‚t         j                  j                  |d«      }|dk(  sJ ‚t         j                  j                  |d«      dk(  sJ ‚t        j                  t        «      5  t         j                  j                  |d«       d d d «       t        j                  t        d¬«      5  t        j                  d	d¬«      t        j                  dd¬«      f}t         j                  j                  ||«       d d d «       y # 1 sw Y   Œ|xY w# 1 sw Y   y xY w)Nr–   F©Úcolumn_indexÚ
descendingÚnulls_firstr   T)rË   rÌ   r_   rv   r   ©rË   )©rv   rË   )r_   Ú	ascendingÚat_end)r_   rÎ   Úat_start)Únull_placement© )rÓ   rÐ   )r_   znot a valid sort orderzinconsistent null placement©Úmatch)rÌ   )r<   ÚSortingColumnÚto_dictrb   r/   Úint64Úto_orderingÚfrom_orderingr7   r8   Ú
ValueError)Úsorting_colr/   Úsorting_colsÚ
sort_orderrÒ   Úsorting_cols_roundtrippedÚexpectedÚempty_sorting_colss           r\   Útest_parquet_sorting_columnrâ   5  s…  € Ü×"Ñ" 2Ó&€KØ×ÑÓ ØØØñ%ò ð ð ô ×"Ñ" 1°À4ÔH€KØ×ÑÓ ØØØñ%ò ð ð ô �Y‰Y˜œbŸh™h›jÐ)¨C´·±³Ð+<Ð=Ó>€Fä
×Ñ˜ tÔ,Ü
×Ñ˜ uÔ-ð€Lô "$×!1Ñ!1×!=Ñ!=¸fÀlÓ!SÑ€J�ØÐBÒBÐBÐBØ˜XÒ%Ð%Ð%ä "× 0Ñ 0× >Ñ >Ø�
˜Nó!,Ðà$¨Ò4Ð4Ð4ä×#Ñ#×1Ñ1ØÐ*¸:ð 2ó G€Lô 	×Ñ˜ u¸$Ô?Ü
×Ñ˜ t¸Ô>ð€Hð ˜8Ò#Ð#Ð#ô ×)Ñ)×7Ñ7¸ÀÓCÐØ Ò#Ð#Ð#ä×Ñ×'Ñ'¨°Ó3°~ÒEÐEÐEä	�‰”zÓ	"ñ RÜ
×Ñ×&Ñ& vÐ0OÔQ÷Rô 
�‰”zÐ)FÔ	Gñ ;ä×Ñ˜Q¨DÔ1Ü×Ñ˜Q¨EÔ2ð
ˆô 	×Ñ×$Ñ$ V¨\Ô:÷;ð ;÷Rð Rú÷;ð ;ús   Ç$!J È(AJÊ J	ÊJc                  óÊ  — t        j                  t        j                  dt        j                  «       fdt        j                  «       fg«      t        j                  «       dœ«      } t	        j
                  dd¬«      t	        j
                  dd¬«      g}t        j
                  j                  | |«      \  }}|d	k(  sJ ‚t        |«      dk(  sJ ‚|d   d
k(  sJ ‚|d   dk(  sJ ‚y )NÚxÚy©r_   rv   r   TrÍ   r   FrÐ   )za.xrË   r   )rv   rÏ   )rb   r/   ÚstructrØ   r<   rÖ   rÙ   r"   )r/   Úsorting_columnsrÞ   rÒ   s       r\   Ú"test_parquet_sorting_column_nestedré   j  sÓ   € Ü�Y‰YÜ�Y‰Y˜œbŸh™h›jÐ)¨C´·±³Ð+<Ð=Ó>Ü�X‰X‹Zñó €Fô 	×Ñ˜ tÔ,Ü
×Ñ˜ uÔ-ð€Oô
 "$×!1Ñ!1×!=Ñ!=¸fÀoÓ!VÑ€J�Ø˜XÒ%Ð%Ð%Üˆz‹?˜aÒÐÐØ�a‰=Ð1Ò1Ð1Ð1Ø�a‰=Ð.Ò.Ð.Ñ.ri   c                  ó2  — t        j                  g d¢g d¢dœ«      } t        j                  ddd¬«      t        j                  dd¬	«      f}t        j                  «       }t        | ||¬
«       t        j                  |j                  «       «      }t        j                  |«      }||j                  d«      j                  k(  sJ ‚|j                  «       }|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚y )Nr`   r¾   ræ   r   TrÉ   r   F)rÊ   rË   )rè   r'   r   r&   ra   r(   )rb   rc   r<   rÖ   ÚBufferOutputStreamr   ÚBufferReaderÚgetvaluerÃ   r;   rè   r×   Úget)rc   rè   ÚwriterÚreaderr$   Úmetadata_dicts         r\   Ú!test_parquet_file_sorting_columnsrò   |  sü   € Ü�H‰Hš9ª?Ñ;Ó<€Eô 	×Ñ a°DÀdÔKÜ
×Ñ a°EÔ:ð€Oô ×"Ñ"Ó$€FÜ�˜°Õ@Ü�_‰_˜VŸ_™_Ó.Ó/€Fô ×Ñ Ó'€HØ˜h×0Ñ0°Ó3×CÑCÒCÐCÐCà×$Ñ$Ó&€MØ×Ñ˜]Ó+¨qÒ0Ð0Ð0Ø×Ñ˜ZÓ(¨AÒ-Ð-Ð-Ø×ÑÐ-Ó.°!Ò3Ð3Ñ3ri   c                  ó�  — d} t        j                  dt        j                  «       | di¬«      }t        j                  dt        j                  |g«      | di¬«      }t        j                  dt        j                  «       dd	| d
i¬«      t        j                  dt        j                  t        j                  dt        j                  «       | di¬«      «      | di¬«      t        j                  dt        j                  |g«      | di¬«      t        j                  dt        j                  «       «      t        j                  dt        j                  «       | di¬«      t        j                  dt        j                  «       | di¬«      g}|D �cg c]  }g ‘Œ }}t        j
                  |t        j                  |«      ¬«      }t        j                  «       }t        j                  ||«       |j                  «       }t        j                  t        j                  |«      «      }	|	j                  }
|
d   j                  |    d
k(  sJ ‚|
d   j                  d   d	k(  sJ ‚|
d   }|j                  |    dk(  sJ ‚|j                  j                   }|j                  |    dk(  sJ ‚|
d   }|j                  |    dk(  sJ ‚|j                  d   }|j                  |    dk(  sJ ‚|j                  d   }|j                  |    dk(  sJ ‚|
d   j                  �J ‚|
d   j                  |    dk(  sJ ‚|
d   j                  |    dk(  sJ ‚y c c}w )Ns   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/   r   r   r   ra   ro   r   )rb   r€   Úint32rç   Úlist_rc   r/   rë   r<   rd   rí   re   rì   Úschema_arrowr$   r6   Úvalue_field)Úfield_idrô   rö   ÚfieldsÚ_Úarrsrc   ÚbioÚcontentsrº   r/   Ú
list_fieldÚlist_item_fieldÚstruct_fieldÚstruct_middle_fieldÚstruct_inner_fields                   r\   Útest_field_id_metadatar
  ‘  sô  € à"€HÜ�H‰H�WœbŸh™h›j°H¸fÐ3EÔF€EÜ�X‰X�h¤§	¡	Ø	ˆó!Ø$ fÐ-ô/€Fô 	�‰�œ"Ÿ(™(›*Ø˜6 8¨Tð03ô 	4ä
�‰ØÜ�H‰H”R—X‘X˜l¬B¯H©H«JØ(0°%Ð'8ô:ó ;à Ð&ô		(ô
 	�‰�œ2Ÿ9™9 f XÓ.¸(ÀFÐ9KÔLÜ
�‰�¤§¡£
Ó+Ü
�‰Ð(¬"¯(©(«*Ø# VÐ,ô	.ä
�‰Ð$¤b§h¡h£jØ# XÐ.ô	0ð€Fð Ö�1ŠBÐ€DÐÜ�H‰H�T¤"§)¡)¨FÓ"3Ô4€Eä
×
Ñ
Ó
!€CÜ‡N�N�5˜#ÔØ�|‰|‹~€Hä	�‰œŸ™¨Ó1Ó	2€BØ�_‰_€Fà�!‰9×Ñ˜hÑ'¨4Ò/Ð/Ð/Ø�!‰9×Ñ˜hÑ'¨6Ò1Ð1Ð1à˜‘€JØ×Ñ˜xÑ(¨EÒ1Ð1Ð1à —o‘o×1Ñ1€OØ×#Ñ# HÑ-°Ò6Ð6Ð6à˜!‘9€LØ× Ñ  Ñ*¨fÒ4Ð4Ð4à&×+Ñ+¨AÑ.ÐØ×'Ñ'¨Ñ1°VÒ;Ð;Ð;à,×1Ñ1°!Ñ4ÐØ×&Ñ& xÑ0°FÒ:Ð:Ð:à�!‰9×ÑÐ%Ð%Ð%ð �!‰9×Ñ˜hÑ'¨6Ò1Ð1Ð1Ø�!‰9×Ñ˜hÑ'¨8Ò3Ð3Ñ3ùòA  s   Æ	Mc                  óx  — dD ]µ  } t        j                  dg d¢i«      }t        j                  «       }t        ||| ¬«       t        j                  |j                  «       «      }t        j                  |«      }|j                  d«      j                  d«      }|j                  | u sJ ‚|j                  | u rŒµJ ‚ y )N)FTr_   r`   )Úwrite_page_indexr   )rb   rc   rë   r   rì   rí   r<   rÃ   r;   r>   Úhas_offset_indexÚhas_column_index)r  rc   rï   rð   r$   rÄ   s         r\   Útest_parquet_file_page_indexr  É  s¬   € Ø)ò 7ÐÜ—‘˜#šyÐ)Ó*ˆä×&Ñ&Ó(ˆÜ�U˜FÐ5EÕFÜ—‘ §¡Ó!2Ó3ˆô ×#Ñ# FÓ+ˆØ×Ñ Ó"×)Ñ)¨!Ó,ˆØ×"Ñ"Ð&6Ñ6Ð6Ð6Ø×"Ñ"Ð&6Ò6Ð6Ð6ñ7ri   c                 óÖ  — ddg}t        | dz  «      }t        j                  g d¢g d¢ddgddgdd	ggd
œ«      }t        j                  j                  |«      }d }|D ]X  }g }t        j                  |t        | |z  «      |¬«       |d   j                  |«       |€|d   }ŒE|j                  |d   «       ŒZ t        |d«      5 }|j                  |«       d d d «       t        j                  |«      }|j                  «       }	|j                  «       }
|
D ]  }|dk7  sŒ	|
|   |	|   k(  rŒJ ‚ |
d   dk(  sJ ‚|
d   dk(  sJ ‚|
d   dk(  sJ ‚|
d   dk(  sJ ‚|	d   dkD  sJ ‚y # 1 sw Y   Œ‹xY w)NzARROW-1983-dataset.0zARROW-1983-dataset.1Ú	_metadatar`   )r   éþÿÿÿéýÿÿÿr   r   ra   ro   )ÚoneÚtwoÚthree©Úmetadata_collectorr   Úwbr,   r'   r&   r›   r(   )r³   r~   r   rb   r�   r‚   r<   rd   Úset_file_pathÚappend_row_groupsÚopenÚwrite_metadata_filerÃ   r×   )rf   Ú	filenamesÚmetapathrS   rc   Ú_metaÚfilenamerV   ÚfÚmdÚ_mdÚkeys               r\   Útest_multi_dataset_metadatar&  Ø  s·  € à'Ð)?Ð@€IÜ�7˜[Ñ(Ó)€Hô 
�‰ÚÚØ�a�&˜1˜a˜& 1 a &Ð)ñó 
€Bô
 �H‰H× Ñ  Ó$€Eð €EØò -ˆØˆÜ
�‰�uœc '¨HÑ"4Ó5Ø*.õ	0àˆQ‰×Ñ˜hÔ'Øˆ=Ø˜‘G‰Eà×#Ñ# D¨¡GÕ,ð-ô 
ˆh˜Ó	ð % Ø×!Ñ! !Ô$÷%ô ×Ñ˜HÓ%€DØ	�‰‹€BØ
�-‰-‹/€CØò 'ˆØÐ#Ó#Ø�s‘8˜r #™wÓ&Ð&Ð&ð'ð ˆ}Ñ Ò"Ð"Ð"Øˆz‰?˜aÒÐÐØÐÑ  AÒ%Ð%Ð%ØÐ Ñ! QÒ&Ð&Ð&ØÐÑ  1Ò$Ð$Ñ$÷%ð %ús   ÃEÅE(c                 óz  — t        | dz  «      }t        j                  ddg«      }t        j                  ||«       t        j
                  |«      }t        | dz  «      }t        j                  ddg«      }t        j                  ||«       t        j
                  |«      }t        | dz  «      }t        j                  ddg«      }t        j                  ||«       t        j
                  |«      }	t        |«      t        |«      k(  sJ ‚t        |«      t        |«      k(  sJ ‚t        |«      t        |	«      k7  sJ ‚y )NÚ	metadata1©r_   rØ   ©rv   rŒ   Ú	metadata2Ú	metadata3)rv   rŠ   )r³   rb   r/   r<   Úwrite_metadatarÃ   Úhash)
rf   Úpath1Úschema1Úparquet_meta1Úpath2Úschema2Úparquet_meta2Úpath3Úschema3Úparquet_meta3s
             r\   Útest_metadata_hashingr8    s  € Ü�˜+Ñ%Ó&€EÜ�i‰i˜Ð)9Ð:Ó;€GÜ×Ñ�g˜uÔ%Ü×$Ñ$ UÓ+€Mô �˜+Ñ%Ó&€EÜ�i‰i˜Ð)9Ð:Ó;€GÜ×Ñ�g˜uÔ%Ü×$Ñ$ UÓ+€Mô �˜+Ñ%Ó&€EÜ�i‰i˜Ð)9Ð:Ó;€GÜ×Ñ�g˜uÔ%Ü×$Ñ$ UÓ+€Mô �Ó¤$ }Ó"5Ò5Ð5Ð5Ü�Ó¤$ }Ó"5Ò5Ð5Ð5ô �Ó¤$ }Ó"5Ò5Ð5Ñ5ri   z#ignore:Parquet format:FutureWarningc                 óÄ  — t        | dz  «      }t        j                  ddg«      }t        j                  ||«       t        j
                  |«      }|j                  j                  «       }|j                  |«      sJ ‚|j                  rd|j                  vsJ ‚dD ]I  }t        j                  |||¬«       t        j
                  |«      }|dk(  rdnd}|j                  |k(  rŒIJ ‚ t        j                  d	d
gddgdœ|¬«      }t        j                  || dz  «       t        j
                  t        | dz  «      «      }t        j                  ||||g¬«       t        j
                  |«      }|j                  d
k(  sJ ‚d}	t        j                  t        |	¬«      5  t        j                  t        j                  ddg«      |||g¬«       d d d «       y # 1 sw Y   y xY w)Nr$   r)  r*  s   ARROW:schema)ú1.0z2.4r   r¡   r:  r   r   r   gš™™™™™¹?gš™™™™™É?ræ   rú   rÀ   r  zLAppendRowGroups requires equal schemas.
The two columns with index 0 differ.rÔ   )r_   rû   )rv   Únull)r³   rb   r/   r<   r-  rÃ   Úto_arrow_schemaÚequalsr$   r)   rc   rd   r(   r7   r8   ÚRuntimeError)
rf   r¹   r/   Úparquet_metaÚschema_as_arrowr¢   Úexpected_versionrc   Úparquet_meta_multÚmsgs
             r\   Útest_write_metadatarD    sÇ  € äˆw˜Ñ#Ó$€DÜ�Y‰Y˜Ð(8Ð9Ó:€Fô ×Ñ�f˜dÔ#Ü×#Ñ# DÓ)€LØ"×)Ñ)×9Ñ9Ó;€OØ×!Ñ! &Ô)Ð)Ð)ð ×ÒØ o×&>Ñ&>Ñ>Ð>Ð>ð )ò ?ˆÜ
×Ñ˜& $°Õ8Ü×'Ñ'¨Ó-ˆð %,¨uÒ$4™5¸%ÐØ×*Ñ*Ð.>Ó>Ð>Ð>ð?ô �H‰H˜A˜q˜6¨¨R¨Ñ1¸&ÔA€EÜ‡N�N�5˜' NÑ2Ô3Ü×#Ñ#¤C¨°.Ñ(@Ó$AÓB€LÜ×ÑØ�¨,¸Ð)Eõô ×(Ñ(¨Ó.ÐØ×+Ñ+¨qÒ0Ð0Ð0ð2€Cä	�‰”|¨3Ô	/ñ 
Ü
×ÑÜ�I‰I�~ }Ð5Ó6Ø l°LÐ%Aõ	
÷
÷ 
ñ 
ús   Æ0GÇGc                  ó¾   — t        j                  t        j                  dd«      gdddz  i¬«      } t        j                  t	        d«      g| ¬«      }t        |«       y )	NÚf0ÚdoubleÚlargerä   i€–˜ rõ   r–   rú   )rb   r/   r€   rc   r:   r   )Ú	my_schemarc   s     r\   Útest_table_large_metadatarJ  I  sL   € ä—	‘	œ2Ÿ8™8 D¨(Ó3Ð4Ø$+¨S°8©^Ð#<ô>€Iô �H‰H”e˜B“i�[¨Ô3€EÜ�UÕri   c                  ó0  — t        d¬«      } t        | «      }t        | «      }t        | | j                  d d d…      «      }t        |j                  t
        j                  «      sJ ‚|j                  j                  |j                  «      sJ ‚|j                  |j                  k(  sJ ‚|j                  j                  |j                  «      sJ ‚|j                  |j                  k(  sJ ‚|j                  dk7  sJ ‚|j                  j                  |j                  «      rJ ‚|j                  |j                  k7  sJ ‚t        |j                  d   t
        j                  «      sJ ‚|j                  d   j                  |j                  d   «      sJ ‚|j                  d   |j                  d   k(  sJ ‚|j                  d   j                  |j                  d   «      rJ ‚|j                  d   |j                  d   k7  sJ ‚|j                  d   dk7  sJ ‚y )Nr   r   r   zarbitrary objectr   r   )	r	   r   r   r+   r/   r<   ÚParquetSchemar=  ÚColumnSchema)rS   rT   Úfileh2Úfileh3s       r\   Útest_compare_schemasrP  R  s¹  € ä	˜eÔ	$€Bä˜RÓ €EÜ˜bÓ!€FÜ˜b §¡©C¨a¨C¡Ñ1Ó2€Fô �e—l‘l¤B×$4Ñ$4Ô5Ð5Ð5Ø�<‰<×Ñ˜uŸ|™|Ô,Ð,Ð,Ø�<‰<˜5Ÿ<™<Ò'Ð'Ð'Ø�<‰<×Ñ˜vŸ}™}Ô-Ð-Ð-Ø�<‰<˜6Ÿ=™=Ò(Ð(Ð(Ø�<‰<Ð-Ò-Ð-Ð-Ø�|‰|×"Ñ" 6§=¡=Ô1Ð1Ð1Ø�<‰<˜6Ÿ=™=Ò(Ð(Ð(ô �e—l‘l 1‘o¤r§¡Ô7Ð7Ð7Ø�<‰<˜‰?×!Ñ! %§,¡,¨q¡/Ô2Ð2Ð2Ø�<‰<˜‰?˜eŸl™l¨1™oÒ-Ð-Ð-Ø�|‰|˜A‰×%Ñ% e§l¡l°1¡oÔ6Ð6Ð6Ø�<‰<˜‰?˜eŸl™l¨1™oÒ-Ð-Ð-Ø�<‰<˜‰?Ð0Ò0Ð0Ñ0ri   c                 ó"  — d}t        j                  t        j                  |«      t        j                  j                  |«      dœddg¬«      }| dz  }t        j                  j                  |«      }t        ||«       t        j                  |«      }t        j                  |d¬«      }|j                  j                  |«      sJ ‚|j                  j                  |«      sJ ‚|j                  j                  d	   |j                  d	   k(  sJ ‚y )
Néd   )r#   Úvaluesr#   rS  r   ztest.parquetT)Ú
memory_maps   pandas)r~   r   r   Úaranger    Úrandnrb   r�   r‚   r   r<   Úread_schemar/   r=  r$   )rf   ÚNrS   Ú	data_pathrc   Úread1Úread2s          r\   Útest_read_schemar\  m  sÝ   € à€AÜ	�‰Ü—‘˜1“Ü—)‘)—/‘/ !Ó$ñð ˜Ð"ô
$€Bð
 ˜.Ñ(€Iä�H‰H× Ñ  Ó$€EÜ�˜	Ô"ä�N‰N˜9Ó%€EÜ�N‰N˜9°Ô6€EØ�<‰<×Ñ˜uÔ%Ð%Ð%Ø�<‰<×Ñ˜uÔ%Ð%Ð%à�<‰<× Ñ  Ñ+¨u¯~©~¸iÑ/HÒHÐHÑHri   c                 ó\  — t        j                  dt        j                  g d¬«      i«      }t        j                  || dz  «       t        j
                  | dz  «      }|j                  «       }t        |d   «      dk(  sJ ‚t        |d   d   d   «      dk(  sJ ‚|d   d   d   d   d	   �J ‚y )
Nr_   rØ   rŸ   rÀ   Ú
row_groupsr   r   r   rF   )rb   rc   r²   r<   rd   rÃ   r×   r"   )rf   rc   r$   rñ   s       r\   Ú#test_parquet_metadata_empty_to_dictr_  ‚  sµ   € ä�H‰H�cœ2Ÿ8™8 B¨WÔ5Ð6Ó7€EÜ‡N�N�5˜' NÑ2Ô3Ü×Ñ ¨.Ñ 8Ó9€Hà×$Ñ$Ó&€MÜˆ}˜\Ñ*Ó+¨qÒ0Ð0Ð0Üˆ}˜\Ñ*¨1Ñ-¨iÑ8Ó9¸QÒ>Ð>Ð>Ø˜Ñ& qÑ)¨)Ñ4°QÑ7¸ÑEÐMÐMÑMri   c            	      ó   — d} d}t        j                  t        | «      D �ci c]+  }t        |«      t        j
                  j                  d«      “Œ- c}«      }t        j                  «       5 }t        j                  ||«       |j                  «       }d d d «       t        j                  t        j                  «      «      }t        j                  t        j                  |«      «      }t        |«      D ]  }|j                  |«       Œ t        j                  «       5 }|j                  |«       |j                  «       }d d d «       t        j                  t        j                  |«      «      }y c c}w # 1 sw Y   ŒæxY w# 1 sw Y   ŒCxY w)Nrw   i   r–   )rb   rc   r:   r³   r   r    rV  rë   r<   rd   rí   rÃ   rì   r  r  )ÚNCOLSÚNREPEATSrµ   rc   ÚoutÚbufÚoriginal_metadatar$   s           r\   Ú"test_metadata_exceeds_message_sizerf  Ž  s3  € ð
 €EØ€Hä�H‰H¼5À»<ÖH°a”c˜!“fœbŸi™iŸo™o¨bÓ1Ñ1ÒHÓI€Eä	×	Ñ	Ó	 ð  CÜ
�‰�u˜cÔ"Ø�l‰l‹nˆ÷ô ×(Ñ(¬¯©¸Ó)=Ó>ÐÜ×Ñ¤§¡°Ó 4Ó5€HÜ�8‹_ò 6ˆØ×"Ñ"Ð#4Õ5ð6ô 
×	Ñ	Ó	 ð  CØ×$Ñ$ SÔ)Ø�l‰l‹nˆ÷ô ×Ñ¤§¡°Ó 4Ó5�Hùò I÷ð ú÷ð ús   ¡0E3Á,'E8Ä "FÅ8FÆFc                 óî  — t        j                  dg d¢i«      }d}t        | |z  «      }d|z   }t        j                  ||«       t        j
                  | |z  «      }|j                  }t        j
                  |«      j                  |«      sJ ‚t        j
                  |t        «       ¬«      j                  |«      sJ ‚t        j
                  |d| › �¬«      j                  |«      sJ ‚t        j                  |«      j                  |«      sJ ‚t        j                  |t        «       ¬«      j                  |«      sJ ‚t        j                  |d| › �¬«      j                  |«      sJ ‚t        j                  | «      5  t        j
                  |t        «       ¬«      j                  |«      sJ ‚t        j                  |t        «       ¬«      j                  |«      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr_   r`   rÀ   zfile:///©Ú
filesystem)rb   rc   r³   r<   rd   rÃ   r/   r=  r   rW  r   Ú
change_cwd)rf   rc   ÚfnamerB   Úfile_urir$   r/   s          r\   Útest_metadata_schema_filesystemrm  ¨  sð  € Ü�H‰H�cš9Ð%Ó&€Eð €EÜ�G˜e‘OÓ$€IØ˜IÑ%€Hä‡N�N�5˜)Ô$ô ×Ñ ¨%¡Ó0€HØ�\‰\€Fä×Ñ˜HÓ%×,Ñ,¨XÔ6Ð6Ð6Ü×ÑØœoÓ/ô1ß17±¸Ó1AðBð Bð Bä×ÑØ˜H W IÐ.ô0ß06±°xÓ0@ðAð Að Aô �>‰>˜(Ó#×*Ñ*¨6Ô2Ð2Ð2Ü�>‰>ØœoÓ/ô1ß17±¸³ð@ð @ð @ä�>‰>Ø˜H W IÐ.ô0ß06±°v³ð?ð ?ð ?ô 
�‰˜Ó	!ñ @ä×ÑØœoÓ/ô1ß17±¸Ó1AðBð 	Bð Bô �~‰~ØœoÓ/ô1ß17±¸³ð@ð 	@ñ @÷@÷ @ñ @ús   Æ A!G+Ç+G4c                  óª  — t        j                  dg d¢i«      } t        j                  «       5 }t        j                  | |«       |j                  «       }d d d «       t        j                  t        j                  «      «      }d}t        j                  t        |¬«      5  |j                  d «       d d d «       y # 1 sw Y   ŒixY w# 1 sw Y   y xY w)Nr_   r`   z#Argument 'other' has incorrect typerÔ   )rb   rc   rë   r<   rd   rí   rÃ   rì   r7   r8   Ú	TypeErrorr=  )rc   rc  rd  re  rÕ   s        r\   Útest_metadata_equalsrp  Ë  s¨   € Ü�H‰H�cš9Ð%Ó&€EÜ	×	Ñ	Ó	 ð  CÜ
�‰�u˜cÔ"Ø�l‰l‹nˆ÷ô ×(Ñ(¬¯©¸Ó)=Ó>ÐØ1€EÜ	�‰”y¨Ô	.ñ 'Ø× Ñ  Ô&÷'ð '÷ð ú÷'ð 'ús   ®'B=Â"C	Â=CÃ	Czt1,t2,expected_errorÚcol1r–   Úcol2z$The two columns with index 0 differ.)rq  rr  Úcol3z&This schema has 2 columns, other has 1c                 ót  — t        j                  | «      }t        j                  |«      }t        j                  «       }t        j                  «       }t	        j
                  ||«       t	        j
                  ||«       |j                  d«       |j                  d«       t	        j                  |«      j                  }t	        j                  |«      j                  }|r;d}	t        j                  t        |	|z   ¬«      5  |j                  |«       d d d «       y |j                  |«       y # 1 sw Y   y xY w)Nr   z(AppendRowGroups requires equal schemas.
rÔ   )rb   rc   ÚioÚBytesIOr<   rd   Úseekre   r$   r7   r8   r>  r  )
Út1Út2Úexpected_errorÚtable1Útable2Úbuf1Úbuf2Úmeta1Úmeta2Úprefixs
             r\   Ú$test_metadata_append_row_groups_diffr‚  ×  sá   € ô �X‰X�b‹\€FÜ�X‰X�b‹\€Fä�:‰:‹<€DÜ�:‰:‹<€DÜ‡N�N�6˜4Ô Ü‡N�N�6˜4Ô Ø‡I�Iˆa„LØ‡I�Iˆa„Lä�N‰N˜4Ó ×)Ñ)€EÜ�N‰N˜4Ó ×)Ñ)€Eáà<ˆÜ�]‰]œ<¨v¸Ñ/FÔGñ 	+Ø×#Ñ# EÔ*÷	+ð 	+ð 	×Ñ Õ&÷	+ð 	+ús   ÄD.Ä.D7c                 ó,  — |\  }}| dz  }| dz  }| dz  }| dz  }|› d�}t        j                  dt        d«      i«      }	t        j                  |	j
                  |g «       t        j                  |	j
                  |g t        «       ¬«       t        j                  |	j
                  |j                  «       g «       |j                  d	«      5 }
t        j                  |	j
                  |
g «       d d d «       t        j                  |	j
                  |g |¬«       |j                  «       |j                  «       cxk(  rK|j                  «       cxk(  r7|j                  «       cxk(  r#|j                  |«      j                  «       k(  sJ ‚ J ‚y # 1 sw Y   ŒžxY w)
Nr  r€  Úmeta3Úmeta4z/meta5rW   r   rh  zwb+)rb   rc   r:   r<   r-  r/   r   Úas_urir  Ú
read_bytesÚread)rf   Ús3_example_s3fsÚs3_fsÚs3_pathr  r€  r„  r…  Úmeta5rc   Úmeta4_streams              r\   Ú(test_write_metadata_fs_file_combinationsrŽ  õ  sj  € à$�N€Eˆ7à�gÑ€EØ�gÑ€EØ�gÑ€EØ�gÑ€EØˆi�vÐ€Eä�H‰H�eœU 1›XÐ&Ó'€Eô ×Ñ�e—l‘l E¨2Ô.ô ×Ñ�e—l‘l E¨2¼/Ó:KÕLô ×Ñ�e—l‘l E§L¡L£N°BÔ7ð 
�‰�EÓ	ð :˜lÜ
×Ñ˜%Ÿ,™,¨°bÔ9÷:ô ×Ñ�e—l‘l E¨2¸%Õ@à×ÑÓ ×!1Ñ!1Ó!3ô $Ø×ÑÓô$Ø!&×!1Ñ!1Ó!3ô$à�:‰:�eÓ×!Ñ!Ó#ò$ð $ñ $ð $ñ $÷:ð :ús   Ã"F
Æ
Fc                 óø   — t        j                  | dz  «      }|j                  d«      j                  d«      j                  }|dddœk(  sJ ‚|j                  d«      j                  d«      j                  }|�J ‚y )Nz'column_chunk_key_value_metadata.parquetr   s   barri   )s   foos   thisiskeywithoutvaluer   )r<   rÃ   r;   r>   r$   )Úparquet_test_datadirr$   Úkey_value_metadata1Úkey_value_metadata2s       r\   Ú$test_column_chunk_key_value_metadatar“    s‚   € Ü×ÑÐ 4Ø Iñ!Jó K€Hà"×,Ñ,¨QÓ/×6Ñ6°qÓ9×BÑBÐØ¨6ÈSÑ"QÒQÐQÐQØ"×,Ñ,¨QÓ/×6Ñ6°qÓ9×BÑBÐØÐ&Ð&Ñ&ri   c                  óð  — d„ } t        j                  t         | d«      ¬«      5  t        j                  «        d d d «       t        j                  t         | d«      ¬«      5  t        j
                  «        d d d «       t        j                  t         | d«      ¬«      5  t        j                  «        d d d «       t        j                  t         | d«      ¬«      5  t        j                  «        d d d «       t        j                  t         | d«      ¬«      5  t        j                  «        d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒÑxY w# 1 sw Y   ŒŸxY w# 1 sw Y   ŒmxY w# 1 sw Y   y xY w)Nc                 ó   — d| › d�S )NzDo not call z's constructor directlyrÓ   )r¿   s    r\   rC  z.test_internal_class_instantiation.<locals>.msg   s   € Ø˜a˜SÐ 7Ð8Ð8ri   rG   rÔ   ÚParquetLogicalTyper?   r=   ÚFileMetaData)	r7   r8   ro  r<   rG   r–  r?   r=   r—  )rC  s    r\   Ú!test_internal_class_instantiationr˜    s  € ò9ô 
�‰”y©¨LÓ(9Ô	:ñ Ü
�‰Œ÷ô 
�‰”y©Ð,@Ó(AÔ	Bñ  Ü
×ÑÔ÷ ô 
�‰”y©Ð,AÓ(BÔ	Cñ !Ü
×ÑÔ ÷!ô 
�‰”y©Ð,>Ó(?Ô	@ñ Ü
×ÑÔ÷ô 
�‰”y©¨NÓ(;Ô	<ñ Ü
�‰Ô÷ð ÷ñ ú÷ ð  ú÷!ð !ú÷ð ú÷ð ús;   ¥D;Á#EÂ!EÃE ÄE,Ä;EÅEÅEÅ E)Å,E5)Lr¦   r­   Úcollectionsr   ru  Únumpyr   ÚImportErrorr7   Úpyarrowrb   Úpyarrow.tests.parquet.commonr   r   Ú
pyarrow.fsr   Úpyarrow.testsr   Úpyarrow.parquetÚparquetr<   r   Úpandasr~   Úpandas.testingÚtestingÚtmr	   ÚmarkÚ
pytestmarkr]   rh   ÚparametrizeÚuint8Úuint16r¤   r£   Úint8Úint16rû   rØ   rŠ   rŒ   ÚchrÚbinaryÚencodeÚbool_rˆ   r„   r”   r¼   rÇ   râ   ré   rò   r
  r  r&  r8  ÚfilterwarningsrD  rJ  rP  r\  r_  ÚslowÚlarge_memoryrf  rm  rp  r:   r‚  Ús3rŽ  r“  r˜  rÓ   ri   r\   ú<module>rµ     sn  ðó$ Û Ý #Û 	ðÛó ã ß KÝ &Ý ðÝ Ý9ð
ÛÝå<ð �[‰[× Ñ €
ð ‡�×ÑñY#ó ðY#òx<ð ‡�×ÑØ‡�×Ñð	ò 
˜X˜RŸX™X›Z¨°!°Q¸¸1¸dÐCÚ	˜Y˜RŸY™Y›[¨'°1°a¸¸A¸tÐDÚ	˜Y˜RŸY™Y›[¨'°1°a¸¸A¸tÐDÚ	˜Y˜RŸY™Y›[¨'°1°a¸¸A¸tÐDÚ	˜g˜bŸg™g›i¨°"°a¸¸A¸tÐDÚ	˜h˜bŸh™h›j¨'°2°q¸!¸QÀÐEÚ	˜h˜bŸh™h›j¨'°2°q¸!¸QÀÐEÚ	˜h˜bŸh™h›j¨'°2°q¸!¸QÀÐEâ'¨¨¯©«Ø�T˜3  1 dð	
ò
 (¨¨¯©«Ø�d˜C  A tð	
ð
 �‘c˜$“i  uÐ-¨y¨r¯y©y«{Ø˜#™s 4›y×/Ñ/°Ó8¸!¸QÀð	
ò
 -¨h¨b¯h©h«jØ�u˜d A q¨$ð	
ò
 1°)°"·)±)³+Ø˜' 4¨¨A¨tð	
ð3ó)ñT/óU)ó ðV/ò2ð ‡�×Ññ>ó ð>ò $òF#ò>2;òj/ò$4ò*54òp7ð ‡�×Ññ'%ó ð'%òT6ð4 ‡�×ÑÐAÓBñ(
ó Cð(
òVð ‡�×Ññ1ó ð1ð4 ‡�×ÑñIó ðIò(	Nð ‡�×ÑØ‡�×Ññ6ó ó ð6ò0 @òF	'ð ‡�×ÑÐ/Ø‰e�B‹iÐ˜6¡5¨£9Ð-¨tÐ4Ø‰e�B‹iÐ˜6¡5¨£9Ð-Ø+ð-á�B‹i¡ r£Ñ+¨f±e¸B³iÐ-@Ø-ð/ð	2ó ñ'óð'ð. ‡�‡�ñ$ó ð$ò@'óøðM ò Ø	ƒBðûð ò Ø	ƒBðûð ò Ø€N€B‹ðús4   ”N' µN5 ÁO Î'N2Î1N2Î5O Î?O Ï	OÏO