§
    tŠtjC  ã                   óæ  — d dl mZ d dl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mZmZmZmZmZmZ d dlmZ d dlmZ ej                             d¦  «        Zej        d„ ¦   «         Zej        j        ej                             dg d	¢¦  «        d
„ ¦   «         ¦   «         Z de!de!de"fd„Z#ej                             dddg¦  «        d„ ¦   «         Z$d„ Z% ej&        d¦  «        d„ ¦   «         Z'dS )é    )ÚBytesION)Úpa_version_under17p0)Ú	DataFrameÚIndexÚ
date_rangeÚread_csvÚ
read_excelÚ	read_jsonÚread_parquet)Ú_test_decoratorsz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                  óÞ   ‡— t          j        d¦  «         t          j        d¦  «        } t          ¦   «         Šd„ ‰_         G ˆfd„d| j        ¦  «        }|                      d|d¬¦  «         ‰S )	z"Emulate GCS using a binary buffer.ÚgcsfsÚfsspecc                  ó   — dS )NT© r   ó    úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/io/test_gcs.pyú<lambda>zgcs_buffer.<locals>.<lambda>$   s   € ˜t€ r   c                   ó0   •— e Zd Zeˆ fd„¦   «         Zd„ ZdS )ú%gcs_buffer.<locals>.MockGCSFileSystemc                  ó2   •— ‰                      d¦  «         ‰S )Nr   )Úseek)ÚargsÚkwargsÚ
gcs_buffers     €r   Úopenz*gcs_buffer.<locals>.MockGCSFileSystem.open'   s   ø€ à�OŠO˜AÑÔÐØÐr   c                 ó   — |ddœgS )NÚfile)ÚnameÚtyper   )ÚselfÚpathr   s      r   Úlsz(gcs_buffer.<locals>.MockGCSFileSystem.ls,   s   € à!¨6Ð2Ð2Ð3Ð3r   N)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r#   )r   s   €r   ÚMockGCSFileSystemr   &   sG   ø€ € € € € Ø	ð	ð 	ð 	ð 	ñ 
Œð	ð	4ð 	4ð 	4ð 	4ð 	4r   r(   ÚgsT)Úclobber)ÚpytestÚimportorskipr   ÚcloseÚAbstractFileSystemÚregister_implementation)r   r(   r   s     @r   r   r      s”   ø€ õ Ô˜Ñ Ô Ð ÝÔ  Ñ*Ô*€Få‘”€JØ#�|€JÔð4ð 4ð 4ð 4ð 4ð 4ð 4˜FÔ5ñ 4ô 4ð 4ð ×"Ò" 4Ð):ÀDÐ"ÑIÔIÐIàÐr   Úformat)ÚcsvÚjsonÚparquetÚexcelÚmarkdownc           
      ó¬  ‡— t          ddgdt          j        gddgt          ddd¬	¦  «        d
œ¦  «        }d|› �}|dk    r,|                     |d¬¦  «         t          |dgd¬¦  «        }�n¡|dk    r,d}|                     |¦  «         t          |dgd¬¦  «        }�no|dk    r+|                     |d¬¦  «         t          |dg¬¦  «        }�n>|dk    �rt          j        d¦  «         t          j        d¦  «        Š G ˆfd„d‰j        ¦  «        }|                     t          j                             t            t"          d¬¦  «        ¦  «         |                     ¦   «         5 }	|	                     ‰d|¦  «         |                     |¦  «         t+          |¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }
|
j        d!k    sJ ‚n1|d"k    r+t          j        d#¦  «         |                     |¦  «         |}|d d …         }|d$v r#|d         j                             d%¦  «        |d<   t7          j        ||¦  «         d S )&zE
    Test that many to/read functions support GCS.

    GH 33987
    é   é   ç       @ÚtÚsú
2018-06-18é   Úns)ÚperiodsÚunit)ÚintÚfloatÚstrÚdtzgs://test/test.r1   T)ÚindexrD   r   )Úparse_datesÚ	index_colr4   zgs://test/test.xlsxr2   Úiso)Údate_format)Úconvert_datesr3   Úpyarrowz
pyarrow.fsc                   ó*   •— e Zd Zeˆ fd„¦   «         ZdS )ú(test_to_read_gcs.<locals>.MockFileSystemc                 óä   •— t          d¦  «         t          j        |                      dd¦  «        ¦  «                             ¦   «                              ¦   «         }‰                     |¦  «        S )NzUsing pyarrow filesystemzgs://Ú )ÚprintÚpathlibÚPathÚreplaceÚabsoluteÚas_uriÚLocalFileSystem)r"   Úto_localÚpa_fss     €r   Úfrom_uriz1test_to_read_gcs.<locals>.MockFileSystem.from_uriZ   s[   ø€ åÐ0Ñ1Ô1Ð1Ý"œ<¨¯ª°W¸bÑ(AÔ(AÑBÔB×KÒKÑMÔM×TÒTÑVÔV�Ø×,Ò,¨XÑ6Ô6Ð6r   N)r$   r%   r&   r'   rY   )rX   s   €r   ÚMockFileSystemrM   Y   s8   ø€ € € € € Øð7ð 7ð 7ð 7ñ Œ\ð7ð 7ð 7r   rZ   z&pyarrow 17 broke the mocked filesystem)ÚraisesÚreasonÚ
FileSystemNz2Using pyarrow filesystem
Using pyarrow filesystem
r5   Útabulate)r1   r4   r2   Úus)r   ÚnpÚnanr   Úto_csvr   Úto_excelr	   Úto_jsonr
   r+   r,   r]   ÚapplymarkerÚmarkÚxfailr   Ú	TypeErrorÚcontextÚsetattrÚ
to_parquetr   Ú
readouterrÚoutÚto_markdownrD   Úas_unitÚtmÚassert_frame_equal)r   r0   ÚmonkeypatchÚcapsysÚrequestÚdf1r"   Údf2rZ   ÚmÚcapturedÚexpectedrX   s               @r   Útest_to_read_gcsrz   7   sé  ø€ õ à�q�6Ø�2œ6�]Ø˜�:Ý˜\°1¸4Ð@Ñ@Ô@ð		
ð 	
ñô €Cð &˜VÐ%Ð%€Dà�‚€Ø�
Š
�4˜tˆ
Ñ$Ô$Ð$Ý�t¨$¨¸1Ð=Ñ=Ô=ˆ‰Ø	�7Ò	Ð	Ø$ˆØ�Š�TÑÔÐÝ˜¨D¨6¸QÐ?Ñ?Ô?ˆ‰Ø	�6Ò	Ð	Ø�Š�D eˆÑ,Ô,Ð,Ý˜¨T¨FÐ3Ñ3Ô3ˆ‰Ø	�9Ò	Ñ	ÝÔ˜IÑ&Ô&Ð&ÝÔ# LÑ1Ô1ˆð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7˜UÔ-ñ 	7ô 	7ð 	7ð 	×ÒÝŒK×ÒÝ(Ð(Ý Ø?ð ñ ô ñ	
ô 	
ð 	
ð × Ò Ñ"Ô"ð 	% aØ�IŠI�e˜\¨>Ñ:Ô:Ð:Ø�NŠN˜4Ñ Ô Ð Ý˜tÑ$Ô$ˆCð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð ×$Ò$Ñ&Ô&ˆØŒ|ÐUÒUÐUÐUÐUÐUØ	�:Ò	Ð	ÝÔ˜JÑ'Ô'Ð'Ø�Š˜ÑÔÐØˆà�1�1�1Œv€HØÐ)Ð)Ð)Ø! $œÔ*×2Ò2°4Ñ8Ô8ˆ�‰åÔ˜#˜xÑ(Ô(Ð(Ð(Ð(s   Å(<F0Æ0F4Æ7F4Úresultry   Úcompressionc                 óä  — |dk    rÂt          j        t          | ¦  «        ¦  «        5 }t          j        t          |¦  «        ¦  «        5 }t          |                     ¦   «         |                     ¦   «         ¦  «        D ]\  }}|j        |j        k    sJ ‚Œ	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS |dk    �rt          j        t          | ¦  «        ¬¦  «        5 }t          j        t          |¦  «        ¬¦  «        5 }t          |                     ¦   «         |                     ¦   «         ¦  «        D ]k\  }	}
| 	                    |	¦  «        }| 	                    |
¦  «        }|du |du k    sJ ‚|�.|�,| 
                    ¦   «         | 
                    ¦   «         k    sJ ‚Œl	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS | |k    sJ ‚dS )a  
    For zip compression, only compare the CRC-32 checksum of the file contents
    to avoid checking the time-dependent last-modified timestamp which
    in some CI builds is off-by-one

    See https://en.wikipedia.org/wiki/ZIP_(file_format)#File_headers
    ÚzipNÚtar)Úfileobj)ÚzipfileÚZipFiler   r~   ÚinfolistÚCRCÚtarfiler   Ú
getmembersÚextractfileÚread)r{   ry   r|   ÚexpÚresÚres_infoÚexp_infoÚtar_expÚtar_resÚtar_res_infoÚtar_exp_infoÚactual_fileÚexpected_files                r   Úassert_equal_zip_safer“   y   s,  € ð �eÒÐõ ŒO�G F™OœOÑ,Ô,ð	4Ø03ÝŒO�G HÑ-Ô-Ñ.Ô.ð	4à25å&)¨#¯,ª,©.¬.¸#¿,º,¹.¼.Ñ&IÔ&Ið 4ð 4Ñ"�˜(Ø”| x¤|Ò3Ð3Ð3Ð3Ð3ð4ð		4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 
˜Ò	Ñ	åŒL¥¨¡¤Ð1Ñ1Ô1ð	FØ5<ÝŒL¥¨Ñ!2Ô!2Ð3Ñ3Ô3ð	Fà7>å.1Ø×"Ò"Ñ$Ô$ g×&8Ò&8Ñ&:Ô&:ñ/ô /ð Fð FÑ*�˜lð &×1Ò1°,Ñ?Ô?�Ø '× 3Ò 3°LÑ AÔ A�Ø# tÐ+°À$Ð1FÒGÐGÐGÐGØÐ*¨}Ð/HØ&×+Ò+Ñ-Ô-°×1CÒ1CÑ1EÔ1EÒEÐEÐEÐEøðFð		Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð ˜Ò!Ð!Ð!Ð!Ð!Ð!sm   ¨"B<Á
AB$ÂB<Â$B(	Â(B<Â+B(	Â,B<Â<C ÃC Ã2#GÄB!GÆ7GÇG	ÇGÇ
G	ÇGÇGÇ"GÚencodingúutf-8Úcp1251c           
      ót  — t          dt          j        d¦  «                             d¦  «        z  t	          t          d¦  «        ¦  «        t	          d„ t          d¦  «        D ¦   «         ¦  «        ¬¦  «        }d|i}|d	k    rd
|d<   t          ¦   «         }|                     |||d¬¦  «         d}|                     |||¬¦  «         |  	                    ¦   «         }| 	                    ¦   «         }	t          ||	|¦  «         t          |d||¬¦  «        }
t          j        ||
¦  «         ||         }d|d<   |d|› �z  }|                     |||¬¦  «         |  	                    ¦   «         }| 	                    ¦   «         }	t          ||	|¦  «         t          |dd|¬¦  «        }
t          j        ||
¦  «         dS )z›
    Compression and encoding should with GCS.

    GH 35677 (to_csv, compression), GH 26124 (to_csv, encoding), and
    GH 32392 (read_csv, encoding)
    gš™™™™™ñ?éx   )é   é   ÚABCDc                 ó   — g | ]}d |› �‘ŒS )zi-r   )Ú.0Úis     r   ú
<listcomp>z8test_to_csv_compression_encoding_gcs.<locals>.<listcomp>§   s   € Ð1Ð1Ð1 !�X˜!�X�XÐ1Ð1Ð1r   r™   )ÚcolumnsrE   ÚmethodÚgzipr7   ÚmtimeÚwb)r|   r”   Úmodeúgs://test/test.csv)r|   r”   r   )rG   r|   r”   Úinferú.N)r   r`   ÚarangeÚreshaper   ÚlistÚranger   rb   Úgetvaluer“   r   rp   rq   )r   Úcompression_onlyr”   Úcompression_to_extensionÚdfr|   ÚbufferÚpath_gcsrŠ   ry   Úread_dfÚfile_exts               r   Ú$test_to_csv_compression_encoding_gcsrµ   š   sÒ  € õ 
Ø�bŒi˜‰nŒn×$Ò$ WÑ-Ô-Ñ-Ý•d˜6‘l”lÑ#Ô#ÝÐ1Ð1¥u¨R¡y¤yÐ1Ñ1Ô1Ñ2Ô2ð
ñ 
ô 
€Bð Ð-Ð.€KØ˜6Ò!Ð!Ø ˆ�GÑÝ‰YŒY€FØ‡I‚Iˆf +¸Àt€IÑLÔLÐLð $€HØ‡I‚Iˆh K¸(€IÑCÔCÐCØ
×
Ò
Ñ
Ô
€CØ�ŠÑ Ô €HÝ˜#˜xÐ)9Ñ:Ô:Ð:åØ˜AÐ+;Àhðñ ô €Gõ Ô˜"˜gÑ&Ô&Ð&ð (Ð(8Ô9€HØ#€K�ÑØ��H��Ñ€HØ‡I‚Iˆh K¸(€IÑCÔCÐCà
×
Ò
Ñ
Ô
€CØ�ŠÑ Ô €HÝ˜#˜xÐ)9Ñ:Ô:Ð:å�x¨1¸'ÈHÐUÑUÔU€GÝÔ˜"˜gÑ&Ô&Ð&Ð&Ð&r   c                 óB  ‡— t          j        d¦  «         t          j        d¦  «         ddlm} t	          ddgdt
          j        gt          dd	¬
¦  «        dœ¦  «        } G ˆfd„d|¦  «        }|                      d|¦  «         | 	                    dddd¬¦  «         dS )zCRegression test for writing to a not-yet-existent GCS Parquet file.Úfastparquetr   r   )r.   r7   r8   r9   r<   r=   )r?   )rA   rB   rD   c                   ó   •— e Zd Zdˆ fd„	ZdS )ú7test_to_parquet_gcs_new_file.<locals>.MockGCSFileSystemÚrc                 óz   •— d|vrt           ‚t          t          j                             ‰d¦  «        |d¬¦  «        S )NÚwztest.parquetr•   )r”   )ÚFileNotFoundErrorr   Úosr"   Újoin)r!   r"   r¥   r   Útmpdirs       €r   r   z<test_to_parquet_gcs_new_file.<locals>.MockGCSFileSystem.openÛ   s7   ø€ Ø˜$ˆˆÝ'Ð'Ý�œŸš V¨^Ñ<Ô<¸dÈWÐUÑUÔUÐUr   N)rº   )r$   r%   r&   r   )rÀ   s   €r   r(   r¹   Ú   s;   ø€ € € € € ð	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vr   r(   zgcsfs.GCSFileSystemr¦   TN)rE   Úenginer|   )
r+   r,   r   r.   r   r`   ra   r   rj   rk   )rr   rÀ   r.   ru   r(   s    `   r   Útest_to_parquet_gcs_new_filerÂ   Ë   s÷   ø€ å
Ô˜Ñ&Ô&Ð&Ý
Ô˜Ñ Ô Ð à)Ð)Ð)Ð)Ð)Ð)å
à�q�6Ø�2œ6�]Ý˜\°1Ð5Ñ5Ô5ð	
ð 	
ñô €CðVð Vð Vð Vð Vð Vð VÐ.ñ Vô Vð Vð ×ÒÐ-Ð/@ÑAÔAÐAØ‡N‚NØ D°ÈDð ñ ô ð ð ð r   r   c                  óˆ   — t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¦   )rp   Úexternal_error_raisedÚImportErrorr   r   r   r   Útest_gcs_not_present_exceptionrÆ   æ   s†   € å	Ô	!¥+Ñ	.Ô	.ð 'ð 'ÝÐ%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   š7·;¾;)(Úior   r¾   rQ   r…   r�   Únumpyr`   r+   Úpandas.compat.pyarrowr   Úpandasr   r   r   r   r	   r
   r   Úpandas._testingÚ_testingrp   Úpandas.utilr   Útdrf   ÚfilterwarningsÚ
pytestmarkÚfixturer   Ú
single_cpuÚparametrizerz   ÚbytesrC   r“   rµ   rÂ   Úskip_if_installedrÆ   r   r   r   ú<module>rÖ      s   ðØ Ð Ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ø €€€à 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .àŒ[×'Ò'ØCñô €
ð
 „ðð ñ „ðð2 „ÔØ„×Ò˜Ð#RÐ#RÐ#RÑSÔSð=)ð =)ñ TÔSñ Ôð=)ð@" %ð "°5ð "Àsð "ð "ð "ð "ðB „×Ò˜ g¨xÐ%8Ñ9Ô9ð-'ð -'ñ :Ô9ð-'ð`ð ð ð6 €Ô�gÑÔð'ð 'ñ Ôð'ð 'ð 'r   