Ë
    ìmxi	�  ã                   óf  — d dl Z d dlZd dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
Z
d dlZd dlmZ d dlmZ d dlmZmZmZ 	 d dlmZ d dlmZmZ 	 d dlZd dlmZ d d	lm Z  d d
lm!Z! 	 d dl"Z#e
jH                  j*                  Z%d„ Z&d„ Z'e
jH                  jD                  d„ «       Z(e
jH                  jD                  d„ «       Z)e
jH                  j4                  d„ «       Z*e
jH                  j4                  d„ «       Z+e
jH                  j4                  d„ «       Z,d„ Z-d„ Z.d„ Z/e
jH                  j`                  d„ «       Z1e
jH                  j4                  d„ «       Z2e
jH                  j4                  d„ «       Z3d„ Z4e
jH                  j4                  d„ «       Z5d„ Z6e
jH                  jo                  dd ejp                  «       g«      e
jH                  jo                  dd«      d„ «       «       Z9d„ Z:d „ Z;d!„ Z<d"„ Z=d#„ Z>d$„ Z?d%„ Z@d&„ ZAe
jH                  j4                  d'„ «       ZBe
jH                  j4                  d(„ «       ZCe
jH                  j4                  d)„ «       ZDd*„ ZEd+„ ZFe
jH                  j4                  d,„ «       ZGd-„ ZHe
jH                  j4                  e
jH                  j’                  e
jH                  j•                  d.«      e
jH                  j•                  d/«      d0„ «       «       «       «       ZKe
jH                  jo                  d1d2„ d3„ d4„ d5„ g«      e
jH                  jo                  d6d7d8g«      d9„ «       «       ZLd:„ ZMd;„ ZNd<„ ZOd=„ ZPd>„ ZQd?„ ZRe
jH                  j¦                  d@„ «       ZTe
jH                  jo                  dAdBdCdDgg«      dE„ «       ZUy# e$ r dZY �ŒAw xY w# e$ r dxZZY �Œ:w xY w# e$ r dZ#Y �ŒCw xY w)Fé    N)ÚOrderedDict)Úcopytree)ÚDecimal)Úfs)Úutil)Ú_check_roundtripÚ_roundtrip_tableÚ_test_table)Ú_read_tableÚ_write_table)Údataframe_with_lists)Úalltypes_samplec                 ó:  — t        j                  dg d¢i«      }t        j                  t        d¬«      5  t        || dz  d¬«       d d d «       t        j                  t        d¬«      5  t        || dz  d¬	«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)
NÚa©é   é   é   z"Unsupported Parquet format version©Úmatchztest_version.parquetz2.2©Úversionz%Unsupported Parquet data page version)Údata_page_version)ÚpaÚtableÚpytestÚraisesÚ
ValueErrorr   )Útempdirr   s     úW/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/parquet/test_basic.pyÚtest_parquet_invalid_versionr!   <   s‘   € Ü�H‰H�cš9Ð%Ó&€EÜ	�‰”zÐ)MÔ	Nñ MÜ�U˜GÐ&<Ñ<ÀeÕL÷Mä	�‰”zð *!ô 
"ñ .ä�U˜GÐ&<Ñ<Ø',õ	.÷.ð .÷Mð Mú÷.ð .ús   µBÁ*BÂBÂBc                  ó®   — t        j                  g d¢dz  «      } t         j                  j                  | gdg¬«      }ddg}|D ]  }t	        ||¬«       Œ y )Nr   i † Úf0©Únamesi   i   )Údata_page_size)r   ÚarrayÚTableÚfrom_arraysr   )ÚarrÚtÚ
page_sizesÚtarget_page_sizes       r    Útest_set_data_page_sizer.   F   sY   € Ü
�(‰(’9˜vÑ%Ó
&€CÜ
�‰×Ñ˜c˜U¨4¨&ÐÓ1€Að ˜7Ð#€JØ&ò =ÐÜ˜Ð+;Ö<ñ=ó    c                  ó8   — t        d«      } t        | ddd¬«       y )Néd   é
   r   ú2.4)r&   Úwrite_batch_sizer   )r
   r   ©r   s    r    Útest_set_write_batch_sizer6   P   s   € ä˜Ó€EäØ˜b°1¸eör/   c                  ó²   — t        d«      } t        | ddd¬«       t        j                  t        «      5  t        | ddd¬«       d d d «       y # 1 sw Y   y xY w)Nr1   r   r2   r3   )Údictionary_pagesize_limitr&   r   r   )r
   r   r   r   Ú	TypeErrorr5   s    r    Ú"test_set_dictionary_pagesize_limitr:   Y   sQ   € ä˜Ó€Eä�U°aØ$&°õ7ô 
�‰”yÓ	!ñ ;Ü˜¸#Ø(*°Eõ	;÷;÷ ;ñ ;ús   ´AÁAc            	      óÂ  — g } t         j                  j                  t        d¬«      «      }| j	                  t         j
                  j                  |gdz  «      «       t        «       \  }}t         j                  j                  |«      }| j	                  t         j
                  j                  |gdz  «      «       dD ]  }dD ]  }| D ]  }t        |d||¬«       Œ Œ Œ! y )Nr2   ©Úsizer   )z1.0z2.0)TFú2.6)r   r   Úuse_dictionary)	r   ÚRecordBatchÚfrom_pandasr   Úappendr(   Úfrom_batchesr   r   )ÚtablesÚbatchÚdfÚ_r   r?   r   s          r    Útest_chunked_table_writerH   e   sÅ   € ð €FÜ�N‰N×&Ñ&¤¸BÔ'?Ó@€EØ
‡M�M”"—(‘(×'Ñ'¨¨°!©Ó4Ô5Ü Ó"�E€BˆÜ�N‰N×&Ñ& rÓ*€EØ
‡M�M”"—(‘(×'Ñ'¨¨°!©Ó4Ô5à+ò 3ÐØ+ò 	3ˆNØò 3�Ü Ø 5Ø&7Ø#1ö3ñ3ñ	3ñ3r/   c                 óH  — t        d¬«      }t        j                  j                  |«      }t	        |ddid¬«       t        | dz  «      }t        |d«      5 }t        ||d¬	«       d d d «       t        j                  |d¬
«      }|j                  |«      sJ ‚y # 1 sw Y   Œ4xY w)Nr2   r<   Ú
memory_mapTr>   ©Úread_table_kwargsr   Útmp_fileÚwbr   )rJ   ©r   r   r(   rA   r   ÚstrÚopenr   ÚpqÚread_pandasÚequals©r   rF   r   ÚfilenameÚfÚ
table_reads         r    Útest_memory_maprY   x   s–   € ä	˜bÔ	!€Bä�H‰H× Ñ  Ó$€EÜ�U¨|¸TÐ.BØ"õ$ô �7˜ZÑ'Ó(€HÜ	ˆh˜Ó	ð . Ü�U˜A uÕ-÷.ä—‘ °TÔ:€JØ×Ñ˜UÔ#Ð#Ñ#÷.ð .úó   ÁBÂB!c                 óH  — t        d¬«      }t        j                  j                  |«      }t	        |ddid¬«       t        | dz  «      }t        |d«      5 }t        ||d¬	«       d d d «       t        j                  |d
¬«      }|j                  |«      sJ ‚y # 1 sw Y   Œ4xY w)Nr2   r<   Úbuffer_sizei  r>   rK   rM   rN   r   i   )r\   rO   rU   s         r    Útest_enable_buffered_streamr]   ‡   s–   € ä	˜bÔ	!€Bä�H‰H× Ñ  Ó$€EÜ�U¨}¸dÐ.CØ"õ$ô �7˜ZÑ'Ó(€HÜ	ˆh˜Ó	ð . Ü�U˜A uÕ-÷.ä—‘ °dÔ;€JØ×Ñ˜UÔ#Ð#Ñ#÷.ð .úrZ   c                 ó>  — t         j                  j                  t        j                  dg«      gdg«      }d}| |z  }|j	                  «       rJ ‚t        |t        |«      «       |j	                  «       sJ ‚t        t        |«      «      }|j                  |«      sJ ‚y )Né*   Úintsz	foo # bar)	r   r(   r)   r'   Úexistsr   rP   r   rT   )r   r   rV   ÚpathrX   s        r    Útest_special_chars_filenamerc   –   sƒ   € Ü�H‰H× Ñ ¤"§(¡(¨B¨4£.Ð!1°F°8Ó<€EØ€HØ�XÑ€DØ�{‰{Œ}ÐÐÜ�œ˜D›	Ô"Ø�;‰;Œ=Ðˆ=ÜœS ›YÓ'€JØ×Ñ˜UÔ#Ð#Ñ#r/   c                  ó  — t        j                  t        d¬«      5  t        j                  d «       d d d «       t        j                  t        d¬«      5  t        j
                  d «       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   y xY w)NÚNoner   )r   r   r9   rR   Ú
read_tableÚParquetFile© r/   r    Útest_invalid_sourceri   ¡   si   € ô 
�‰”y¨Ô	/ñ Ü
�‰�dÔ÷ô 
�‰”y¨Ô	/ñ Ü
�‰�tÔ÷ð ÷ð ú÷ð ús   œA4ÁB Á4A=Â B	c                 óP  — ddl m}  G d„ d«      }| dz  }t        j                  dg d¢i«      }t	        ||«       |j                  d|¬	«      5  t        j                  t        d
¬«      5  t        j                  |dg¬«       d d d «       t        j                  t        d¬«      5  t        j                  |ddg¬«       d d d «       t        j                  t        d¬«      5  t        j                  ||j                  ¬«       d d d «       t        j                  t        d¬«      5  t        j                  | «       d d d «       t        j                  |«      }||k(  s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   ŒSxY w# 1 sw Y   y xY w)Nr   )Úmockc                   ó   — e Zd Zd„ Zy)ú;test_read_table_without_dataset.<locals>.MockParquetDatasetc                 ó   — t        d«      ‚)NÚMockParquetDataset)ÚImportError)ÚselfÚargsÚkwargss      r    Ú__init__zDtest_read_table_without_dataset.<locals>.MockParquetDataset.__init__¯   s   € ÜÐ2Ó3Ð3r/   N)Ú__name__Ú
__module__Ú__qualname__rt   rh   r/   r    ro   rm   ®   s   „ ó	4r/   ro   útest.parquetr   r   z#pyarrow.parquet.core.ParquetDataset)Únewzthe 'filters' keywordr   )Úintegerú=r   )Úfilterszthe 'partitioning' keywordÚweekÚcolor)Úpartitioningzthe 'schema' argument©Úschemaúthe 'source' argument)Úunittestrk   r   r   r   Úpatchr   r   r   rR   rf   r�   )r   rk   ro   rb   r   Úresults         r    Útest_read_table_without_datasetr†   «   sU  € Ý÷4ñ 4ð �^Ñ#€DÜ�H‰H�cš9Ð%Ó&€EÜ�˜Ôà	�‰Ð9Ð?QˆÓ	Rñ 
Ü�]‰]œ:Ð-DÔEñ 	?Ü�M‰M˜$Ð)<Ð(=Õ>÷	?ä�]‰]œ:Ð-IÔJñ 	@Ü�M‰M˜$¨f°gÐ->Õ?÷	@ä�]‰]œ:Ð-DÔEñ 	5Ü�M‰M˜$ u§|¡|Õ4÷	5ä�]‰]œ:Ð-DÔEñ 	#Ü�M‰M˜'Ô"÷	#ä—‘˜tÓ$ˆØ˜ŠÐ‰÷
ð 
÷	?ð 	?ú÷	@ð 	@ú÷	5ð 	5ú÷	#ð 	#ú÷
ð 
úsl   ÁFÁ*E,Â#FÂ&E8Ã #FÃ#"FÄ#FÄ(FÄ>$FÅ,E5	Å1FÅ8F	Å=FÆF	Æ	FÆF	ÆFÆF%c                  ót   — t        j                  t        t        d«      «      gdg¬«      } t	        | d¬«       y )Ni@œ  r#   r$   r   )Úrow_group_size)r   r   ÚlistÚranger   )r+   s    r    Ú(test_file_with_over_int16_max_row_groupsr‹   Ã   s,   € ô 	�‰”$”u˜U“|Ó$Ð%¨d¨VÔ4€AÜ�Q qÖ)r/   c                  óZ  — t        d¬«      } t        j                  j                  | «      }t        j                  j	                  |j                  «       D �cg c]  }|j                  d«      d d ‘Œ c}|j                  j                  ¬«      }|j                  j                  d«      j                  t        j                  «       k(  sJ ‚|j                  j                  d«      j                  t        j                  t        j                  «       «      k(  sJ ‚t        |d¬«       y c c}w )	Nr2   r<   r   r$   ÚnullÚ	null_listr>   r   )r   r   r(   rA   r)   ÚitercolumnsÚchunkr�   r%   ÚfieldÚtyper�   Úlist_r   )rF   r   Úcols      r    Útest_empty_table_roundtripr•   Î   sÝ   € ä	˜bÔ	!€Bô �H‰H× Ñ  Ó$€EÜ�H‰H× Ñ Ø%*×%6Ñ%6Ó%8Ö9˜cˆ�‰�1‹�b�qÒ	Ò9Ø�l‰l× Ñ ð !ó "€Eð �<‰<×Ñ˜fÓ%×*Ñ*¬b¯g©g«iÒ7Ð7Ð7Ø�<‰<×Ñ˜kÓ*×/Ñ/´2·8±8¼B¿G¹G»IÓ3FÒFÐFÐFÜØ�uöùò 	:s   ÁD(c                  ó„   — t        j                  «       } t        j                  j	                  | d¬«      }t        |«       y )NF)Úpreserve_index)ÚpdÚ	DataFramer   r(   rA   r   )rF   Úemptys     r    Útest_empty_table_no_columnsr›   Þ   s.   € ä	�‰‹€BÜ�H‰H× Ñ  °EÐ Ó:€EÜ�UÕr/   c            	      óH  — t        t        j                  «       t        j                  t        j                  «       «      ¬«      } g t        dd¬«      gg}|D �cg c]:  }t        j
                  |t        j                  | «      ¬«      j                  «       ‘Œ< }}|D �cg c]6  }t        j                  j                  |t        j                  | «      ¬«      ‘Œ8 }}t        j                  j                  |t        j                  | «      «      }t        |«       y c c}w c c}w )N)Úint32Úlist_stringr   )ÚG©r’   r€   )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ã   € äÜ�h‰h‹jÜ—H‘HœRŸY™Y›[Ó)ô€Dð ” 1°&Ô9Ð<Ð=€Dð #ö$Øô —‘˜%¤b§i¡i°£oÔ6×>Ñ>Õ@ð $€Ið $ð  )ö*Øô —.‘.×,Ñ,¨U¼2¿9¹9ÀT»?Ð,ÕKð *€Jð *ä
�(‰(×
Ñ
 
¬B¯I©I°d«OÓ
<€CÜ�SÕùò$ùò*s   Á?DÂ;Dc                 ó  — | dz  }t        j                  dt        j                  dt        j                  ¬«      i«      }t        ||«       t        |«      }|j                  «       }t        j                  ||«       t        | «      dz   }t        j                  dt        j                  dt        j                  ¬«      i«      }t        ||«       t        |«      }|j                  «       }t        j                  ||«       y )Nzzzz.parquetÚxr2   ©Údtype)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Ü	�‰�sœBŸI™I b´·±Ô9Ð:Ó	;€BÜ��TÔÜ˜TÓ"€JØ×"Ñ"Ó$€GÜ×Ñ˜"˜gÔ&ô ˆw‹<˜-Ñ'€DÜ	�‰�sœBŸI™I b´·±Ô9Ð:Ó	;€BÜ��TÔÜ˜TÓ"€JØ×"Ñ"Ó$€GÜ×Ñ˜"˜gÕ&r/   c                 óX  — | dz  }t        j                  dg d¢i«      }t        ||«       t        j                  |«      }t        |«      }|j                  |«      sJ ‚t        j                  t        «      5  t        |t        j                  «       ¬«       d d d «       y # 1 sw Y   y xY w)Nrx   r   r   ©Ú
filesystem)r   r   r   r   ÚFSProtocolClassr   rT   r   r   r9   r   Ú
FileSystem)r   rb   r   Úfs_protocol_objr…   s        r    Útest_fspathr¼     sŒ   € à�^Ñ#€DÜ�H‰H�cš9Ð%Ó&€EÜ�˜Ôä×*Ñ*¨4Ó0€Oä˜Ó)€FØ�=‰=˜ÔÐÐô 
�‰”yÓ	!ñ AÜ�O´·±³Õ@÷A÷ Añ Aús   Á7 B Â B)r¸   Úname)údata.parquetu   ä¾‹.parquetc                 ó>  — t        j                  dg d¢i«      }| |z  }t        j                  |t	        |«      «       t        j                  | «      5  t        j                  ||¬«      }d d d «       j                  |«      sJ ‚|j                  «        |j                  «       rJ ‚t        j                  | «      5  t        j                  |||¬«       d d d «       t        j                  |«      }|j                  |«      sJ ‚y # 1 sw Y   Œ�xY w# 1 sw Y   Œ>xY w)Nr   r   r·   )r   r   rR   Úwrite_tablerP   r   Ú
change_cwdrf   rT   Úunlinkra   )r   r¸   r½   r   rb   r…   s         r    Útest_relative_pathsrÃ   $  sâ   € ô �H‰H�cš9Ð%Ó&€EØ�T‰>€Dô ‡N�N�5œ#˜d›)Ô$Ü	�‰˜Ó	!ñ <Ü—‘˜t°
Ô;ˆ÷<à�=‰=˜ÔÐÐà‡K�K„MØ�{‰{Œ}ÐÐô 
�‰˜Ó	!ñ ;Ü
�‰�u˜d¨zÕ:÷;ä�]‰]˜4Ó €FØ�=‰=˜ÔÐÑ÷<ð <ú÷;ð ;ús   ÁDÂ=DÄDÄDc                  óŠ   — t        j                  t        «      5  t        j                  d«       d d d «       y # 1 sw Y   y xY w)Nzi-am-not-existing.parquet)r   r   ÚFileNotFoundErrorrR   rf   rh   r/   r    Útest_read_non_existing_filerÆ   =  s1   € ä	�‰Ô(Ó	)ñ 3Ü
�‰Ð1Ô2÷3÷ 3ñ 3ús	   š9¹Ac                  óÌ   —  G d„ dt         j                  «      } t        j                  t        d¬«      5  t        j                   | d«      «       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zd„ Zd„ Zy)ú3test_file_error_python_exception.<locals>.BogusFilec                 ó   — t        d«      ‚©NÚzorglub©ÚZeroDivisionError©rq   rr   s     r    Úreadz8test_file_error_python_exception.<locals>.BogusFile.readE  ó   € Ü# IÓ.Ð.r/   c                 ó   — t        d«      ‚rË   rÍ   rÏ   s     r    Úseekz8test_file_error_python_exception.<locals>.BogusFile.seekH  rÑ   r/   N)ru   rv   rw   rÐ   rÓ   rh   r/   r    Ú	BogusFilerÉ   D  s   „ ò	/ó	/r/   rÔ   rÌ   r   r/   )ÚioÚBytesIOr   r   rÎ   rR   rf   )rÔ   s    r    Ú test_file_error_python_exceptionr×   C  sH   € ô/”B—J‘Jô /ô 
�‰Ô(°	Ô	:ñ &Ü
�‰‘i “nÔ%÷&÷ &ñ &ús   µAÁA#c                 óô  — t        j                  dg d¢i«      }t        j                  |t	        | dz  «      «       t        t	        | dz  «      d«      5 }t        j                  |«      }d d d «       j                  |«      sJ ‚t        t	        | dz  «      d«      5 }t        j                  t        j                  |«      «      }d d d «       |j                  |«      sJ ‚y # 1 sw Y   ŒyxY w# 1 sw Y   Œ)xY w)Nr   r   r¾   Úrb)	r   r   rR   rÀ   rP   rQ   rf   rT   Ú
PythonFile)r   r   rW   r…   s       r    Útest_parquet_read_from_bufferrÛ   P  sÌ   € ä�H‰H�cš9Ð%Ó&€EÜ‡N�N�5œ#˜g¨Ñ6Ó7Ô8ä	Œc�'˜NÑ*Ó+¨TÓ	2ð "°aÜ—‘˜qÓ!ˆ÷"à�=‰=˜ÔÐÐä	Œc�'˜NÑ*Ó+¨TÓ	2ð 1°aÜ—‘œrŸ}™}¨QÓ/Ó0ˆ÷1à�=‰=˜ÔÐÑ÷"ð "ú÷1ð 1ús   ÁC"Â)C.Ã"C+Ã.C7c            
      óþ  — t        j                  t        t        t        t        d«      «      «      «      } t        j                  t        t        t        t        d«      «      «      «      }t        j                  ddgdz  «      }| | g}t         j                  j                  |ddg¬«      }t        ||ddd¬	«       t        ||ddgdg¬	«       t        ||dddgddg¬	«       t         j                  j                  | | ||gg d
¢¬«      }t        ||ddgddg¬«       t         j                  j                  |gdg¬«      }t        j                  t        d¬«      5  t        ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr1   TFé2   r   Úbr$   Úgzip)ÚexpectedÚcompressionr?   Úuse_byte_stream_split©r   rÞ   ÚcÚdrå   rä   )rà   r?   râ   ÚtmpúBYTE_STREAM_SPLIT only supportsr   )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ñ   ^  sb  € ä—‘œœc¤%¬¨s«Ó4Ó5Ó6€IÜ�h‰h”tœC¤¤U¨3£ZÓ0Ó1Ó2€GÜ�x‰x˜˜u˜¨Ñ*Ó+€HØ˜YÐ'€JÜ�H‰H× Ñ  °C¸°:Ð Ó>€Eô �U U¸Ø$)ÀõGô
 �U U¸Ø%( EØ,/¨5õ2ô
 �U U¸Ø%(¨# JØ,/°¨:õ7ô
 —(‘(×&Ñ&¨	°9¸gÀwÐ'OÚ-Að 'ó C€Kä�[¨;Ø%(¨# JØ,/°¨:õ7ô �H‰H× Ñ  ( °E°7Ð Ó;€EÜ	�‰”wÐ&GÔ	Hñ /Ü˜¨ÀdØ(-õ	/÷/÷ /ñ /ús   ÅE3Å3E<c           
      óL  — t        j                  t        t        t        t        d«      «      «      t        j                  dd«      ¬«      }t        j                  t        t        t        t        d«      «      «      t        j                  dd«      ¬«      }t        j                  t        t        t        t        d«      «      «      t        j                  dd«      ¬«      }t        j                  dd	gd
z  «      }|||g}t         j                  j                  |g d¢¬«      }t        ||dd	d¬«       t        j                  j                  | d«      }t        j                  ||dd	d¬«       t        j                  |«      }|j                   j#                  d«      }	|j                   j#                  d«      }
|	j$                  dk(  sJ ‚|
j$                  dk(  sJ ‚t        ||dd	ddddœ¬«       t         j                  j                  ||||gg d¢¬«      }t        ||d	d¬«       y )Nr1   é   r   r    é   é	   é   TFrÝ   ©r   rÞ   rä   r$   rß   )rà   rá   r?   Ústore_decimal_as_integerrx   )rá   r?   rø   r   r   ÚINT32ÚINT64ÚDELTA_BINARY_PACKED©r   rÞ   )rà   rá   r?   rø   Úcolumn_encodingrã   )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Ý  € Ü—h‘hœt¤C¬´°s³Ó$<Ó=Ü$&§M¡M°!°QÓ$7ô9€OäŸ™¤¤c¬'´5¸³:Ó&>Ó!?Ü&(§m¡m°B¸Ó&:ô<Ðä—x‘x¤¤S¬´%¸³*Ó%=Ó >Ü%'§]¡]°2°qÓ%9ô;Ðä�x‰x˜˜u˜¨Ñ*Ó+€HØ#Ð%6Ð8HÐI€LÜ�H‰H× Ñ  ²_Ð ÓE€Eô �UØ#Ø!'Ø$)Ø.2õ	4ô —g‘g—l‘l 7¨NÓ;€OÜ‡N�N�5˜/Ø%Ø"'Ø,0õ2ô
 —‘ Ó0€JØ"×)Ñ)×0Ñ0°Ó3ÐØ$×+Ñ+×2Ñ2°1Ó5Ðà×*Ñ*¨gÒ5Ð5Ð5Ø×,Ñ,°Ò7Ð7Ð7ô �UØ#Ø!'Ø$)Ø.2à3Ø3ñ&õô —(‘(×&Ñ&Ø	Ð+Ð-=¸xÐHÚ"ð 'ó $€Kô �[Ø)Ø$)Ø.2ö4r/   c                  ó&  — t        j                  t        t        t        t        d«      «      «      «      } t        j                  t        t        t        t        d«      «      «      «      }t        j                  t        d«      D �cg c]  }t        |«      ‘Œ c}t        j                  «       ¬«      }t        j                  t        d«      D �cg c]  }t        |«      j                  d«      ‘Œ c}t        j                  d«      ¬«      }t        j                  g d¢dz  «      }t         j                  j                  | ||||gg d¢¬«      }t        ||dd	d	d
d	dœ¬«       t        ||dd
¬«       t        ||dd
dd
dœ¬«       t        ||dd
dddœ¬«       t        ||dd
ddddœ¬«       t        ||dddi¬«       t        j                  t        d¬«      5  t        ||dd
d
d	dœ¬«       d d d «       t        j                  t         d¬«      5  t        ||ddd
d
dœ¬«       d d d «       t        j                  t"        d¬«      5  t        ||dd¬«       d d d «       t        j                  t"        d¬«      5  t        ||dddi¬«       d d d «       t        j                  t"        «      5  t        ||dgdd
i¬«       d d d «       t        j                  t"        «      5  t        ||dd
i¬«       d d d «       t        j                  t"        «      5  t        ||ddgdd	d
dœ¬«       d d d «       t        j                  t"        «      5  t        ||dddd	d
dœ¬«       d d d «       t        j                  t$        «      5  t        ||dd¬«       d d d «       y c c}w c c}w # 1 sw Y   �Œ¸xY w# 1 sw Y   �ŒŽxY w# 1 sw Y   �Œhx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   ŒÈxY w# 1 sw Y   ŒžxY w# 1 sw Y   y xY w) Nr1   r    r2   )FTFFé   )r   rÞ   rä   rå   Úer$   FÚBYTE_STREAM_SPLITÚPLAINrã   )rà   r?   rý   rû   r÷   ÚDELTA_LENGTH_BYTE_ARRAYÚDELTA_BYTE_ARRAYr  ÚRLErç   r   )r   rä   r  z)DELTA_BINARY_PACKED encoder only supportsz+'RLE_DICTIONARY' is already used by defaultÚRLE_DICTIONARYz/Unsupported column encoding: 'MADE_UP_ENCODING'r   ÚMADE_UP_ENCODINGrÞ   )rà   rý   )rà   r?   râ   rý   T)r   r'   r‰   rè   ré   rŠ   rê   rP   ÚbinaryÚzfillr(   r)   r   r   r   rë   ÚOSErrorr   r9   )rì   rí   r«   Úarr_binÚarr_flbarî   rð   s          r    Útest_column_encodingr  º  sß  € Ü—‘œœc¤%¬¨s«Ó4Ó5Ó6€IÜ�h‰h”tœC¤¤U¨3£ZÓ0Ó1Ó2€GÜ�h‰h¬¨c«
Ö3 1œ˜A�Ò3¼"¿)¹)»+ÔF€GÜ�x‰xÜ#(¨£:Ö.˜aŒˆQ‹�‰�bÕ	Ò.´R·Y±Y¸r³]ôD€Hä�x‰xÒ3°bÑ8Ó9€HÜ—(‘(×&Ñ&Ø	�G˜W h°Ð9Ú'ð 'ó )€Kô �[¨;ÀuØ+>Ø+>Ø+2Ø+>ñ&@õAô �[¨;Ø$)Ø%,õ.ô
 �[¨;Ø$)Ø+2Ø+@Ø+2ñ&4õ5ô �[¨;Ø$)Ø+2Ø+@Ø+Dñ&FõGô �[¨;Ø$)Ø+2Ø+@Ø+=Ø+=ñ&?õ@ô �[¨;Ø$)Ø&)¨5 \õ3ô 
�‰”wØ>ô
@ñ Eä˜¨{Ø(-Ø/6Ø/6Ø/Bñ*Dõ	E÷Eô 
�‰”wØHô
Jñ 9ä˜¨{Ø(-Ø/DØ/6Ø/6ñ*8õ	9÷9ô 
�‰”zØJô
Lñ ;ä˜¨{Ø(-Ø)9õ	;÷;ô 
�‰”zØNô
Pñ Dä˜¨{Ø(-Ø*-Ð/AÐ)Bõ	D÷Dô 
�‰”zÓ	"ñ 9Ü˜¨{Ø),¨Ø*-¨w¨õ	9÷9ô 
�‰”zÓ	"ñ 9Ü˜¨{Ø*-¨w¨õ	9÷9ô 
�‰”zÓ	"ñ 9Ü˜¨{Ø(-Ø03¨uØ/4Ø/BØ/6ñ*8õ	9÷9ô 
�‰”zÓ	"ñ 9Ü˜¨{Ø(-Ø/3Ø/4Ø/BØ/6ñ*8õ	9÷9ô 
�‰”yÓ	!ñ /Ü˜¨{Ø(-Ø)-õ	/÷/ð /ùòo 4ùâ.÷`Eñ Eú÷9ñ 9ú÷;ñ ;ú÷Dñ Dú÷9ñ 9ú÷9ð 9ú÷9ð 9ú÷9ð 9ú÷/ð /úsx   ÂNÃ!NÇN"ÈN/ÉN<É9O	Ê,OË O#ÌO/Í	O;Í?PÎ"N,Î/N9Î<OÏ	OÏO Ï#O,Ï/O8Ï;PÐPc            
      óD  — t        j                  t        t        t        t        d«      «      «      «      } | | g}t         j                  j                  |ddg¬«      }t        ||dd¬«       t        ||dd¬«       t        ||dd	d
œ¬«       t        ||dddd
œ¬«       t        ||dd¬«       t        ||dd¬«       g d¢}t        j                  «       }|D ]<  \  }}t        j                  t        t        f«      5  t        ||||¬«       d d d «       Œ> y # 1 sw Y   ŒIxY w)Néè  r   rÞ   r$   rß   r   )rà   rá   Úcompression_levelró   Úsnappyrü   )rà   rá   r   r   Úlz4rõ   ))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*   r¥   r   Úinvalid_combinationsÚbufÚcodecÚlevels          r    Útest_compression_levelr(  :  s"  € Ü
�(‰(”4œœC¤ t£Ó-Ó.Ó
/€CØ�ˆ:€DÜ�H‰H× Ñ  ¨c°3¨ZÐ Ó8€Eô �U U¸Ø'(õ*ô
 �U U¸Ø'(õ*ô �U UØ'-°HÑ!=õ?ô �U U¸Ø-.°QÑ'7õ9ô
 �U U¸Ø'(õ*ô �U U¸Ø'(õ*ò8Ðä
�*‰*‹,€CØ.ò 2‰ˆ�Ü�]‰]œJ¬Ð0Ó1ñ 	2Ü˜ °Ø+0õ2÷	2ð 	2ñ2÷	2ð 	2ús   Ã;DÄD	c                  óØ   — t        j                  g d¢«      } d}t         j                  j                  | g|g«      }t	        |ddi¬«      }d}|j
                  d   j                  |k(  sJ ‚y )N)r   r   r   r   r!  zprohib; ,	{}ÚflavorÚspark)Úwrite_table_kwargsÚprohib______r   )r   r'   r(   r)   r	   r�   r½   )Úa0r½   r   r…   Úexpected_names        r    Ú test_sanitized_spark_field_namesr0  g  sb   € Ü	�‰’/Ó	"€BØ€DÜ�H‰H× Ñ  " ¨ vÓ.€Eä˜e¸À7Ð8KÔL€Fà"€MØ�=‰=˜Ñ× Ñ  MÒ1Ð1Ñ1r/   c                  ó>  — t        d¬«      } t        j                  j                  | «      }t	        j
                  «       }t        ||dd¬«       |j                  d«       t        |d¬«      }|j                  d«       t        |d	¬«      }|j                  |«      sJ ‚y )
Ni'  r<   ÚSNAPPYr>   )rá   r   r   T)Úuse_threadsF)
r   r   r(   rA   rÕ   rÖ   r   rÓ   r   rT   )rF   r   r%  Útable1Útable2s        r    Útest_multithreaded_readr6  r  sy   € ä	˜eÔ	$€Bä�H‰H× Ñ  Ó$€Eä
�*‰*‹,€CÜ�˜¨¸5ÕAà‡H�HˆQ„KÜ˜¨$Ô/€Fà‡H�HˆQ„KÜ˜¨%Ô0€Fà�=‰=˜Ô Ð Ñ r/   c                  óÒ  — t        j                  t        j                  d«      gg d¢¬«      } t        j
                  j                  | j                  «       «      }t        j                  «       }t        ||d¬«       |j                  d«       t        |«      }|j                  |«      sJ ‚t        j                  t         «      5  t        ||d¬«       d d d «       y # 1 sw Y   y xY w)Nr!  )ÚAÚBÚCÚD)Úcolumnséÿÿÿÿ)Ú
chunk_sizer   )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_chunksizer@  „  s¥   € ä�<‰<œŸ™ 1›˜Ò0DÔE€DÜ�H‰H× Ñ  ×!1Ñ!1Ó!3Ó4€Eä
�*‰*‹,€CÜ�˜¨Õ+à‡H�HˆQ„KÜ˜Ó€Fà�=‰=˜ÔÐÐä	�‰”zÓ	"ñ /Ü�U˜C¨AÕ.÷/÷ /ñ /ús   ÃCÃC&c                 óf  — t        j                  t        d«      t        t        dd«      «      t	        j
                  dd«      j                  d«      t	        j
                  ddd	¬
«      g d¢t        j                  t        d«      «      t        j                  dd¬«      t        j                  ddd¬«      t        j                  ddd¬«      dœ	«      }t        j                  j                  |«      }| dz  }	 t        ||d¬«       |j                  «       rJ ‚y # t        j                  $ r Y Œ(w xY w)NÚabcr   r!  r   é   Úu1ç      @ç      @Úfloat64r¬   ©TFTÚ20130101©Úperiodsz
US/Eastern)rK  ÚtzÚns)rK  Úfreq)	r   rÞ   rä   rå   r  rW   ÚgÚhÚirM   r3   r   )r˜   r™   r‰   rŠ   r®   r¯   ÚastypeÚCategoricalÚ
date_ranger   r(   rA   r   ÚArrowExceptionra   )r   rF   ÚpdfrV   s       r    Ú(test_write_error_deletes_incomplete_filerW  •  sû   € ô 
�‰œD ›KÜ ¤ q¨!£Ó-ÜŸI™I a¨›O×2Ñ2°4Ó8ÜŸI™I c¨3°iÔ@Ú/ÜŸN™N¬4°«;Ó7ÜŸM™M¨*¸aÔ@ÜŸM™M¨*¸aØ-9ô;äŸM™M¨*¸aÀdÔKñ	Mó 	
N€Bô �(‰(×
Ñ
˜rÓ
"€Cà˜Ñ#€Hðô 	�S˜(¨EÕ2ð �‰Ô Ð Ð Ð øô ×Ñò Ùðús   Ã9D ÄD0Ä/D0c                 ó†   — d}	 t        j                  |«       y # t        $ r}||j                  d   v sJ ‚Y d }~y d }~ww xY w)Nznonexistent-file.parquetr   )rR   rf   Ú	Exceptionrr   )r   rb   r  s      r    Útest_read_non_existent_filerZ  °  s>   € Ø%€Dð!Ü
�‰�dÕøÜò !Ø�q—v‘v˜a‘yÑ Ð Õ ûð!ús   „ š	A £;»A c                 ó²   — t        j                  «       5  t        j                  d¬«       t        j                  | dz  «       d d d «       y # 1 sw Y   y xY w)NÚerror)Úactionzv0.7.1.parquet)ÚwarningsÚcatch_warningsÚsimplefilterrR   rf   )Údatadirs    r    Útest_read_table_doesnt_warnrb  ¸  sC   € Ü	×	 Ñ	 Ó	"ñ 2Ü×Ñ WÕ-Ü
�‰�gÐ 0Ñ0Ô1÷2÷ 2ñ 2ús   •/AÁAc                  óz  — t         j                  j                  t        j                  ddg«      gdg«      } t	        j
                  «       }t        j                  | |d¬«       |j                  d«       t        j                  |«      }t        j                  |j                  «       | j                  «       «       y )NrB  ÚdefÚsome_colrß   ©rá   r   )r   r(   r)   r'   rÕ   rÖ   rR   rÀ   rÓ   rf   r²   r³   r±   )r   rW   Ú	roundtrips      r    Útest_zlib_compression_bugrh  ¾  s€   € ô �H‰H× Ñ ¤"§(¡(¨E°5¨>Ó":Ð!;¸j¸\ÓJ€EÜ
�
‰
‹€AÜ‡N�N�5˜!¨Õ0à‡F�Fˆ1„IÜ—‘˜aÓ €IÜ×Ñ˜)×-Ñ-Ó/°·±Ó1BÕCr/   c                 ó  — t        | dz  «      }t        j                  t        j                  d¬«      5  t        |d«      5 }	 d d d «       t        j                  |«       d d d «       t        j                  t        j                  d¬«      5  t        |d«      5 }|j                  d«       d d d «       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   y xY w)Nrx   zsize is 0 bytesr   rN   zsize is 4 bytess   ffff)	rP   r   r   r   ÚArrowInvalidrQ   rR   rf   Úwrite)r   rb   rW   s      r    Útest_parquet_file_too_smallrl  Ê  sÑ   € Üˆw˜Ñ'Ó(€DÜ	�‰”r—‘Ð.?Ô	@ñ Ü�$˜Óð 	 Ø÷	ä
�‰�dÔ÷ô
 
�‰”r—‘Ð.?Ô	@ñ Ü�$˜Óð 	 Ø�G‰G�GÔ÷	ä
�‰�dÔ÷ð ÷		ð 	ú÷ð ú÷	ð 	ú÷ð úsG   ´CÁCÁCÂC6ÂC*Â,C6ÃC	ÃCÃC'Ã*C3	Ã/C6Ã6C?zignore:RangeIndex:FutureWarningz.ignore:tostring:DeprecationWarning:fastparquetc                 óî  — t        j                  d«      }t        j                  t	        d«      t	        t        dd«      «      t        j                  ddd¬«      g d	¢t        j                  d
d¬«      t        j                  g d¢«      dœ«      }t        j                  |«      }t        | dz  «      }t        j                  ||d ¬«       |j                  |«      }|j!                  «       }t#        j$                  ||«       t        | dz  «      }|j'                  ||«       t        j(                  |«      }|d   j+                  t,        «      |d<   t#        j$                  |j!                  «       |«       y )NÚfastparquetrB  r   r!  rE  rF  rG  r¬   rH  rI  r   rJ  )r   rÞ   r   )r   rÞ   rä   rå   r  rW   zcross_compat_arrow.parquetrf  z cross_compat_fastparquet.parquetrW   )r   Úimportorskipr˜   r™   r‰   rŠ   r®   r¯   rT  rS  r   r   rP   rR   rÀ   rg   r±   r²   r³   rk  rS   rR  Úobject)	r   ÚfprF   r   Ú
file_arrowÚfp_fileÚdf_fpÚfile_fastparquetÚtable_fps	            r    Ú$test_fastparquet_cross_compatibilityrw  ×  s(  € ô
 
×	Ñ	˜]Ó	+€Bä	�‰ä�e“Ü”e˜A˜q“kÓ"Ü—‘˜3 ¨9Ô5Ú$Ü—‘˜z°1Ô5Ü—‘¢Ó0ñ		
ó
€Bô �H‰H�R‹L€Eô �WÐ;Ñ;Ó<€JÜ‡N�N�5˜*°$Õ7à�n‰n˜ZÓ(€GØ×ÑÓ€EÜ×Ñ˜"˜eÔ$ô ˜7Ð%GÑGÓHÐØ‡H�HÐ˜rÔ"ä�~‰~Ð.Ó/€Hð �‰g�n‰nœVÓ$€B€s�GÜ×Ñ˜(×,Ñ,Ó.°Õ3r/   Úarray_factoryc                  ó6   — t        j                  dd gdz  «      S ©Nr   r2   ©r   r'   rh   r/   r    ú<lambda>r|     s   € ŒB�H‰H�a˜�Y ‘^Ó$€ r/   c                  óR   — t        j                  dd gdz  «      j                  «       S rz  ©r   r'   Údictionary_encoderh   r/   r    r|  r|    s    € ŒB�H‰H�a˜�Y ‘^Ó$×6Ñ6Ó8€ r/   c                  ó6   — t        j                  dd gdz  «      S ©NÚ r2   r{  rh   r/   r    r|  r|    s   € ŒB�H‰H�b˜$�Z "‘_Ó%€ r/   c                  óR   — t        j                  dd gdz  «      j                  «       S r�  r~  rh   r/   r    r|  r|    s    € ŒB�H‰H�b˜$�Z "‘_Ó%×7Ñ7Ó9€ r/   Úread_dictionaryFTc                 ó°  — t         j                  j                  d | «       i«      }t        j                  «       }t        j                  ||d¬«       |j                  d«       |rdgnd }t        j                  |d|¬«      }|j                  D ]E  }|j                  \  }|j                  «       d   }|j                  «       |j                  dz  k(  rŒEJ ‚ y )	Nr”   T)r?   r   F)r3  r„  r   ó    )r   r(   Úfrom_pydictrÕ   rÖ   rR   rÀ   rÓ   rf   r<  ÚchunksÚbuffersÚ
to_pybytesr=   )rx  r„  Ú
orig_tableÚbior   r”   r�   r%  s           r    Útest_buffer_contentsr�  ÿ  s³   € ô —‘×%Ñ% u©m«oÐ&>Ó?€JÜ
�*‰*‹,€CÜ‡N�N�:˜s°4Õ8Ø‡H�HˆQ„KÙ!0�u‘g°d€OÜ�M‰M˜#¨5Ø*9ô;€Eð �}‰}ò 4ˆØ—*‘*‰ˆØ�m‰m‹o˜aÑ ˆØ�~‰~Ó 3§8¡8¨eÑ#3Ó3Ð3Ð3ñ4r/   c                 óø   — t        j                  t        j                  t        d«      «      gdg¬«      }| dz  }t	        j
                  ||d¬«       t	        j                  |«      }|j                  |«      sJ ‚y )Nr!  r`   r$   zarrow-10480.pyarrow.gzÚGZIPrf  )r   r   r'   rŠ   rR   rÀ   rf   rT   )r   r   rb   r…   s       r    Ú"test_parquet_compression_roundtripr�    sa   € ô
 �H‰H”b—h‘hœu Q›xÓ(Ð)°&°Ô:€EØÐ-Ñ-€DÜ‡N�N�5˜$¨FÕ3Ü�]‰]˜4Ó €FØ�=‰=˜ÔÐÑr/   c                 óò  — t         j                  j                  t        j                  g d¬«      gdg«      }| dz  }d}t	        j
                  ||j                  «      5 }t        |«      D ]  }|j                  |«       Œ 	 d d d «       t	        j                  |«      }|j                  j                  |k(  sJ ‚t        |«      D ]$  }|j                  |«      j                  |«      rŒ$J ‚ y # 1 sw Y   ŒlxY w)Nr�   r    r#   zempty_row_groups.parquetr   )r   r(   r)   r'   rR   ÚParquetWriterr�   rŠ   rÀ   rg   ÚmetadataÚnum_row_groupsÚread_row_grouprT   )r   r   rb   Ú
num_groupsÚwriterrQ  Úreaders          r    Útest_empty_row_groupsr™  &  sà   € ä�H‰H× Ñ ¤"§(¡(¨2°GÔ"<Ð!=À¸vÓF€EàÐ/Ñ/€Dà€JÜ	×	Ñ	˜$ §¡Ó	-ð &°Ü�zÓ"ò 	&ˆAØ×Ñ˜uÕ%ñ	&÷&ô �^‰^˜DÓ!€FØ�?‰?×)Ñ)¨ZÒ7Ð7Ð7ä�:Óò 6ˆØ×$Ñ$ QÓ'×.Ñ.¨uÕ5Ð5Ð5ñ6÷&ð &ús   Á"C-Ã-C6c                 óæ   — d gdz  }|j                  dg«       t        j                  j                  |gdg«      }| dz  }t	        j
                  ||«       t	        j                  |«      }||k(  sJ ‚y )Ni   r   r  zarrow-11607.parquet)rB   r   r(   r)   rR   rÀ   rf   )r   r¥   r   rb   r5  s        r    Útest_reads_over_batchr›  8  sk   € Øˆ6�WÑ€DØ‡K�K��Ôô �H‰H× Ñ  $ ¨(¨Ó4€EàÐ*Ñ*€DÜ‡N�N�5˜$ÔÜ�]‰]˜4Ó €FØ�FŠ?Ð‰?r/   c                 óš  — | dz  }|j                  d¬«       t        j                  g d¢g d¢gddg¬«      }t        j                  ||d	z  «       t        j                  g d
¢g d¢gddg¬«      }t        j                  ||dz  «       t        j
                  t        |«      «      }t        j                  g d¢g d¢gddg¬«      }||k(  sJ ‚y )NÚ dataset_column_order_permutationT)Úexist_okr   )çš™™™™™¹?çš™™™™™É?ç333333Ó?r   rÞ   r$   zdata1.parquet)çš™™™™™Ù?ç      à?ç333333ã?)r!  ró   rC  zdata2.parquet)r   r   r   r!  ró   rC  )rŸ  r   r¡  r¢  r£  r¤  )Úmkdirr   r   rR   rÀ   rf   rP   )r   ÚcaseÚdata1Údata2r   r5  s         r    Ú test_permutation_of_column_orderr©  F  s³   € àÐ7Ñ7€DØ‡J�J˜€JÔä�H‰H’i¢Ð.°s¸C°jÔA€EÜ‡N�N�5˜$ Ñ0Ô1ä�H‰H’l¢IÐ.°s¸C°jÔA€EÜ‡N�N�5˜$ Ñ0Ô1ä�M‰Mœ#˜d›)Ó$€EÜ�X‰XÒ)Ú5ð7à  #˜Jô(€Fð �FŠ?Ð‰?r/   c                 óÞ  — | dz  }t        j                  t        t        d«      «      «      }d}t        j                  |g|z  t        |«      D �cg c]  }d|› �‘Œ	 c}¬«      }t        j                  ||«       t        j                  t        d¬«      5  t        j                  |d|z  ¬	«       d d d «       t        j                  t        d¬«      5  t        j                  ||¬
«       d d d «       t        j                  |d|z  ¬	«      }||k(  sJ ‚t        j                  |d|z  ¬
«      }||k(  sJ ‚t        j                  |«      }||k(  sJ ‚y c c}w # 1 sw Y   Œ¨xY w# 1 sw Y   ŒyxY w)Nzlargethrift.parquetr2   r  Úsome_long_column_name_r$   z1Couldn't deserialize thrift:.*Exceeded size limitr   rÝ   )Úthrift_string_size_limit)Úthrift_container_size_limitr1   r   )r   r'   r‰   rŠ   r   rR   rÀ   r   r   r  rf   )r   rb   r'   Únum_colsrQ  r   Úgots          r    Útest_thrift_size_limitsr°  Y  sK  € ØÐ*Ñ*€Dä�H‰H”Tœ% ›)“_Ó%€EØ€HÜ�H‰HØ	ˆ�(ÑÜ5:¸8³_ÖE°Ð'¨ sÒ+ÒEôG€Eô ‡N�N�5˜$Ôä	�‰ÜØEô
Gñ Dô 	�‰�d°R¸(±]ÕC÷Dô 
�‰ÜØEô
Gñ Bô 	�‰�d¸ÕA÷Bô
 �-‰-˜°s¸X±~Ô
F€CØ�%Š<Ðˆ<Ü
�-‰-˜¸!¸h¹,Ô
G€CØ�%Š<Ðˆ<Ü
�-‰-˜Ó
€CØ�%Š<Ð‰<ùò# F÷Dð Dú÷Bð Bús   ÁE
ÂEÃE#ÅE Å#E,c                 ó’  — | dz  }t        j                  dg d¢i«      }t        j                  ||d¬«       t        j                  |d¬«      }||k(  sJ ‚t        |j                  «       «      }|d   |d   k7  sJ ‚|d   |d   c|d<   |d<   | d	z  }|j                  |«       t        j                  |d
¬«      }||k7  sJ ‚|t        j                  dg d¢i«      k(  sJ ‚t        j                  t        d¬«      5  t        j                  |d¬«      }ddd«       t        j                  |d
¬«      }|j                  «       }	|	|k7  sJ ‚|	t        j                  dg d¢i«      k(  sJ ‚t        j                  |d¬«      }t        j                  t        d¬«      5  |j                  «       }ddd«       y# 1 sw Y   Œ¡xY w# 1 sw Y   yxY w)zUCheck that checksum verification works for datasets created with
    pq.write_table()zcorrect.parquetr   ©r   r   r   r!  T©Úwrite_page_checksum©Úpage_checksum_verificationé   é$   zcorrupted.parquetF©r   r   r   r!  úCRC checksum verificationr   N)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Æ  t  sÑ  € ð
 Ð/Ñ/€MÜ—‘˜3¢Ð-Ó.€JÜ‡N�N�:˜}À$ÕGô —-‘- È$ÔO€KØ˜Ò$Ð$Ð$ô
 ˜×1Ñ1Ó3Ó4€Hð �B‰<˜8 B™<Ò'Ð'Ð'Ø!)¨"¡¨x¸©|Ð€HˆR�L�(˜2‘,ð Ð2Ñ2€NØ×Ñ˜xÔ(ô —M‘M .Ø=BôD€Mð ˜JÒ&Ð&Ð&ØœBŸH™H cª<Ð%8Ó9Ò9Ð9Ð9ô 
�‰”wÐ&AÔ	Bñ KÜ�M‰M˜.ÀTÔJˆ÷Kô
 Ÿ™ ~ØBGôIÐà&×+Ñ+Ó-€NØ˜ZÒ'Ð'Ð'ØœRŸX™X sªLÐ&9Ó:Ò:Ð:Ð:ô Ÿ™ ~ØBFôHÐô 
�‰”wÐ&AÔ	Bñ %Ø×"Ñ"Ó$ˆ÷%ð %÷!Kð Kú÷ %ð %ús   Ã9F1ÆF=Æ1F:Æ=Gc                 óÞ  — t        j                  dg d¢i«      }| dz  }t        j                  ||d¬«       t	        |j                  «       «      }t        |«      dk(  sJ ‚|d   }t        j                  |d¬«      }||k(  sJ ‚t        |j                  «       «      }|d	   |d
   k7  sJ ‚|d
   |d	   c|d	<   |d
<   | dz  }t        ||«       ||j                  z  }|j                  |«       t        j                  |d¬«      }	|	|k7  sJ ‚|	t        j                  dg d¢i«      k(  sJ ‚t        j                  t        d¬«      5  t        j                  |d¬«      }
ddd«       y# 1 sw Y   yxY w)zXCheck that checksum verification works for datasets created with
    pq.write_to_datasetr   r²  Úcorrect_dirTr³  r   r   rµ  r·  r¸  Úcorrupted_dirFr¹  rº  r   N)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Ü—-‘- È$ÔO€KØ˜Ò$Ð$Ð$ô
 ˜×1Ñ1Ó3Ó4€Hð �B‰<˜8 B™<Ò'Ð'Ð'Ø!)¨"¡¨x¸©|Ð€HˆR�L�(˜2‘,ð ! ?Ñ2ÐÜÐÐ 2Ô3à,¨}×/AÑ/AÑAÐØ×#Ñ# HÔ-ô —M‘MÐ"5Ø=BôD€Mð ˜JÒ&Ð&Ð&ØœBŸH™H cª<Ð%8Ó9Ò9Ð9Ð9ô 
�‰”wÐ&AÔ	Bñ PÜ�M‰MÐ-È$ÔOˆ÷P÷ Pñ Pús   ÅE#Å#E,Úsourcez/tmp/z/tmp/file1.parquetz/tmp/file2.parquetc                 óÒ   — | j                  t        j                  dd «       t        j                  t
        d¬«      5  t        j                  |¬«       d d d «       y # 1 sw Y   y xY w)Nzpyarrow.datasetr‚   r   )rÒ  )ÚsetitemÚsysÚmodulesr   r   r   rR   rf   )ÚmonkeypatchrÒ  s     r    Ú9test_read_table_raises_value_error_when_ds_is_unavailablerØ  ã  sK   € ð ×ÑœŸ™Ð%6¸Ô=ä	�‰”zÐ)@Ô	Añ %Ü
�‰˜VÕ$÷%÷ %ñ %ús   ½AÁA&)Vrÿ   rÕ  Úcollectionsr   rÕ   r^  Ú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.   r6   r:   rH   rY   r]   rc   ri   r†   Úslowr‹   r•   r›   r©   rµ   r¼   ÚparametrizeÚLocalFileSystemrÃ   rÆ   r×   rÛ   rñ   r  r  r(  r0  r6  r@  rW  rZ  rb  rh  rl  rn  Úfilterwarningsrw  r�  r�  r™  r›  r©  r°  rÆ  ÚdatasetrÑ  rØ  rh   r/   r    ú<module>rí     s  ðó$ 
Û 
Ý #Û 	Û Ý Ý ã ã Ý Ý ÷7ñ 7ðÝ ßFð
ÛÝåBÝ<ðÛð �[‰[× Ñ €
ò.ò=ð ‡�×Ññó ðð ‡�×Ññ;ó ð;ð ‡�×Ññ3ó ð3ð$ ‡�×Ññ$ó ð$ð ‡�×Ññ$ó ð$ò$òòð0 ‡�×Ññ*ó ð*ð ‡�×Ññó ðð ‡�×Ññó ðòð8 ‡�×Ññ'ó ð'ò$Að  ‡�×Ñ˜ØÐ
ˆ"×
Ñ
Ó
ð(ó ð ‡�×Ñ˜Ð!@ÓAñ ó Bóð ò*3ò
&ò ò#/òL34òl}/ò@*2òZ2ð ‡�×Ññ!ó ð!ð" ‡�×Ññ/ó ð/ð  ‡�×Ññ!ó ð!ò4!ò2ð ‡�×ÑñDó ðDò
ð ‡�×ÑØ‡�×ÑØ‡�×ÑÐ=Ó>Ø‡�×ÑÐLÓMñ!4ó Nó ?ó ó ð!4ðH ‡�×Ñ˜Ù$Ù8Ù%Ù9ð	+ó ð ‡�×ÑÐ*¨U°D¨MÓ:ñ4ó ;óð4ò(	 ò6ò$òò&ò67%ðt ‡�×Ññ1Pó ð1Pðh ‡�×ÑØˆwÐ-Ð/CÐDÐEóGñ%óGñ%øðA ò Ø	ƒBðûð ò Ø€N€B‹ðûð
 ò Ø	ƒBðús6   ÁN ÁN Á(N% ÎNÎNÎ	N"Î!N"Î%N0Î/N0