§
    á! h   ã                   óÚ  — 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
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)Ú	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   ó    úRc:\xampp_lite_8_4\www\timesheet\venv\Lib\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k    r,|                     |d¬¦  «         t          |dgd¬¦  «        }�n]|dk    r,d}|                     |¦  «         t          |dgd¬¦  «        }�n+|dk    r(|                     |¦  «         t          |dg¬¦  «        }ný|dk    rÆt          j        d¦  «         t          j        d¦  «        Š
 G ˆ
fd„d‰
j        ¦  «        }|                     ¦   «         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¦  «         |                     |¦  «         |}t)          j        ||¦  «         dS )zE
    Test that many to/read functions support GCS.

    GH 33987
    é   é   ç       @ÚtÚsú
2018-06-18é   ©Úperiods©ÚintÚfloatÚstrÚdtzgs://test/test.r0   T)ÚindexrC   r   )Úparse_datesÚ	index_colr3   zgs://test/test.xlsxr1   )Úconvert_datesr2   Ú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_uriX   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&   rV   )rU   s   €r   ÚMockFileSystemrJ   W   s8   ø€ € € € € Øð7ð 7ð 7ð 7ñ Œ\ð7ð 7ð 7r   rW   Ú
FileSystemNz2Using pyarrow filesystem
Using pyarrow filesystem
r4   Útabulate)r   ÚnpÚnanr   Úto_csvr   Úto_excelr   Úto_jsonr	   r*   r+   rX   ÚcontextÚsetattrÚ
to_parquetr
   Ú
readouterrÚoutÚto_markdownÚtmÚassert_frame_equal)r   r/   ÚmonkeypatchÚcapsysÚdf1r!   Údf2rW   ÚmÚcapturedrU   s             @r   Útest_to_read_gcsrm   5   sl  ø€ õ à�q�6Ø�2œ6�]Ø˜�:Ý˜\°1Ð5Ñ5Ô5ð		
ð 	
ñô €Cð &˜VÐ%Ð%€Dà�‚€Ø�
Š
�4˜tˆ
Ñ$Ô$Ð$Ý�t¨$¨¸1Ð=Ñ=Ô=ˆ‰Ø	�7Ò	Ð	Ø$ˆØ�Š�TÑÔÐÝ˜¨D¨6¸QÐ?Ñ?Ô?ˆ‰Ø	�6Ò	Ð	Ø�Š�DÑÔÐÝ˜¨T¨FÐ3Ñ3Ô3ˆˆØ	�9Ò	Ð	ÝÔ˜IÑ&Ô&Ð&ÝÔ# LÑ1Ô1ˆð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7˜UÔ-ñ 	7ô 	7ð 	7ð × Ò Ñ"Ô"ð 	% aØ�IŠI�e˜\¨>Ñ:Ô:Ð:Ø�NŠN˜4Ñ Ô Ð Ý˜tÑ$Ô$ˆCð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð ×$Ò$Ñ&Ô&ˆØŒ|ÐUÒUÐUÐUÐUÐUØ	�:Ò	Ð	ÝÔ˜JÑ'Ô'Ð'Ø�Š˜ÑÔÐØˆåÔ˜#˜sÑ#Ô#Ð#Ð#Ð#s   Ä#<E+Å+E/Å2E/ÚresultÚexpectedÚ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   rr   ÚinfolistÚCRCÚtarfiler   Ú
getmembersÚextractfileÚread)rn   ro   rp   Ú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‡   l   s5  € ð �eÒÐåŒ_�W V™_œ_Ñ-Ô-ð 	4°µg´oÝ�HÑÔñ7
ô 7
ð 	4àÝ&)¨#¯,ª,©.¬.¸#¿,º,¹.¼.Ñ&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ð
 
˜Ò	Ñ	ÝŒ\¥'¨&¡/¤/Ð2Ñ2Ô2ð 
	F°g½w¼|Ý˜HÑ%Ô%ð@
ñ @
ô @
ð 
	FàÝ.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          dt          j        d¦  «                             d¦  «        z  t	          t          d¦  «        t          ¬¦  «        t	          d„ t          d¦  «        D ¦   «         t          ¬¦  «        ¬¦  «        }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   )é   é   ÚABCD)Údtypec                 ó   — 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�   )ÚcolumnsrD   ÚmethodÚgzipr6   ÚmtimeÚwb)rp   rˆ   Úmodeúgs://test/test.csv)rp   rˆ   r   )rF   rp   rˆ   Úinferú.N)r   rZ   ÚarangeÚreshaper   ÚlistÚobjectÚranger   r\   Úgetvaluer‡   r   re   rf   )r   Úcompression_onlyrˆ   Úcompression_to_extensionÚdfrp   ÚbufferÚpath_gcsr~   ro   Úread_dfÚfile_exts               r   Ú$test_to_csv_compression_encoding_gcsr«   ‹   sÜ  € õ 
Ø�bŒi˜‰nŒn×$Ò$ WÑ-Ô-Ñ-Ý•d˜6‘l”l­&Ð1Ñ1Ô1ÝÐ1Ð1¥u¨R¡y¤yÐ1Ñ1Ô1½Ð@Ñ@Ô@ð
ñ 
ô 
€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           	      óH  ‡— t          j        d¦  «         t          j        d¦  «         ddlm} t	          ddgdt
          j        gdd	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-   r6   r7   r8   r9   r:   r;   r<   r=   r?   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)rD   Úenginerp   )
r*   r+   r   r-   r   rZ   r[   r   r`   ra   )rg   r¶   r-   ri   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›   )re   Úexternal_error_raisedÚImportErrorr   r   r   r   Útest_gcs_not_present_exceptionr¼   Ø   s†   € å	Ô	!¥+Ñ	.Ô	.ð 'ð 'ÝÐ%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   š7·;¾;)&Úior   r´   rN   ry   ru   ÚnumpyrZ   r*   Úpandasr   r   r   r   r   r	   r
   Úpandas._testingÚ_testingre   Úpandas.utilr   ÚtdÚmarkÚfilterwarningsÚ
pytestmarkÚfixturer   Ú
single_cpuÚparametrizerm   ÚbytesrB   r‡   r«   r¸   Úskip_if_installedr¼   r   r   r   ú<module>rÌ      sí  ðØ Ð Ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .àŒ[×'Ò'ØCñô €
ð
 „ðð ñ „ðð2 „ÔØ„×Ò˜Ð#RÐ#RÐ#RÑSÔSð2$ð 2$ñ TÔSñ Ôð2$ðj" %ð "°5ð "Àsð "ð "ð "ð "ð> „×Ò˜ g¨xÐ%8Ñ9Ô9ð-'ð -'ñ :Ô9ð-'ð`ð ð ð8 €Ô�gÑÔð'ð 'ñ Ôð'ð 'ð 'r   