§
    tŠtj  ã                   ó"  — 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dS )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                               |pdd||¬¦  «        }|                     d¦  «         t
                               t          j        t          ¦  «        j
        d	z  d
z  dz  ¦  «        }|                     d|j        ¬¦  «        }|                     |¦  «         |�‚t          j                             ¦   «         dz  }t          |dd¬¦  «        5 }	|	                     d|› d|› d|› �¦  «         d d d ¦  «         n# 1 swxY w Y   t#          j        t          ¦  «         t'          |pd||¬¦  «        V — |�|                     ¦   «          d S d S )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
             úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/io/test_iceberg.pyr+   r+      s  è è € ð 1�xÐ
0Ð
0Ð
0€CØ$˜(Ð$Ð$€IÝ$+¨G°WÑ$=Ô$=ÐG�7”=�=À4€LÝ×,Ò,ØÐ!˜	ØØØð	 -ñ ô €Gð ×Ò˜TÑ"Ô"Ð"å	�ŠÝŒ•XÑÔÔ%¨Ñ.°Ñ:Ð=MÑMñ
ô 
€Bð × Ò  °r´yÐ ÑAÔA€EØ	‡L‚L�ÑÔÐàÐÝ”l×'Ò'Ñ)Ô)Ð,=Ñ=ˆÝ�+˜s¨WÐ5Ñ5Ô5ð 	¸Ø�GŠGð àðð ð ð	ð ð
 ðð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	ÔÕ*Ñ+Ô+Ð+å
�|Ð0 y°cÀYÐ
OÑ
OÔ
OÐOÐOÐOàÐØ×ÒÑÔÐÐÐð  Ðs   ÄD,Ä,D0Ä3D0c                   óØ   — e Zd Zd„ Zej                             dddgd¬¦  «        d„ ¦   «         Zd„ Zd	„ Z	d
„ Z
d„ Zej                             dddgd¬¦  «        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestIcebergc                 ó–   — t          j        g d¢g d¢dœ¦  «        }t          dd|j        i¬¦  «        }t	          j        ||¦  «         d S )N©é   é   é   ©Úfoor9   r9   ©ÚAÚBr   r   ©Úcatalog_properties©ÚpdÚ	DataFramer   r   ÚtmÚassert_frame_equal©Úselfr+   ÚexpectedÚresults       r0   Ú	test_readzTestIceberg.test_readD   sk   € Ý”<à�Y�YØ*Ð*Ð*ðð ñ
ô 
ˆõ ØØ % w¤{Ð3ð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/ó    r+   r   Úpandas_testsT)Úindirectc                 ó’   — t          j        g d¢g d¢dœ¦  «        }t          d|j        ¬¦  «        }t	          j        ||¦  «         d S )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   sf   € å”<à�Y�YØ*Ð*Ð*ðð ñ
ô 
ˆõ ØØ œð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/rI   c                 ó˜   — t          j        ddgddgdœ¦  «        }t          dd|j        id¬¦  «        }t	          j        ||¦  «         d S )	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_   sl   € Ý”<à˜�VØ˜U�^ðð ñ
ô 
ˆõ ØØ % w¤{Ð3Øð
ñ 
ô 
ˆõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/rI   c                 ó4  — 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 ¦  «         d S # 1 swxY w Y   d S )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�Y�Yðñ
ô 
ˆõ
 ØØ % w¤{Ð3Ø�EØ ð	
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/åŒ]�:Ð-EÐFÑFÔFð 	ð 	ÝØØ$)¨7¬;Ð#7Ø˜Ø#ð	ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á$BÂBÂBc                 ó˜   — t          j        ddgddgdœ¦  «        }t          dd|j        id¬¦  «        }t	          j        ||¦  «         d S )Nr5   r6   r9   r:   r   r   )r>   Úlimitr?   rD   s       r0   Útest_read_with_limitz TestIceberg.test_read_with_limitƒ   sl   € Ý”<à˜�VØ˜U�^ðð ñ
ô 
ˆõ ØØ % w¤{Ð3Øð
ñ 
ô 
ˆõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/rI   c                 óÞ   — t          j        g d¢g d¢dœ¦  «        }|                     dd|j        i|j        ¬¦  «         t          dd|j        i¬¦  «        }t          j        ||¦  «         d S )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‘   s›   € ÝŒ\à�Y�YØ*Ð*Ð*ðð ñ
ô 
ˆð 	�ŠØØ % w¤{Ð3ØÔ&ð 	ñ 	
ô 	
ð 	
õ
 ØØ % w¤{Ð3ð
ñ 
ô 
ˆõ 	Ô˜f bÑ)Ô)Ð)Ð)Ð)rI   c                 óÊ   — t          j        g d¢g d¢dœ¦  «        }|                     d|j        ¬¦  «         t	          d|j        ¬¦  «        }t          j        ||¦  «         d S )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‹   € åŒ\à�Y�YØ*Ð*Ð*ðð ñ
ô 
ˆð 	�ŠØØ œð 	ñ 	
ô 	
ð 	
õ ØØ œð
ñ 
ô 
ˆõ 	Ô˜f bÑ)Ô)Ð)Ð)Ð)rI   c                 ó@  — t          dd|j        i¬¦  «        }t          j        g d¢g d¢dœ¦  «        }t          j        ||gd¬¦  «        }|                     dd|j        i|j        d¬	¦  «         t          dd|j        i¬¦  «        }t          j        ||¦  «         d S )
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à�Y�YØ*Ð*Ð*ðð ñ
ô 
ˆõ ”9˜h¨˜_¸4Ð@Ñ@Ô@ˆØ�ŠØØ % w¤{Ð3ØÔ&Øð	 	ñ 	
ô 	
ð 	
õ ØØ % w¤{Ð3ð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/rI   c                 óà   — t          j        g d¢g d¢dœ¦  «        }|                     dd|j        i|j        d¬¦  «         t          dd|j        i¬¦  «        }t          j        ||¦  «         d S )	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Í   sž   € ÝŒ\à�Y�YØ*Ð*Ð*ðð ñ
ô 
ˆð 	�ŠØØ % 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ð 0ð 0ð „[×Ò˜Y¨°NÐ(CÈdÐÑSÔSð0ð 0ñ TÔSð0ð0ð 0ð 0ðð ð ð,0ð 0ð 0ð*ð *ð *ð$ „[×Ò˜Y¨°NÐ(CÈdÐÑSÔSð*ð *ñ TÔSð*ð"0ð 0ð 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Ð,HÐ,HÑ
IÔ
I€ð „ð#ð #ñ „ð#ðL[*ð [*ð [*ð [*ð [*ñ [*ô [*ð [*ð [*ð [*rI   