a
    é´«jÕQ  ã                   @  s4  d Z ddlmZ ddlmZ ddlZddlZddlZddlmZ ddlZddl	Z	ddl
Z
ddlmZ ddlZddlZddlZddlmZ ddlZddlZddlZddlZddlmZmZ dd	lmZ dd
lmZ ddlm  m Z! ddl"Z#ddl"m$Z$m%Z%m&Z&m'Z' ddl(m)Z* ddl+m,Z, ddl-m	  m.Z/ ddl0m1Z1m2Z2 dd„ Z3ej4 5ddde6dƒe7dƒe 8d¡edg d¢ƒe7dƒ 9dd¡e7dƒ 9dd¡ddd… e :d¡j;ddd�e :d¡j;ddd�e :d¡j;ddd�dd…ddd…f g¡dd„ ƒZ<dd „ Z=d!d"„ Z>d#d$„ Z?d%d&d'œd(d)„Z@ej4 5d*ejAe>d+d,�ejAe#jBd-d,�ejAeje#jBejCd.�d/d,�ejAeje#jBd0d.�d1d,�ejAeje#jBd2d.�d3d,�g¡ej4 5d4e#jBe>g¡ej4 5d5e@e,ƒ ƒ¡d6d7„ ƒƒƒZDd8d9„ ZEd:d;„ ZFejGd<d=„ ƒZHG d>d?„ d?ƒZIG d@dA„ dAƒZJej4 5dBdCgdDe%g dE¢eKdF�fdGe# Le%g dE¢eKdF�e%g dH¢eKdF�ge g dI¢¡e g dI¢¡g¡fg¡dJdK„ ƒZMdLdM„ ZNej4 5dNg dO¢¡dPdQ„ ƒZOdRdS„ ZPG dTdU„ dUejQƒZRdVdW„ ZSdXdY„ ZTdZd[„ ZUd\d]„ ZVej4 5d^d_d`d^e dadbdb¡dcg¡ddde„ ƒZWdfdg„ ZXdhdi„ ZYe!jZdjdk„ ƒZ[ej4 5dlej\ejCg¡dmdn„ ƒZ]dodp„ Z^dqdr„ Z_dS )sa<  
manage legacy pickle tests

How to add pickle tests:

1. Install pandas version intended to output the pickle.

2. Execute "generate_legacy_storage_files.py" to create the pickle.
$ python generate_legacy_storage_files.py <output_dir> pickle

3. Move the created pickle to "data/legacy_pickle/<version>" directory.
é    )Úannotations)ÚarrayN)Úpartial)ÚPath)ÚAny)Úget_lzma_fileÚis_platform_little_endian)Úimport_optional_dependency)Úflatten_buffer)Ú	DataFrameÚIndexÚSeriesÚperiod_range)Úcreate_pickle_data)ÚDayÚMonthEndc                 C  s†   t |tƒrt || ¡ d S | d¡r2t | |¡ nP|dkrb|tju rT| tju s`J ‚q‚| |ks‚J ‚n ttd|› d�tj	ƒ}|| |ƒ d S )NZsp_Ú	timestampZassert_Z_equal)
Ú
isinstancer   ÚtmÚassert_index_equalÚ
startswithZassert_equalÚpdZNaTÚgetattrZassert_almost_equal)ÚresultÚexpectedÚtypZ
comparator© r   úZ/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/test_pickle.pyÚcompare_element>   s    


r   Údatas   123s   123456ÚI©é   é   é   ÚB)r$   r#   r#   é   )r$   é   ÚC)ÚorderÚFc                 C  s„   t | ƒ}t| ƒ d¡}||ks"J ‚t| ttfƒr>|| u s€J ‚nBt|tƒr€|jdksVJ ‚|jdksdJ ‚|jsnJ ‚|j	|j
fks€J ‚d S )NÚAr"   r%   )r
   Ú
memoryviewÚtobytesr   ÚbytesÚ	bytearrayÚndimÚformatÚ
contiguousÚshapeÚnbytes)r   r   r   r   r   r   Útest_flatten_bufferT   s    

r5   c           
   	   C  s  t ƒ st d¡ ttƒj d¡D �]ò}| |ƒ}t |¡}| 	¡ D �]Ð\}}| 	¡ D �]¼\}}|| | }|dk�rR|dk�rRt
 ||¡ |jj|jjksœJ ‚|jjjrªJ ‚t
 |dk|dk¡ |jj}|tdƒ tdƒksÞJ ‚|tjdd� }	t|	tjƒsþJ ‚|	tjddd	�k�sJ ‚|tjdd
� }	t|	tjƒ�s8J ‚|	tjddd�k�sJ ‚qR|dk�rÀ|dk�rÀt
 ||¡ t|jtƒ�s„J ‚|jtƒ k�s–J ‚|jdk�s¦J ‚t
 | d¡| d¡¡ qR|dk�râ|dv �rât
 ||¡ qR|dk�r|dv �rt
 ||¡ qRt|||ƒ qRq@q d S )Nz"known failure on non-little endianzdata/legacy_pickle/*/*.p*kl*ZseriesÚtsr   r"   r#   )Úhours)Údaysr7   )Únanoseconds)r8   r9   ÚindexZperiodÚM)Zdt_tzÚcatÚframe)Zdt_mixed_tzsZ
cat_onecolZcat_and_float)r   ÚpytestÚskipr   Ú__file__ÚparentÚglobr   Úread_pickleÚitemsr   Úassert_series_equalr:   ÚfreqÚ	normalizer   Z	Timedeltar   r   r   ÚfreqstrÚshiftÚassert_frame_equalr   )
ÚdatapathÚlegacy_pickler   r   ZdvÚdtr   r   rF   Úresr   r   r   Útest_picklesq   s@    

rO   c                 C  s>   t |dƒ� }tj| |dd� W d   ƒ n1 s00    Y  d S ©NÚwbéÿÿÿÿ©Úprotocol©ÚopenÚpickleÚdump©ÚobjÚpathÚfhr   r   r   Úpython_pickler£   s    r]   c                 C  sB   t | dƒ�$}| d¡ t |¡W  d   ƒ S 1 s40    Y  d S )NÚrbr   )rV   ÚseekrW   Úload)r[   r\   r   r   r   Úpython_unpickler¨   s    
ra   Údictzlist[tuple[str, Any]])r   Úreturnc                 C  s   dd„ |   ¡ D ƒS )zFlatten create_pickle_datac                 S  s&   g | ]\}}|  ¡ D ]}||f‘qqS r   )Úvalues)Ú.0r   ZexamplesZexampler   r   r   Ú
<listcomp>°   s   þzflatten.<locals>.<listcomp>)rD   )r   r   r   r   Úflatten®   s    þrg   Úpickle_writerÚpython)ÚidZpandas_proto_defaultrS   Zpandas_proto_highestr'   Zpandas_proto_4é   Zpandas_proto_5Úwriterztyp, expectedc              	   C  sì   t  ¡ �Ð}|||ƒ t |¡}t||| ƒ t|ƒ}t||| ƒ t|dd��$}|||ƒ | d¡ W d   ƒ n1 st0    Y  t|dd��$}t |¡}| d¡ W d   ƒ n1 s´0    Y  t||| ƒ W d   ƒ n1 sÞ0    Y  d S )NrQ   ©Úmoder   r^   )r   Úensure_cleanr   rC   r   ra   rV   r_   )r   r   rh   rl   r[   r   Úhandler   r   r   Útest_round_trip_current·   s    



(
(rq   c                  C  s`   t dt d¡ d¡ ttdƒtd�tdd„ tdƒD ƒtd�d	�} t 	| j
tj¡}t | |¡ d S )
Nçš™™™™™ñ?éx   ©é   r'   ÚABCD©Zdtypec                 S  s   g | ]}d |› �‘qS ©zi-r   ©re   Úir   r   r   rf   ã   ó    z,test_pickle_path_pathlib.<locals>.<listcomp>ru   ©Úcolumnsr:   )r   ÚnpÚarangeÚreshaper   ÚlistÚobjectÚranger   Úround_trip_pathlibÚ	to_pickler   rC   rJ   ©Údfr   r   r   r   Útest_pickle_path_pathlibß   s    ýrˆ   c                  C  s`   t dt d¡ d¡ ttdƒtd�tdd„ tdƒD ƒtd�d	�} t 	| j
tj¡}t | |¡ d S )
Nrr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   í   r{   z.test_pickle_path_localpath.<locals>.<listcomp>ru   r|   )r   r~   r   r€   r   r�   r‚   rƒ   r   Zround_trip_localpathr…   r   rC   rJ   r†   r   r   r   Útest_pickle_path_localpathé   s    ýr‰   c                   C  s   dt  ¡ › d�S )NÚ__z	__.pickle)ÚuuidÚuuid4r   r   r   r   Úget_random_pathø   s    r�   c                   @  sT   e Zd ZejZdd„ Zdd„ Zej	 
dg d¢¡dd„ ƒZd	d
„ Zdd„ Zdd„ ZdS )ÚTestCompressionc           	   	   C  sÒ  |d u rt  ||¡ d S |dkr0t |d¡}�n4|dkrHt |d¡}�n|dkr˜tj|dtjd��$}| 	|t
j |¡¡ W d   ƒ n1 sŒ0    Y  nÌ|dk�rt|dƒ�^}tj|dd��0}| |t
j |¡¡}| ||¡ W d   ƒ n1 sò0    Y  W d   ƒ n1 �s0    Y  nF|d	k�r6tƒ |dƒ}n.|d
k�rRtdƒ |d¡}nd|› �}t|ƒ‚|dv�rÎt|dƒ�D}|� | 	| ¡ ¡ W d   ƒ n1 �s¤0    Y  W d   ƒ n1 �sÄ0    Y  d S )NÚgzipÚwÚbz2Úzip©ÚcompressionÚtarr^   rm   ÚxzZzstdZ	zstandardrQ   zUnrecognized compression type: )r’   r•   )ÚshutilÚcopyfiler�   rV   r‘   ÚBZ2FileÚzipfileÚZipFileÚZIP_DEFLATEDÚwriteÚosr[   ÚbasenameÚtarfileÚ
gettarinfoÚaddfiler   r	   Ú
ValueErrorÚread)	ÚselfZsrc_pathÚ	dest_pathr”   Úfr\   r•   ÚtarinfoÚmsgr   r   r   Úcompress_file   s2    4
L



zTestCompression.compress_filec                 C  s@  |}|d }|d }t  |¡��
}t  |¡�Þ}tdt d¡ d¡ ttdƒtd�tdd	„ t	d
ƒD ƒtd�d�}|j
||d� t j||d��H}	t|dƒ�}
|
 |	 ¡ ¡ W d   ƒ n1 sº0    Y  W d   ƒ n1 sØ0    Y  tj|d d�}t  ||¡ W d   ƒ n1 �s0    Y  W d   ƒ n1 �s20    Y  d S )Nú.compressedú.rawrr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   '  r{   z7TestCompression.test_write_explicit.<locals>.<listcomp>ru   r|   r“   rQ   )r   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   Údecompress_filerV   r�   r¤   r   rC   rJ   )r¥   r”   r�   ÚbaseÚpath1Úpath2Úp1Úp2r‡   r§   r\   Údf2r   r   r   Útest_write_explicit  s    ýJz#TestCompression.test_write_explicitr”   )Ú ÚNoneÚbadZ7zc              	   C  sª   t jtdd��ˆ t |¡�^}tdt d¡ d¡ t	t
dƒtd�t	dd	„ td
ƒD ƒtd�d�}|j||d� W d   ƒ n1 s~0    Y  W d   ƒ n1 sœ0    Y  d S )NzUnrecognized compression type©Úmatchrr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   >  r{   z;TestCompression.test_write_explicit_bad.<locals>.<listcomp>ru   r|   r“   )r>   Zraisesr£   r   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   )r¥   r”   r�   r[   r‡   r   r   r   Útest_write_explicit_bad7  s    ýz'TestCompression.test_write_explicit_badc                 C  sL  |}|| }|d }| j  | ¡ ¡}t |¡��}t |¡�Ú}tdt d¡ d¡ t	t
dƒtd�t	dd„ td	ƒD ƒtd�d
�}	|	 |¡ tj||d��H}
t|dƒ�}| |
 ¡ ¡ W d   ƒ n1 sÆ0    Y  W d   ƒ n1 sä0    Y  tj|d d�}t |	|¡ W d   ƒ n1 �s0    Y  W d   ƒ n1 �s>0    Y  d S )Nr¬   rr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   L  r{   z4TestCompression.test_write_infer.<locals>.<listcomp>ru   r|   r“   rQ   )Ú_extension_to_compressionÚgetÚlowerr   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   r­   rV   r�   r¤   r   rC   rJ   )r¥   Úcompression_extr�   r®   r¯   r°   r”   r±   r²   r‡   r§   r\   r³   r   r   r   Útest_write_inferB  s     ý
Jz TestCompression.test_write_inferc           
   	   C  sä   |}|d }|d }t  |¡�²}t  |¡�ˆ}tdt d¡ d¡ ttdƒtd�tdd	„ t	d
ƒD ƒtd�d�}|j
|d d� | j|||d� tj||d�}	t  ||	¡ W d   ƒ n1 s¸0    Y  W d   ƒ n1 sÖ0    Y  d S )Nr¬   r«   rr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   e  r{   z6TestCompression.test_read_explicit.<locals>.<listcomp>ru   r|   r“   )r   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   rª   r   rC   rJ   )
r¥   r”   r�   r®   r¯   r°   r±   r²   r‡   r³   r   r   r   Útest_read_explicit\  s    ýz"TestCompression.test_read_explicitc              	   C  sð   |}|d }|| }| j  | ¡ ¡}t |¡�®}t |¡�„}tdt d¡ d¡ t	t
dƒtd�t	dd„ td	ƒD ƒtd�d
�}	|	j|d d� | j|||d� t |¡}
t |	|
¡ W d   ƒ n1 sÄ0    Y  W d   ƒ n1 sâ0    Y  d S )Nr¬   rr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   |  r{   z3TestCompression.test_read_infer.<locals>.<listcomp>ru   r|   r“   )r»   r¼   r½   r   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   rª   r   rC   rJ   )r¥   r¾   r�   r®   r¯   r°   r”   r±   r²   r‡   r³   r   r   r   Útest_read_inferr  s    ý
zTestCompression.test_read_inferN)Ú__name__Ú
__module__Ú__qualname__ÚicomZextension_to_compressionr»   rª   r´   r>   ÚmarkÚparametrizerº   r¿   rÀ   rÁ   r   r   r   r   rŽ   ý   s   

rŽ   c                   @  s&   e Zd Zej dg d¢¡dd„ ƒZdS )ÚTestProtocolrT   )rR   r   r"   r#   c                 C  s’   t  |¡�t}tdt d¡ d¡ ttdƒtd�tdd„ t	dƒD ƒtd�d	�}|j
||d
� t |¡}t  ||¡ W d   ƒ n1 s„0    Y  d S )Nrr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   –  r{   z*TestProtocol.test_read.<locals>.<listcomp>ru   r|   rS   )r   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   r   rC   rJ   )r¥   rT   r�   r[   r‡   r³   r   r   r   Ú	test_read�  s    ý
zTestProtocol.test_readN)rÂ   rÃ   rÄ   r>   rÆ   rÇ   rÉ   r   r   r   r   rÈ   �  s   rÈ   Úpickle_fileÚexcolsztest_py27.pkl)ÚaÚbÚcrw   ztest_mi_py27.pkl)r+   r%   r(   )r   r"   r#   c                 C  s*   | ddd|ƒ}t  |¡}t |j|¡ d S )NÚior   rW   )r   rC   r   r   r}   )rK   rÊ   rË   r[   r‡   r   r   r   Útest_unicode_decode_error�  s    
rÐ   c               	   C  sà   t  ¡ �Ä} tdt d¡ d¡ ttdƒtd�tdd„ t	dƒD ƒtd�d	�}t
| d
ƒ�}| |¡ W d   ƒ n1 st0    Y  t
| dƒ�}t |¡}W d   ƒ n1 s¨0    Y  t  ||¡ W d   ƒ n1 sÒ0    Y  d S )Nrr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   Á  r{   z0test_pickle_buffer_roundtrip.<locals>.<listcomp>ru   r|   rQ   r^   )r   ro   r   r~   r   r€   r   r�   r‚   rƒ   rV   r…   r   rC   rJ   )r[   r‡   r\   r   r   r   r   Útest_pickle_buffer_roundtrip¼  s    
ý((rÑ   Úmockurl)zhttp://url.comzftp://test.comzhttp://gzip.comc                   s¼   dd„ }G dd„ dƒ‰ t  ¡ �Š‰‡ ‡fdd„}tdt d¡ d	¡ ttd
ƒtd�tdd„ t	dƒD ƒtd�d�}||ˆƒ |  
d|¡ t |¡}t  ||¡ W d   ƒ n1 s®0    Y  d S )Nc                 S  s>   t |dƒ� }tj| |dd� W d   ƒ n1 s00    Y  d S rP   rU   rY   r   r   r   r]   Ó  s    z3test_pickle_generalurl_read.<locals>.python_picklerc                   @  s:   e Zd Zddœdd„Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )z5test_pickle_generalurl_read.<locals>.MockReadResponser¶   ©rc   c                 S  s.   t |dƒ| _d|v r ddi| _n
ddi| _d S )Nr^   r�   zContent-Encodingrµ   )rV   ÚfileÚheaders)r¥   r[   r   r   r   Ú__init__Ø  s    z>test_pickle_generalurl_read.<locals>.MockReadResponse.__init__c                 S  s   | S ©Nr   ©r¥   r   r   r   Ú	__enter__ß  s    z?test_pickle_generalurl_read.<locals>.MockReadResponse.__enter__c                 W  s   |   ¡  d S r×   )Úclose)r¥   Úargsr   r   r   Ú__exit__â  s    z>test_pickle_generalurl_read.<locals>.MockReadResponse.__exit__c                 S  s
   | j  ¡ S r×   )rÔ   r¤   rØ   r   r   r   r¤   å  s    z:test_pickle_generalurl_read.<locals>.MockReadResponse.readc                 S  s
   | j  ¡ S r×   )rÔ   rÚ   rØ   r   r   r   rÚ   è  s    z;test_pickle_generalurl_read.<locals>.MockReadResponse.closeN)rÂ   rÃ   rÄ   rÖ   rÙ   rÜ   r¤   rÚ   r   r   r   r   ÚMockReadResponse×  s
   rÝ   c                    s   ˆ ˆƒS r×   r   )rÛ   Úkwargs©rÝ   r[   r   r   Úmock_urlopen_readí  s    z6test_pickle_generalurl_read.<locals>.mock_urlopen_readrr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf   ó  r{   z/test_pickle_generalurl_read.<locals>.<listcomp>ru   r|   zurllib.request.urlopen)r   ro   r   r~   r   r€   r   r�   r‚   rƒ   Úsetattrr   rC   rJ   )ZmonkeypatchrÒ   r]   rà   r‡   r   r   rß   r   Útest_pickle_generalurl_readÏ  s    
ý

râ   c                  C  sš   t  d¡ t ¡ �t d} tdt d¡ d¡ tt	dƒt
d�tdd	„ td
ƒD ƒt
d�d�}| | ¡ t | ¡}t ||¡ W d   ƒ n1 sŒ0    Y  d S )NZfsspeczmemory://mockfilerr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf     r{   z0test_pickle_fsspec_roundtrip.<locals>.<listcomp>ru   r|   )r>   Zimportorskipr   ro   r   r~   r   r€   r   r�   r‚   rƒ   r…   r   rC   rJ   )rÒ   r‡   r   r   r   r   Útest_pickle_fsspec_roundtripû  s    

ý

rã   c                   @  s   e Zd Zddœdd„ZdS )ÚMyTzr¶   rÓ   c                 C  s   d S r×   r   rØ   r   r   r   rÖ   
  s    zMyTz.__init__N)rÂ   rÃ   rÄ   rÖ   r   r   r   r   rä   	  s   rä   c                  C  sD   t td�tƒ f} t | ¡}t |d | d ¡ t|d tƒs@J ‚d S )Nrw   r   r"   )r   r‚   rä   r   Úround_trip_picklerE   r   )r   r   r   r   r   Útest_read_pickle_with_subclass  s    
ræ   c                 C  sâ   t dt d¡ d¡ ttdƒtd�tdd„ tdƒD ƒtd�d	�}t 	¡ �*}|j
|| d
� t|ƒ ¡ }W d  ƒ n1 sx0    Y  t ¡ }|j
|| d
� | d¡ | ¡ |ksº| dv sºJ ‚tj|| d
�}| d¡ t ||¡ dS )ze
    Read/write from binary file-objects w/wo compression.

    GH 26237, GH 29054, and GH 29570
    rr   rs   rt   rv   rw   c                 S  s   g | ]}d |› �‘qS rx   r   ry   r   r   r   rf      r{   z9test_pickle_binary_object_compression.<locals>.<listcomp>ru   r|   r“   Nr   )r�   r’   r•   )r   r~   r   r€   r   r�   r‚   rƒ   r   ro   r…   r   Ú
read_bytesrÏ   ÚBytesIOr_   Úgetvaluer   rC   rJ   )r”   r‡   r[   Ú	referenceÚbufferZread_dfr   r   r   Ú%test_pickle_binary_object_compression  s    ý
*

rì   c                 C  s8   | }|}dd„ }||ƒ ||j ƒ ||ƒ ||j ƒ d S )Nc                 S  s   t  | ¡}t  | |¡ d S r×   )r   rå   rJ   )r=   Ú	unpickledr   r   r   Ú_test_roundtrip=  s    
zDtest_pickle_dataframe_with_multilevel_index.<locals>._test_roundtrip)ÚT)Z/multiindex_year_month_day_dataframe_random_dataZ multiindex_dataframe_random_dataZymdr=   rî   r   r   r   Ú+test_pickle_dataframe_with_multilevel_index6  s    
rð   c                  C  sH   t dddd�} ttj d¡ t| ƒ¡| ƒ}t |¡}|j	j
dksDJ ‚d S )Nz1/1/2011z1/1/2012r;   )rF   r#   )r   r   r~   ÚrandomZdefault_rngZstandard_normalÚlenr   rå   r:   rH   )Zprngr6   Znew_tsr   r   r   Ú"test_pickle_timeseries_periodindexG  s    
ró   Únamei	  g     Hˆ@iÑ  é   )r"   r#   c                 C  s0   t  ttjdtjd�| d�¡}|j| ks,J ‚d S )Né
   rw   )rô   )r   rå   r   r~   r   Zfloat64rô   )rô   rí   r   r   r   Útest_pickle_preserve_nameO  s    r÷   c                 C  s   t  | ¡}t  || ¡ d S r×   ©r   rå   rE   )Zdatetime_seriesZunp_tsr   r   r   Útest_pickle_datetimesW  s    
rù   c                 C  s   t  | ¡}t  || ¡ d S r×   rø   )Zstring_seriesZ
unp_seriesr   r   r   Útest_pickle_strings\  s    
rú   c                  C  sf   t tdƒƒ d¡jdg } t | ¡}|jjd jdks:J ‚|jjd j	dksPJ ‚t 
|dg | ¡ d S )NÚabcÚcategoryr   r"   )r"   T)r   r�   ZastypeZilocr   rå   Z_mgrÚblocksr0   r3   rE   )ZserrN   r   r   r   Ú test_pickle_preserves_block_ndima  s
    
rþ   rT   c                 C  s>   t tdƒƒ}t t|j| |d�ttj|d�¡}t ||¡ d S )Ni † )rT   r”   r“   )	r   rƒ   r   r„   r   r…   r   rC   rJ   )rT   r”   r‡   r   r   r   r   Ú%test_pickle_big_dataframe_compressionn  s    þrÿ   c                 C  sf   | t tƒjddddƒ}t|dƒ�}t |¡}W d   ƒ n1 s@0    Y  tg g d�}t ||¡ d S )Nr   rL   z1.2.4zempty_frame_v1_2_4-GH#42345.pklr^   )r:   r}   )	r   r@   rA   rV   rW   r`   r   r   rJ   )rK   r[   Úfdr‡   r   r   r   r   Ú#test_pickle_frame_v124_unpickle_130y  s    û(r  c                  C  sZ   t dg d¢iƒ} d}tjt|d��$ t ¡ }|  |d¡ W d   ƒ n1 sL0    Y  d S )NrÌ   r!   zpStarting with pandas version 3.0 all arguments of to_pickle except for the argument 'path' will be keyword-only.r¸   Zinfer)r   r   Zassert_produces_warningÚFutureWarningrÏ   rè   r…   )r‡   r©   rë   r   r   r   Ú test_pickle_pos_args_deprecation‰  s    ÿr  )`Ú__doc__Ú
__future__r   r   r‘   ÚdatetimeÚ	functoolsr   r�   rÏ   rž   Úpathlibr   rW   r—   r    Útypingr   r‹   rš   Únumpyr~   r>   Zpandas.compatr   r   Zpandas.compat._optionalr	   Zpandas.compat.compressorsr
   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr   r   r   r   r   Zpandas._testingZ_testingr   Z-pandas.tests.io.generate_legacy_storage_filesr   Zpandas.io.commonÚcommonrÅ   Zpandas.tseries.offsetsr   r   r   rÆ   rÇ   r/   r,   ÚPickleBufferÚcastr   r€   r5   rO   r]   ra   rg   Úparamr…   ÚHIGHEST_PROTOCOLrq   rˆ   r‰   Zfixturer�   rŽ   rÈ   r‚   Z
MultiIndexrÐ   rÑ   râ   rã   Útzinforä   ræ   rì   rð   ró   r÷   rù   rú   Zskip_array_manager_invalid_testrþ   ÚDEFAULT_PROTOCOLrÿ   r  r  r   r   r   r   Ú<module>   sÞ   	$õþ
2	þþøþ

 þûþþþ
ÿ
)	ÿ



