Ë
    u™ã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                   |d	d
dd«      «      }|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ÚioÚ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Úcreate_tabler   ÚappendÚpathlibÚPathÚhomeÚopenÚwriteÚ	importlibÚreloadr   Úunlink)ÚrequestÚtmp_pathÚdatapathr   r	   Úcatalog_nameÚcatalogÚdfÚtableÚconfig_pathÚfs              úg/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/io/test_iceberg.pyr+   r+      sV  è ø€ ð �x�j Ð
0€CØ˜(˜Ð$€IÜ$+¨G°WÔ$=�7—=’=À4€LÜ×,Ñ,ØÒ!˜	ØØØð	 -ó €Gð ×Ñ˜TÔ"ä	�‰‘x  f¨iÐ9IÓJÓ	K€BØ× Ñ  °r·y±yÐ ÓA€EØ	‡L�L�ÔàÐÜ—l‘l×'Ñ'Ó)Ð,=Ñ=ˆÜ�+˜s¨WÔ5ð 	¸Ø�G‰Gð à€.ð 
à
ˆð Øˆ{ðô ÷	ô 	×ÑÔ*Ô+ä
�|Ò0 y°cÀYÔ
OÒOàÐØ×ÑÕð  ÷	ð 	üs   ‚CEÃD7Ã.A	EÄ7E Ä<Ec                   óF  — e Zd Zd„ Zej
                  j                  dddgd¬«      d„ «       Zd„ Zd	„ Z	d
„ Z
ej
                  j                  d«      d„ «       Zej
                  j                  d«      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_readB   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_nameO   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_sensitivek   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   z=ignore:Delete operation did not match any records:UserWarningc                 óî   — 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�   su   € ô �\‰\âÚ*ñó
ˆð 	�‰ØØ % 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¤   sb   € ô
 �\‰\âÚ*ñó
ˆð 	�‰ØØ Ÿ™ð 	ô 	
ô ØØ Ÿ™ô
ˆô 	×Ñ˜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]   Úfilterwarningsrd   rf   rm   ro   © rI   r0   r2   r2   A   sÂ   „ ò0ð ‡[�[×Ñ˜Y¨°NÐ(CÈdÐÓSñ0ó Tð0ò0òò,0ð ‡[�[×ÑØGóñ*óð*ð$ ‡[�[×ÑØGóð ‡[�[×Ñ˜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   rv   rI   r0   ú<module>r‚      s£   ðñó Û Û ã ã Ý å *à�[‰[×#Ñ#€
àˆF×Ñ Ó,€	Ø'�F×'Ñ'Ð(;Ó<Ð Ø€V×ÑÐ*Ó+€à
 ˆ+×
 Ñ
  Ò,HÓ
I€ð ‡�ñ!ó ð!÷Ha*ò a*rI   