Ë
    ž…j  ã                   óB  — d Z ddlZddlZddlZddlZddlZddlmZ	 ddl
mZ ej                  j                  Z ej                  d«      Z ej                  d«      Z ej                  d«      Z ej&                  dg d¢«      Zej*                  d	„ «       Z G d
„ d«      Zy)zÅ
Tests for the Apache Iceberg format.

Tests in this file use a simple Iceberg catalog based on SQLite, with the same
data used for Parquet tests (``pandas/tests/io/data/parquet/simple.parquet``).
é    N)Úread_icebergÚ	pyicebergzpyiceberg.catalogzpyarrow.parquetÚCatalog©ÚnameÚuriÚ	warehousec           	   #   óÌ  K  — d|› d�}d|› �}t        | d«      r| j                  nd }t        j                  |xs dd||¬«      }|j	                  d«       t
        j                  t        j                  t        «      j                  d	z  d
z  dz  «      }|j                  d|j                  ¬«      }|j                  |«       |�kt        j                  j                  «       dz  }t        |dd¬«      5 }	|	j!                  d|› d|› d|› �«       d d d «       t#        j$                  t        «       t'        |xs d||¬«      –— |�j)                  «        y y # 1 sw Y   ŒJxY w­w)Nz
sqlite:///z/catalog.sqlitezfile://ÚparamÚdefaultÚsql)Útyper   r	   ÚnsÚdataÚparquetzsimple.parquetúns.my_table)Úschemaz.pyiceberg.yamlÚwzutf-8)Úencodingzcatalog:
  z:
    type: sql
    uri: z
    warehouse: r   )Úhasattrr   Úpyiceberg_catalogÚload_catalogÚcreate_namespaceÚpqÚ
read_tableÚpathlibÚPathÚ__file__ÚparentÚcreate_tabler   ÚappendÚhomeÚopenÚwriteÚ	importlibÚreloadr   Úunlink)
ÚrequestÚtmp_pathr   r	   Úcatalog_nameÚcatalogÚdfÚtableÚconfig_pathÚfs
             ú]/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/io/test_iceberg.pyr+   r+      sn  è ø€ ð �x�j Ð
0€CØ˜(˜Ð$€IÜ$+¨G°WÔ$=�7—=’=À4€LÜ×,Ñ,ØÒ!˜	ØØØð	 -ó €Gð ×Ñ˜TÔ"ä	�‰Ü�‰”XÓ×%Ñ%¨Ñ.°Ñ:Ð=MÑMó
€Bð × Ñ  °r·y±yÐ ÓA€EØ	‡L�L�ÔàÐÜ—l‘l×'Ñ'Ó)Ð,=Ñ=ˆÜ�+˜s¨WÔ5ð 	¸Ø�G‰Gð à€.ð 
à
ˆð Øˆ{ðô ÷	ô 	×ÑÔ*Ô+ä
�|Ò0 y°cÀYÔ
OÒOàÐØ×ÑÕð  ÷	ð 	üs   ‚C2E$Ã4EÄA	E$ÅE!ÅE$c                   óÎ   — e Zd Zd„ Zej
                  j                  dddgd¬«      d„ «       Zd„ Zd	„ Z	d
„ Z
d„ Zej
                  j                  dddgd¬«      d„ «       Zd„ Zd„ Zy)ÚTestIcebergc                 óš   — t        j                  g d¢g d¢dœ«      }t        dd|j                  i¬«      }t	        j
                  ||«       y )N©é   é   é   ©Úfoor9   r9   ©ÚAÚBr   r   ©Úcatalog_properties©ÚpdÚ	DataFramer   r   ÚtmÚassert_frame_equal©Úselfr+   ÚexpectedÚresults       r0   Ú	test_readzTestIceberg.test_readD   sH   € Ü—<‘<âÚ*ñó
ˆô ØØ % w§{¡{Ð3ô
ˆô 	×Ñ˜f hÕ/ó    r+   r   Úpandas_testsT)Úindirectc                 ó–   — t        j                  g d¢g d¢dœ«      }t        d|j                  ¬«      }t	        j
                  ||«       y )Nr4   r8   r:   r   ©r*   )r@   rA   r   r   rB   rC   rD   s       r0   Útest_read_by_catalog_namez%TestIceberg.test_read_by_catalog_nameQ   sC   € ä—<‘<âÚ*ñó
ˆô ØØ Ÿ™ô
ˆô 	×Ñ˜f hÕ/rI   c                 óœ   — t        j                  ddgddgdœ«      }t        dd|j                  id¬«      }t	        j
                  ||«       y )	Nr6   r7   r9   r:   r   r   zA > 1)r>   Ú
row_filterr?   rD   s       r0   Útest_read_with_row_filterz%TestIceberg.test_read_with_row_filter_   sS   € Ü—<‘<à˜�VØ˜U�^ñó
ˆô ØØ % w§{¡{Ð3Øô
ˆô
 	×Ñ˜f hÕ/rI   c                 ó2  — t        j                  dg d¢i«      }t        dd|j                  idgd¬«      }t	        j
                  ||«       t        j                  t        d¬	«      5  t        dd|j                  idgd
¬«       d d d «       y # 1 sw Y   y xY w)Nr;   r4   r   r   ÚaF)r>   ÚcolumnsÚcase_sensitivez^Could not find column)ÚmatchT)	r@   rA   r   r   rB   rC   ÚpytestÚraisesÚ
ValueErrorrD   s       r0   Útest_read_with_case_sensitivez)TestIceberg.test_read_with_case_sensitivem   s’   € Ü—<‘<à’Yðó
ˆô
 ØØ % w§{¡{Ð3Ø�EØ ô	
ˆô 	×Ñ˜f hÔ/ä�]‰]œ:Ð-EÔFñ 	ÜØØ$)¨7¯;©;Ð#7Ø˜Ø#õ	÷	÷ 	ñ 	ús   Á'BÂBc                 óœ   — t        j                  ddgddgdœ«      }t        dd|j                  id¬«      }t	        j
                  ||«       y )Nr5   r6   r9   r:   r   r   )r>   Úlimitr?   rD   s       r0   Útest_read_with_limitz TestIceberg.test_read_with_limitƒ   sS   € Ü—<‘<à˜�VØ˜U�^ñó
ˆô ØØ % w§{¡{Ð3Øô
ˆô
 	×Ñ˜f hÕ/rI   c                 óî   — t        j                  g d¢g d¢dœ«      }|j                  dd|j                  i|j                  ¬«       t        dd|j                  i¬«      }t        j                  ||«       y )Nr4   r8   r:   úns.new_tabler   )r>   Úlocationr=   ©r@   rA   Ú
to_icebergr   r	   r   rB   rC   ©rE   r+   r,   rG   s       r0   Ú
test_writezTestIceberg.test_write‘   ss   € Ü�\‰\âÚ*ñó
ˆð 	�‰ØØ % w§{¡{Ð3Ø×&Ñ&ð 	ô 	
ô
 ØØ % w§{¡{Ð3ô
ˆô 	×Ñ˜f bÕ)rI   c                 óÐ   — t        j                  g d¢g d¢dœ«      }|j                  d|j                  ¬«       t	        d|j                  ¬«      }t        j                  ||«       y )Nr4   r8   r:   r_   rM   )r@   rA   rb   r   r   rB   rC   rc   s       r0   Útest_write_by_catalog_namez&TestIceberg.test_write_by_catalog_name£   s`   € ä�\‰\âÚ*ñó
ˆð 	�‰ØØ Ÿ™ð 	ô 	
ô ØØ Ÿ™ô
ˆô 	×Ñ˜f bÕ)rI   c                 óT  — t        dd|j                  i¬«      }t        j                  g d¢g d¢dœ«      }t        j                  ||gd¬«      }|j                  dd|j                  i|j                  d¬	«       t        dd|j                  i¬«      }t        j                  ||«       y )
Nr   r   r=   r4   r8   r:   T)Úignore_index©r>   r`   r!   )	r   r   r@   rA   Úconcatrb   r	   rB   rC   )rE   r+   ÚoriginalÚnewrF   rG   s         r0   Ú*test_write_existing_table_with_append_truez6TestIceberg.test_write_existing_table_with_append_trueµ   s¥   € ÜØØ % w§{¡{Ð3ô
ˆô �l‰lâÚ*ñó
ˆô —9‘9˜h¨˜_¸4Ô@ˆØ�‰ØØ % w§{¡{Ð3Ø×&Ñ&Øð	 	ô 	
ô ØØ % w§{¡{Ð3ô
ˆô 	×Ñ˜f hÕ/rI   c                 óð   — t        j                  g d¢g d¢dœ«      }|j                  dd|j                  i|j                  d¬«       t        dd|j                  i¬«      }t        j                  ||«       y )	Nr4   r8   r:   r   r   Fri   r=   ra   rc   s       r0   Ú+test_write_existing_table_with_append_falsez7TestIceberg.test_write_existing_table_with_append_falseÍ   sv   € Ü�\‰\âÚ*ñó
ˆð 	�‰ØØ % w§{¡{Ð3Ø×&Ñ&Øð	 	ô 	
ô ØØ % w§{¡{Ð3ô
ˆô 	×Ñ˜f bÕ)rI   N)Ú__name__Ú
__module__Ú__qualname__rH   rW   ÚmarkÚparametrizerN   rQ   rZ   r]   rd   rf   rm   ro   © rI   r0   r2   r2   C   s…   „ ò0ð ‡[�[×Ñ˜Y¨°NÐ(CÈdÐÓSñ0ó Tð0ò0òò,0ò*ð$ ‡[�[×Ñ˜Y¨°NÐ(CÈdÐÓSñ*ó Tð*ò"0ó0*rI   r2   )Ú__doc__Úcollectionsr%   r   rW   Úpandasr@   Úpandas._testingÚ_testingrB   Úpandas.io.icebergr   rs   Ú
single_cpuÚ
pytestmarkÚimportorskipr   r   r   Ú
namedtupler   Úfixturer+   r2   ru   rI   r0   ú<module>r�      s£   ðñó Û Û ã ã Ý å *à�[‰[×#Ñ#€
àˆF×Ñ Ó,€	Ø'�F×'Ñ'Ð(;Ó<Ð Ø€V×ÑÐ*Ó+€à
 ˆ+×
 Ñ
  Ò,HÓ
I€ð ‡�ñ#ó ð#÷L[*ò [*rI   