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_Ú_equal)
Ú
isinstancer   ÚtmÚassert_index_equalÚ
startswithZassert_equalÚpdZNaTÚgetattrZassert_almost_equal)ÚresultÚexpectedÚtypZ
comparator© r   úAE:\soccer\ml_env\Lib\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    

r6   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)Údaysr8   )Únanoseconds)r9   r:   Ú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   rG   Úresr   r   r   Útest_picklesq   s@    

rP   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   )rW   ÚseekrX   Úload)r\   r]   r   r   r   Úpython_unpickler¨   s    
rb   Ú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>)rE   )r    r   r   r   Úflatten®   s    þrh   Úpickle_writerÚpython)ÚidZpandas_proto_defaultrT   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 )NrR   ©Úmoder   r_   )r   Úensure_cleanr   rD   r   rb   rW   r`   )r   r   ri   rm   r\   r   Úhandler   r   r   Útest_round_trip_current·   s    



(
(rr   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   ©rf   Úir   r   r   rg   ã   ó    z,test_pickle_path_pathlib.<locals>.<listcomp>rv   ©Úcolumnsr;   )r   ÚnpÚarangeÚreshaper   ÚlistÚobjectÚranger   Úround_trip_pathlibÚ	to_pickler   rD   rK   ©Ú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 )
Nrs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   í   r|   z.test_pickle_path_localpath.<locals>.<listcomp>rv   r}   )r   r   r€   r�   r   r‚   rƒ   r„   r   Zround_trip_localpathr†   r   rD   rK   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_   rn   ÚxzZzstdZ	zstandardrR   zUnrecognized compression type: )r“   r–   )ÚshutilÚcopyfiler�   rW   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ú.rawrs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   '  r|   z7TestCompression.test_write_explicit.<locals>.<listcomp>rv   r}   r”   rR   )r   rp   r   r   r€   r�   r   r‚   rƒ   r„   r†   Údecompress_filerW   rž   r¥   r   rD   rK   )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©Úmatchrs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   >  r|   z;TestCompression.test_write_explicit_bad.<locals>.<listcomp>rv   r}   r”   )r?   Zraisesr¤   r   rp   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­   rs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   L  r|   z4TestCompression.test_write_infer.<locals>.<listcomp>rv   r}   r”   rR   )Ú_extension_to_compressionÚgetÚlowerr   rp   r   r   r€   r�   r   r‚   rƒ   r„   r†   r®   rW   rž   r¥   r   rD   rK   )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¬   rs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   e  r|   z6TestCompression.test_read_explicit.<locals>.<listcomp>rv   r}   r”   )r   rp   r   r   r€   r�   r   r‚   rƒ   r„   r†   r«   r   rD   rK   )
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­   rs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   |  r|   z3TestCompression.test_read_infer.<locals>.<listcomp>rv   r}   r”   )r¼   r½   r¾   r   rp   r   r   r€   r�   r   r‚   rƒ   r„   r†   r«   r   rD   rK   )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 )ÚTestProtocolrU   )rS   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 )Nrs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   –  r|   z*TestProtocol.test_read.<locals>.<listcomp>rv   r}   rT   )r   rp   r   r   r€   r�   r   r‚   rƒ   r„   r†   r   rD   rK   )r¦   rU   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Úcrx   ztest_mi_py27.pkl)r,   r&   r)   )r   r#   r$   c                 C  s*   | ddd|ƒ}t  |¡}t |j|¡ d S )NÚior    rX   )r   rD   r   r   r~   )rL   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 )Nrs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   Á  r|   z0test_pickle_buffer_roundtrip.<locals>.<listcomp>rv   r}   rR   r_   )r   rp   r   r   r€   r�   r   r‚   rƒ   r„   rW   r†   r   rD   rK   )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 rQ   rV   rZ   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·   ©rd   c                 S  s.   t |dƒ| _d|v r ddi| _n
ddi| _d S )Nr_   r�   zContent-Encodingr¶   )rW   Ú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_readrs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg   ó  r|   z/test_pickle_generalurl_read.<locals>.<listcomp>rv   r}   zurllib.request.urlopen)r   rp   r   r   r€   r�   r   r‚   rƒ   r„   Úsetattrr   rD   rK   )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://mockfilers   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg     r|   z0test_pickle_fsspec_roundtrip.<locals>.<listcomp>rv   r}   )r?   Zimportorskipr   rp   r   r   r€   r�   r   r‚   rƒ   r„   r†   r   rD   rK   )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 )Nrx   r   r#   )r   rƒ   rå   r   Úround_trip_picklerF   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
    rs   rt   ru   rw   rx   c                 S  s   g | ]}d |› �‘qS ry   r   rz   r   r   r   rg      r|   z9test_pickle_binary_object_compression.<locals>.<listcomp>rv   r}   r”   Nr   )r�   r“   r–   )r   r   r€   r�   r   r‚   rƒ   r„   r   rp   r†   r   Ú
read_bytesrÐ   ÚBytesIOr`   Úgetvaluer   rD   rK   )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æ   rK   )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<   )rG   r$   )r   r   r   ÚrandomZdefault_rngZstandard_normalÚlenr   ræ   r;   rI   )Zprngr7   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é
   rx   )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æ   rF   )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Úblocksr1   r4   rF   )ZserrO   r   r   r   Ú test_pickle_preserves_block_ndima  s
    
rÿ   rU   c                 C  s>   t tdƒƒ}t t|j| |d�ttj|d�¡}t ||¡ d S )Ni † )rU   r•   r”   )	r   r„   r   r…   r   r†   r   rD   rK   )rU   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    rM   z1.2.4zempty_frame_v1_2_4-GH#42345.pklr_   )r;   r~   )	r   rA   rB   rW   rX   ra   r   r   rK   )rL   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   rX   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È   r0   r-   ÚPickleBufferÚcastr€   r�   r6   rP   r^   rb   rh   Úparamr†   ÚHIGHEST_PROTOCOLrr   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	þþøþ

 þûþþþ
ÿ
)	ÿ



