o
    Û­jÕQ  ã                   @  s.  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?dsd(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 )ta<  
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¡rt | |¡ d S |dkr4|tju r,| tju s*J ‚d S | |ks2J ‚d S ttd|› d�tj	ƒ}|| |ƒ d S )NÚsp_Ú	timestampÚassert_Ú_equal)
Ú
isinstancer   ÚtmÚassert_index_equalÚ
startswithÚassert_equalÚpdÚNaTÚgetattrÚassert_almost_equal)ÚresultÚexpectedÚtypÚ
comparator© r#   úX/var/www/html/CropPilot/venv/lib/python3.10/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 ‚d S t|tƒrA|jdks,J ‚|jdks3J ‚|js8J ‚|j	|j
fksCJ ‚d S 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   

ür<   c           
   	   C  sø  t ƒ st d¡ ttƒj d¡D ]é}| |ƒ}t |¡}| 	¡ D ]Ù\}}| 	¡ D ]Ð\}}|| | }|dkr¡|dkr¡t
 ||¡ |jj|jjksIJ ‚|jjjrPJ ‚t
 |dk|dk¡ |jj}|tdƒ tdƒksjJ ‚|tjdd� }	t|	tjƒszJ ‚|	tjddd	�ks…J ‚|tjdd
� }	t|	tjƒs•J ‚|	tjddd�ks J ‚q'|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¡¡ q'|dkrâ|dv rât
 ||¡ q'|dkrñ|dv rñt
 ||¡ q't|||ƒ q'qqd S )Nz"known failure on non-little endianzdata/legacy_pickle/*/*.p*kl*ÚseriesÚtsr   r)   r*   )Úhours)Údaysr?   )Únanoseconds)r@   rA   ÚindexÚperiodÚM)Údt_tzÚcatÚframe)Údt_mixed_tzsÚ
cat_onecolÚcat_and_float)r   ÚpytestÚskipr   Ú__file__ÚparentÚglobr   Úread_pickleÚitemsr   Úassert_series_equalrB   ÚfreqÚ	normalizer   Ú	Timedeltar   r   r   ÚfreqstrÚshiftÚassert_frame_equalr%   )
ÚdatapathÚlegacy_pickler&   r!   ÚdvÚdtr   r    rS   Úresr#   r#   r$   Útest_picklesq   sF   

Üÿûr^   c                 C  ó@   t |dƒ�}tj| |dd� W d   ƒ d S 1 sw   Y  d S ©NÚwbéÿÿÿÿ©Úprotocol©ÚopenÚpickleÚdump©ÚobjÚpathÚfhr#   r#   r$   Úpython_pickler£   ó   "ÿrm   c                 C  sB   t | dƒ�}| d¡ t |¡W  d   ƒ S 1 sw   Y  d S )NÚrbr   )rf   Úseekrg   Úload)rk   rl   r#   r#   r$   Úpython_unpickler¨   s   
$þrr   ÚdictÚreturnúlist[tuple[str, Any]]c                 C  s   dd„ |   ¡ D ƒS )zFlatten create_pickle_datac                 S  s&   g | ]\}}|  ¡ D ]}||f‘q
qS r#   )Úvalues)Ú.0r!   ÚexamplesÚexampler#   r#   r$   Ú
<listcomp>°   s    ýþÿzflatten.<locals>.<listcomp>)rQ   )r&   r#   r#   r$   Úflatten®   s   þr{   Úpickle_writerÚpython)ÚidÚpandas_proto_defaultrc   Úpandas_proto_highestr.   Úpandas_proto_4é   Úpandas_proto_5Úwriterztyp, expectedc              	   C  sî   t  ¡ �i}|||ƒ t |¡}t||| ƒ t|ƒ}t||| ƒ t|dd��}|||ƒ | d¡ W d   ƒ n1 s:w   Y  t|dd��}t |¡}| d¡ W d   ƒ n1 sZw   Y  t||| ƒ W d   ƒ d S 1 spw   Y  d S )Nra   ©Úmoder   ro   )r   Úensure_cleanr   rP   r%   rr   rf   rp   )r!   r    r|   r„   rk   r   Úhandler#   r#   r$   Útest_round_trip_current·   s    



þ
þ"îr‰   c                  C  ó`   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©Údtypec                 S  ó   g | ]}d |› �‘qS ©zi-r#   ©rw   Úir#   r#   r$   rz   ã   ó    z,test_pickle_path_pathlib.<locals>.<listcomp>rŽ   ©ÚcolumnsrB   )r   ÚnpÚarangeÚreshaper   ÚlistÚobjectÚranger   Úround_trip_pathlibÚ	to_pickler   rP   rX   ©Údfr   r#   r#   r$   Útest_pickle_path_pathlibß   ó   ýr£   c                  C  rŠ   )
Nr‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   í   r–   z.test_pickle_path_localpath.<locals>.<listcomp>rŽ   r—   )r   r™   rš   r›   r   rœ   r�   rž   r   Úround_trip_localpathr    r   rP   rX   r¡   r#   r#   r$   Útest_pickle_path_localpathé   r¤   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rt |d¡}n•|dkr"t |d¡}nŠ|dkrJtj|dtjd��}| 	|t
j |¡¡ W d   ƒ n1 sDw   Y  nb|dkr‹t|dƒ�/}tj|dd��}| |t
j |¡¡}| ||¡ W d   ƒ n1 svw   Y  W d   ƒ n1 s…w   Y  n!|d	kr–tƒ |dƒ}n|d
kr£tdƒ |d¡}n	d|› �}t|ƒ‚|dvrét|dƒ�*}|� | 	| ¡ ¡ W d   ƒ n1 sÊw   Y  W d   ƒ d S W d   ƒ d S 1 sâw   Y  d S d S )NÚgzipÚwÚbz2Úzip©ÚcompressionÚtarro   r…   ÚxzÚzstdÚ	zstandardra   zUnrecognized compression type: )r¯   r²   )ÚshutilÚcopyfiler¬   rf   r®   ÚBZ2FileÚzipfileÚZipFileÚZIP_DEFLATEDÚwriteÚosrk   ÚbasenameÚtarfileÚ
gettarinfoÚaddfiler   r	   Ú
ValueErrorÚread)	ÚselfÚsrc_pathÚ	dest_pathr±   Úfrl   r²   ÚtarinfoÚmsgr#   r#   r$   Úcompress_file   sH   ÿ€þ€ÿ€
ÿÿ"ÿÿzTestCompression.compress_filec                 C  sL  |}|d }|d }t  |¡��}t  |¡�o}tdt d¡ d¡ ttdƒtd�tdd	„ t	d
ƒD ƒtd�d�}|j
||d� t j||d��$}	t|dƒ�}
|
 |	 ¡ ¡ W d   ƒ n1 s\w   Y  W d   ƒ n1 skw   Y  tj|d d�}t  ||¡ W d   ƒ n1 s‡w   Y  W d   ƒ d S W d   ƒ d S 1 sŸw   Y  d S )Nú.compressedú.rawr‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   '  r–   z7TestCompression.test_write_explicit.<locals>.<listcomp>rŽ   r—   r°   ra   )r   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    Údecompress_filerf   r¼   rÃ   r   rP   rX   )rÄ   r±   rª   ÚbaseÚpath1Úpath2Úp1Úp2r¢   rÇ   rl   Údf2r#   r#   r$   Útest_write_explicit  s&   ýÿ€ÿPîz#TestCompression.test_write_explicitr±   )Ú ÚNoneÚbadÚ7zc              	   C  s¼   t jtdd��M 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?w   Y  W d   ƒ d S W d   ƒ d S 1 sWw   Y  d S )NzUnrecognized compression type©Úmatchr‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   >  r–   z;TestCompression.test_write_explicit_bad.<locals>.<listcomp>rŽ   r—   r°   )rK   ÚraisesrÂ   r   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    )rÄ   r±   rª   rk   r¢   r#   r#   r$   Útest_write_explicit_bad7  s   ýúÿ"ÿz'TestCompression.test_write_explicit_badc                 C  sX  |}|| }|d }| j  | ¡ ¡}t |¡�‹}t |¡�m}tdt d¡ d¡ t	t
dƒtd�t	dd„ td	ƒD ƒtd�d
�}	|	 |¡ tj||d��$}
t|dƒ�}| |
 ¡ ¡ W d   ƒ n1 sbw   Y  W d   ƒ n1 sqw   Y  tj|d d�}t |	|¡ W d   ƒ n1 s�w   Y  W d   ƒ d S W d   ƒ d S 1 s¥w   Y  d S )NrÌ   r‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   L  r–   z4TestCompression.test_write_infer.<locals>.<listcomp>rŽ   r—   r°   ra   )Ú_extension_to_compressionÚgetÚlowerr   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    rÍ   rf   r¼   rÃ   r   rP   rX   )rÄ   Úcompression_extrª   rÎ   rÏ   rÐ   r±   rÑ   rÒ   r¢   rÇ   rl   rÓ   r#   r#   r$   Útest_write_inferB  s(   ý
ÿ€ÿPîz TestCompression.test_write_inferc           
   	   C  sö   |}|d }|d }t  |¡�b}t  |¡�D}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\w   Y  W d   ƒ d S W d   ƒ d S 1 stw   Y  d S )NrÌ   rË   r‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   e  r–   z6TestCompression.test_read_explicit.<locals>.<listcomp>rŽ   r—   r°   )r   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    rÊ   r   rP   rX   )
rÄ   r±   rª   rÎ   rÏ   rÐ   rÑ   rÒ   r¢   rÓ   r#   r#   r$   Útest_read_explicit\  s   ýPñz"TestCompression.test_read_explicitc              	   C  s  |}|d }|| }| j  | ¡ ¡}t |¡�`}t |¡�B}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 sbw   Y  W d   ƒ d S W d   ƒ d S 1 szw   Y  d S )NrÌ   r‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   |  r–   z3TestCompression.test_read_infer.<locals>.<listcomp>rŽ   r—   r°   )rÝ   rÞ   rß   r   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    rÊ   r   rP   rX   )rÄ   rà   rª   rÎ   rÏ   rÐ   r±   rÑ   rÒ   r¢   rÓ   r#   r#   r$   Útest_read_inferr  s   ý
PñzTestCompression.test_read_inferN)Ú__name__Ú
__module__Ú__qualname__ÚicomÚextension_to_compressionrÝ   rÊ   rÔ   rK   Ú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 )ÚTestProtocolrd   )rb   r   r)   r*   c                 C  s”   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   ƒ d S 1 sCw   Y  d S )Nr‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   –  r–   z*TestProtocol.test_read.<locals>.<listcomp>rŽ   r—   rc   )r   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    r   rP   rX   )rÄ   rd   rª   rk   r¢   rÓ   r#   r#   r$   Ú	test_read�  s   ý
"øzTestProtocol.test_readN)rä   rå   ræ   rK   ré   rê   rì   r#   r#   r#   r$   rë   �  s    rë   Úpickle_fileÚexcolsztest_py27.pkl)ÚaÚbÚcr�   ztest_mi_py27.pkl)r2   r,   r/   )r   r)   r*   c                 C  s*   | ddd|ƒ}t  |¡}t |j|¡ d S )NÚior&   rg   )r   rP   r   r   r˜   )rY   rí   rî   rk   r¢   r#   r#   r$   Útest_unicode_decode_error�  s   
ró   c               	   C  sâ   t  ¡ �c} 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 s:w   Y  t
| dƒ�}t |¡}W d   ƒ n1 sTw   Y  t  ||¡ W d   ƒ d S 1 sjw   Y  d S )Nr‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   Á  r–   z0test_pickle_buffer_roundtrip.<locals>.<listcomp>rŽ   r—   ra   ro   )r   r‡   r   r™   rš   r›   r   rœ   r�   rž   rf   r    r   rP   rX   )rk   r¢   rl   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‰‡ ‡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   ƒ d S 1 sXw   Y  d S )Nc                 S  r_   r`   re   ri   r#   r#   r$   rm   Ó  rn   z3test_pickle_generalurl_read.<locals>.python_picklerc                   @  s6   e Zd Zddd„Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )z5test_pickle_generalurl_read.<locals>.MockReadResponsert   rÖ   c                 S  s0   t |dƒ| _d|v rddi| _d S ddi| _d S )Nro   r¬   zContent-EncodingrÕ   )rf   ÚfileÚheaders)rÄ   rk   r#   r#   r$   Ú__init__Ø  s   z>test_pickle_generalurl_read.<locals>.MockReadResponse.__init__c                 S  s   | S ©Nr#   ©rÄ   r#   r#   r$   Ú	__enter__ß  ó   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  ó
   | j  ¡ S rù   )rö   rÃ   rú   r#   r#   r$   rÃ   å  ó   
z:test_pickle_generalurl_read.<locals>.MockReadResponse.readc                 S  r   rù   )rö   rý   rú   r#   r#   r$   rý   è  r  z;test_pickle_generalurl_read.<locals>.MockReadResponse.closeN©rt   rÖ   )rä   rå   ræ   rø   rû   rÿ   rÃ   rý   r#   r#   r#   r$   ÚMockReadResponse×  s    
r  c                    s   ˆ ˆƒS rù   r#   )rþ   Úkwargs©r  rk   r#   r$   Úmock_urlopen_readí  s   z6test_pickle_generalurl_read.<locals>.mock_urlopen_readr‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz   ó  r–   z/test_pickle_generalurl_read.<locals>.<listcomp>rŽ   r—   zurllib.request.urlopen)r   r‡   r   r™   rš   r›   r   rœ   r�   rž   Úsetattrr   rP   rX   )Úmonkeypatchrõ   rm   r  r¢   r   r#   r  r$   Útest_pickle_generalurl_readÏ  s   
ý

"ór	  c                  C  sœ   t  d¡ 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   ƒ d S 1 sGw   Y  d S )NÚfsspeczmemory://mockfiler‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz     r–   z0test_pickle_fsspec_roundtrip.<locals>.<listcomp>rŽ   r—   )rK   Úimportorskipr   r‡   r   r™   rš   r›   r   rœ   r�   rž   r    r   rP   rX   )rõ   r¢   r   r#   r#   r$   Útest_pickle_fsspec_roundtripû  s   

ý

"÷r  c                   @  s   e Zd Zddd„ZdS )ÚMyTzrt   rÖ   c                 C  s   d S rù   r#   rú   r#   r#   r$   rø   
  rü   zMyTz.__init__Nr  )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 )Nr�   r   r)   )r   r�   r  r   Úround_trip_picklerR   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 s<w   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
    r‹   rŒ   r�   r�   r�   c                 S  r’   r“   r#   r”   r#   r#   r$   rz      r–   z9test_pickle_binary_object_compression.<locals>.<listcomp>rŽ   r—   r°   Nr   )r¬   r¯   r²   )r   r™   rš   r›   r   rœ   r�   rž   r   r‡   r    r   Ú
read_bytesrò   ÚBytesIOrp   Úgetvaluer   rP   rX   )r±   r¢   rk   Ú	referenceÚbufferÚ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  rX   )rG   Ú	unpickledr#   r#   r$   Ú_test_roundtrip=  ó   
zDtest_pickle_dataframe_with_multilevel_index.<locals>._test_roundtrip)ÚT)Ú/multiindex_year_month_day_dataframe_random_dataÚ multiindex_dataframe_random_dataÚymdrG   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s"J ‚d S )Nz1/1/2011z1/1/2012rD   )rS   r*   )r   r   r™   ÚrandomÚdefault_rngÚstandard_normalÚlenr   r  rB   rV   )Úprngr>   Ú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é
   r�   )r&  )r   r  r   r™   rš   Úfloat64r&  )r&  r  r#   r#   r$   Útest_pickle_preserve_nameO  s   r*  c                 C  ó   t  | ¡}t  || ¡ d S rù   ©r   r  rR   )Údatetime_seriesÚunp_tsr#   r#   r$   Útest_pickle_datetimesW  r  r/  c                 C  r+  rù   r,  )Ústring_seriesÚ
unp_seriesr#   r#   r$   Útest_pickle_strings\  r  r2  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s(J ‚t 
|dg | ¡ d S )NÚabcÚcategoryr   r)   )r)   T)r   rœ   ÚastypeÚilocr   r  Ú_mgrÚblocksr7   r:   rR   )Úserr]   r#   r#   r$   Ú test_pickle_preserves_block_ndima  s
   
r:  rd   c                 C  s>   t tdƒƒ}t t|j| |d�ttj|d�¡}t ||¡ d S )Ni † )rd   r±   r°   )	r   rž   r   rŸ   r   r    r   rP   rX   )rd   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 w   Y  tg g d�}t ||¡ d S )Nr&   rZ   z1.2.4zempty_frame_v1_2_4-GH#42345.pklro   )rB   r˜   )	r   rM   rN   rf   rg   rq   r   r   rX   )rY   rk   Úfdr¢   r    r#   r#   r$   Ú#test_pickle_frame_v124_unpickle_130y  s   ûÿr=  c                  C  s\   t dg d¢iƒ} d}tjt|d�� t ¡ }|  |d¡ W d   ƒ d S 1 s'w   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Ù   Úinfer)r   r   Úassert_produces_warningÚFutureWarningrò   r  r    )r¢   rÉ   r  r#   r#   r$   Ú test_pickle_pos_args_deprecation‰  s   ÿ"þrA  )r&   rs   rt   ru   )`Ú__doc__Ú
__future__r   r   r®   ÚdatetimeÚ	functoolsr   r¬   rò   r½   Úpathlibr   rg   r¶   r¿   Útypingr   r¨   r¹   Únumpyr™   rK   Úpandas.compatr   r   Úpandas.compat._optionalr	   Úpandas.compat.compressorsr
   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   r   r   Úpandas._testingÚ_testingr   Ú-pandas.tests.io.generate_legacy_storage_filesr   Úpandas.io.commonÚcommonrç   Úpandas.tseries.offsetsr   r   r%   ré   rê   r6   r3   ÚPickleBufferÚcastrš   r›   r<   r^   rm   rr   r{   Úparamr    ÚHIGHEST_PROTOCOLr‰   r£   r¦   Úfixturerª   r«   rë   r�   Ú
MultiIndexró   rô   r	  r  Útzinfor  r  r  r  r%  r*  r/  r2  Úskip_array_manager_invalid_testr:  ÚDEFAULT_PROTOCOLr;  r=  rA  r#   r#   r#   r$   Ú<module>   sà    	$õþ
2
	þþøþ

 þûþþþ
ÿ
)	ÿ



