
    bMhQ                       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c 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	c m.Z/ ddl0m1Z1m2Z2 d Z3ej4        5                    ddd e6d           e7d           ej8        d           edg d           e7d          9                    dd           e7d          9                    dd          ddd          ej:        d          ;                    dd           ej:        d          ;                    dd           ej:        d          ;                    dd          dddddf         g          d             Z<d Z=d Z>d Z?dZd#Z@ej4        5                    d$ ejA        e>d%&           ejA        e#jB        d'&           ejA         ej        e#jB        ejC        (          d)&           ejA         ej        e#jB        d*(          d+&           ejA         ej        e#jB        d,(          d-&          g          ej4        5                    d.e#jB        e>g          ej4        5                    d/ e@ e,                                d0                                     ZDd1 ZEd2 ZFejG        d3             ZH G d4 d5          ZI G d6 d7          ZJej4        5                    d8d9gd: e%g d;eK<          fd= e#jL         e%g d;eK<           e%g d>eK<          g ej        g d?           ej        g d?          g          fg          d@             ZMdA ZNej4        5                    dBg dC          dD             ZOdE ZP G dF dGejQ                  ZRdH ZSdI ZTdJ ZUdK ZVej4        5                    dLdMdNdL ej        dOdPdP          dQg          dR             ZWdS ZXdT ZYe!jZ        dU             Z[ej4        5                    dVej\        ejC        g          dW             Z]dX Z^dY Z_dS )[a<  
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                v   t          |t                    rt          j        ||            d S |                    d          rt          j        | |           d S |dk    r*|t          j        u r| t          j        u sJ d S | |k    sJ 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
comparators       [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/io/test_pickle.pycompare_elementr&   >   s    (E"" 
h///
~~e 	%
)))))			rvRV######X%%%%%%R!63!6!6!68NOO

68$$$$$    datas   123s   123456I         B)r-   r,   r,      )r-      C)orderFc                Z   t          |           }t          |                               d          }||k    sJ t          | t          t
          f          r|| u sJ d S t          |t                    r6|j        dk    sJ |j        dk    sJ |j        sJ |j	        |j
        fk    sJ d S d S )NAr+   r.   )r   
memoryviewtobytesr   bytes	bytearrayndimformat
contiguousshapenbytes)r(   r!   r"   s      r%   test_flatten_bufferr?   T   s    " D!!F$'',,HX$	*++ 0~~~~~~	FJ	'	' 0{a}####    |/////	0 0 0/r'   c           	        t                      st          j        d           t          t                    j                            d          D ]} | |          }t          j        |          }|	                                D ]e\  }}|	                                D ]I\  }}||         |         }|dk    r;|dk    r4t          j        ||           |j        j        |j        j        k    sJ |j        j        j        rJ t          j        |dk    |dk               |j        j        }|t          d          z   t          d          k    sJ |t          j        d          z   }	t#          |	t          j                  sJ |	t          j        dd	          k    sJ |t          j        d
          z   }	t#          |	t          j                  sJ |	t          j        dd          k    sJ V|dk    r|dk    rt          j        ||           t#          |j        t&                    sJ |j        t'                      k    sJ |j        dk    sJ t          j        |                    d          |                    d                     |dk    r|dv rt          j        ||           |dk    r|dv rt          j        ||           8t/          |||           Kgd S )Nz"known failure on non-little endianzdata/legacy_pickle/*/*.p*kl*seriestsr   r+   r,   )hours)daysrC   )nanoseconds)rD   rE   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_equalrF   freq	normalizer   	Timedeltar   r   r   freqstrshiftassert_frame_equalr&   )
datapathlegacy_pickler(   r#   dvdtr!   r"   rW   ress
             r%   test_picklesrb   q   s   $&& :8999 h.334RSS *; *; //~m,,zz|| %	; %	;GC hhjj $; $;
F9R=(??rTzz*68<<<!<,0CCCCC%|0::::*6A:x!|DDD "<,D#a&&=CFF2222A!6!6!66C%c2<88888",AQ"?"?"?????!!<!<!<<C%c2<88888",A1"E"E"EEEEEEG^^h)&(;;;%fk8<<<<<!;(**4444!>S0000)&,,q//8>>!;L;LMMMMH__/?)?)?*68<<<<G^^ / ) )
 )&(;;;;#FHc::::I$;%	;*; *;r'   c                    t          |d          5 }t          j        | |d           d d d            d S # 1 swxY w Y   d S Nwbprotocolopenpickledumpobjpathfhs      r%   python_picklerrq      s    	dD		 *RCb))))* * * * * * * * * * * * * * * * * *   6::c                    t          | d          5 }|                    d           t          j        |          cd d d            S # 1 swxY w Y   d S )Nrbr   )rj   seekrk   load)ro   rp   s     r%   python_unpicklerrw      s    	dD		 R



{2                 s   )AAAdictreturnlist[tuple[str, Any]]c                >    d |                                  D             S )zFlatten create_pickle_datac                J    g | ] \  }}|                                 D ]}||f!S  )values).0r#   examplesexamples       r%   
<listcomp>zflatten.<locals>.<listcomp>   sQ       C((   
g   r'   )rU   )r(   s    r%   flattenr      s+     !ZZ\\   r'   pickle_writerpython)idpandas_proto_defaultrg   pandas_proto_highestr0   pandas_proto_4   pandas_proto_5writerztyp, expectedc                Z   t          j                    5 } |||           t          j        |          }t	          |||            t          |          }t	          |||            t          |d          5 } |||           |                    d           d d d            n# 1 swxY w Y   t          |d          5 }t          j        |          }|                    d           d d d            n# 1 swxY w Y   t	          |||            d d d            d S # 1 swxY w Y   d S )Nre   moder   rt   )r   ensure_cleanr   rT   r&   rw   rj   ru   )r#   r"   r   r   ro   r!   handles          r%   test_round_trip_currentr      s   & 
		 /dh%%% %%#...!$''#... $T""" 	fF8T"""KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $T""" 	f^F++FKKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#...%/ / / / / / / / / / / / / / / / / /sZ   A#D 7"B%D %B)	)D ,B)	-D *C7+D 7C;	;D >C;	?D  D$'D$c            
        t          dt          j        d                              d          z  t	          t          d          t                    t	          d t          d          D             t                              } t          j	        | j
        t          j                  }t          j        | |           d S )	N皙?x      r0   ABCDdtypec                    g | ]}d | S zi-r}   r   is     r%   r   z,test_pickle_path_pathlib.<locals>.<listcomp>       111!X!XX111r'   r   columnsrF   )r   nparangereshaper   listobjectranger   round_trip_pathlib	to_pickler   rT   r\   dfr!   s     r%   test_pickle_path_pathlibr      s    	binn$$W---d6ll&11111uRyy111@@@
 
 
B
 "2<@@F"f%%%%%r'   c            
        t          dt          j        d                              d          z  t	          t          d          t                    t	          d t          d          D             t                              } t          j	        | j
        t          j                  }t          j        | |           d S )	Nr   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z.test_pickle_path_localpath.<locals>.<listcomp>   r   r'   r   r   )r   r   r   r   r   r   r   r   r   round_trip_localpathr   r   rT   r\   r   s     r%   test_pickle_path_localpathr      s    	binn$$W---d6ll&11111uRyy111@@@
 
 
B
 $R\2>BBF"f%%%%%r'   c                 0    dt          j                     dS )N__z	__.pickle)uuiduuid4r}   r'   r%   get_random_pathr      s    '
''''r'   c                      e Zd Zej        Zd Zd Zej	        
                    dg d          d             Zd Zd Zd Zd	S )
TestCompressionc                z   |t          j        ||           d S |dk    rt          j        |d          }n|dk    rt	          j        |d          }nw|dk    rnt          j        |dt          j                  5 }|	                    |t          j                            |                     d d d            n# 1 swxY w Y   n|dk    rt          |d          5 }t          j        |d          5 }|                    |t          j                            |                    }|                    ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   n]|d	k    r t!                      |d          }n>|d
k    r$t#          d                              |d          }nd| }t%          |          |dvrlt          |d          5 }|5  |	                    |                                           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 S )Ngzipwbz2zipcompressiontarrt   r   xzzstd	zstandardre   zUnrecognized compression type: )r   r   )shutilcopyfiler   rj   r   BZ2FilezipfileZipFileZIP_DEFLATEDwriteosro   basenametarfile
gettarinfoaddfiler   r
   
ValueErrorread)	selfsrc_path	dest_pathr   frp   r   tarinfomsgs	            r%   compress_filezTestCompression.compress_file   sd   OHi000F&  	)S))AAE!!Is++AAE!!CW=QRRR >VW"'"2"28"<"<===> > > > > > > > > > > > > > >E!!h%% -\)#666 -#!nnXrw7G7G7Q7QRRGKK,,,- - - - - - - - - - - - - - -- - - - - - - - - - - - - - - D  	3//AAF""*;77<<YMMAAAKAACS//!n,,h%% ' ' 'GGBGGII&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' -,s   ;4B;;B?B?E"5A
E?E"E	E"E	E""E&)E&H."(H
H.H	H.H	H..H25H2c                Z   |}|dz   }|dz   }t          j        |          5 }t          j        |          5 }t          dt          j        d                              d          z  t          t          d          t                    t          d t          d	          D             t                    
          }|
                    ||           t          j        ||          5 }	t          |d          5 }
|
                    |	                                           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        |d           }t          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 )N.compressed.rawr   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z7TestCompression.test_write_explicit.<locals>.<listcomp>'      999!X!XX999r'   r   r   r   re   )r   r   r   r   r   r   r   r   r   r   r   decompress_filerj   r   r   r   rT   r\   )r   r   r   basepath1path2p1p2r   r   rp   df2s               r%   test_write_explicitz#TestCompression.test_write_explicit  s~   }$v_U## 	+r2?5+A+A 	+Rbinn,,W555d6ll&99999uRyy999HHH  B LLL555 #BK@@@ 'A"d^^ 'rHHQVVXX&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 .666C!"c***%	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s}   F B4F*E;(D/	#E/D33E6D37E:FE

FE
.F<F F	F F	F  F$'F$r   ) Nonebad7zc                    t          j        t          d          5  t          j        |          5 }t          dt          j        d                              d          z  t          t          d          t                    t          d t          d	          D             t                    
          }|                    ||           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 )NzUnrecognized compression typematchr   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z;TestCompression.test_write_explicit_bad.<locals>.<listcomp>>  s     = = =aa = = =r'   r   r   r   )rO   raisesr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   ro   r   s        r%   test_write_explicit_badz'TestCompression.test_write_explicit_bad7  sc   ]:-LMMM 	< 	<11 <T")C..00999!$v,,f=== = =599 = = =VLLL  
 T{;;;< < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s5   C3BCC3C	C3"C	#C33C7:C7c                   |}||z   }|dz   }| j                             |                                          }t          j        |          5 }t          j        |          5 }t          dt          j        d                              d          z  t          t          d          t                    t          d t          d          D             t                    	          }	|	                    |           t          j        ||
          5 }
t          |d          5 }|                    |
                                           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t%          j        |d 
          }t          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 )Nr   r   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z4TestCompression.test_write_infer.<locals>.<listcomp>L  r   r'   r   r   r   re   )_extension_to_compressiongetlowerr   r   r   r   r   r   r   r   r   r   r   r   rj   r   r   r   rT   r\   )r   compression_extr   r   r   r   r   r   r   r   r   rp   r   s                r%   test_write_inferz TestCompression.test_write_inferB  s   &v4889N9N9P9PQQ_U## 	+r2?5+A+A 	+Rbinn,,W555d6ll&99999uRyy999HHH  B LL #BK@@@ 'A"d^^ 'rHHQVVXX&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 .666C!"c***%	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   G
"B2F2E0%(E	E0EE0 E!E0$F20E44F27E48.F2&G
2F6	6G
9F6	:G

GGc                   |}|dz   }|dz   }t          j        |          5 }t          j        |          5 }t          dt          j        d                              d          z  t          t          d          t                    t          d t          d	          D             t                    
          }|
                    |d            |                     |||           t          j        ||          }	t          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 )Nr   r   r   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z6TestCompression.test_read_explicit.<locals>.<listcomp>e  r   r'   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   rT   r\   )
r   r   r   r   r   r   r   r   r   r   s
             r%   test_read_explicitz"TestCompression.test_read_explicit\  s   v}$_U## 	+r2?5+A+A 	+Rbinn,,W555d6ll&99999uRyy999HHH  B LLL... r2;??? .===C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s5   D;C!D#D;#D'	'D;*D'	+D;;D?D?c                   |}|dz   }||z   }| j                             |                                          }t          j        |          5 }t          j        |          5 }t          dt          j        d                              d          z  t          t          d          t                    t          d t          d          D             t                    	          }	|	                    |d 
           |                     |||
           t          j        |          }
t          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 )Nr   r   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   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   r   r   rT   r\   )r   r   r   r   r   r   r   r   r   r   r   s              r%   test_read_inferzTestCompression.test_read_inferr  s   v&4889N9N9P9PQQ_U## 	+r2?5+A+A 	+Rbinn,,W555d6ll&99999uRyy999HHH  B LLL... r2;??? .$$C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s7   E%"CEE%E	E%E	E%%E),E)N)__name__
__module____qualname__icomextension_to_compressionr   r   r   rO   markparametrizer   r   r   r   r}   r'   r%   r   r      s         $ =' ' '<+ + +2 [],E,E,EFF< < GF<+ + +4+ + +,+ + + + +r'   r   c                  Z    e Zd Zej                            dg d          d             ZdS )TestProtocolrh   )rf   r   r+   r,   c                   t          j        |          5 }t          dt          j        d                              d          z  t          t          d          t                    t          d t          d          D             t                              }|
                    ||	           t          j        |          }t          j        ||           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z*TestProtocol.test_read.<locals>.<listcomp>  r   r'   r   r   rg   )r   r   r   r   r   r   r   r   r   r   r   r   rT   r\   )r   rh   r   ro   r   r   s         r%   	test_readzTestProtocol.test_read  s   __-- 	+binn,,W555d6ll&99999uRyy999HHH  B
 LLL111.&&C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   CC))C-0C-N)r   r   r   rO   r  r  r  r}   r'   r%   r  r    sD        [Z77	+ 	+ 87	+ 	+ 	+r'   r  pickle_fileexcolsztest_py27.pkl)abcr   ztest_mi_py27.pkl)r5   r.   r1   )r   r+   r,   c                ~     | ddd|          }t          j        |          }t          j        |j        |           d S )Nior(   rk   )r   rT   r   r   r   )r]   r  r	  ro   r   s        r%   test_unicode_decode_errorr    sE    & 8D&(K88D			B "*f-----r'   c                    t          j                    5 } t          dt          j        d                              d          z  t          t          d          t                    t          d t          d          D             t                              }t          | d	          5 }|                    |           d d d            n# 1 swxY w Y   t          | d
          5 }t          j        |          }d d d            n# 1 swxY w Y   t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z0test_pickle_buffer_roundtrip.<locals>.<listcomp>      555aa555r'   r   r   re   rt   )r   r   r   r   r   r   r   r   r   r   rj   r   r   rT   r\   )ro   r   rp   r!   s       r%   test_pickle_buffer_roundtripr    s   			 
*d")C..((111$v,,f55555599555VDDD
 
 

 $ 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	$ 	(^B''F	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(
b&)))
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
*sZ   BD6+CD6C	D6C	D6(D	=D6	D	D6D	D66D:=D:mockurl)zhttp://url.comzftp://test.comzhttp://gzip.comc                0   d } G d d          t          j                    5 fd}t          dt          j        d                              d          z  t          t          d          t          	          t          d
 t          d          D             t          	                    } ||           | 
                    d|           t          j        |          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nc                    t          |d          5 }t          j        | |d           d d d            d S # 1 swxY w Y   d S rd   ri   rm   s      r%   rq   z3test_pickle_generalurl_read.<locals>.python_pickler  s    $ 	.KR"----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.rr   c                  .    e Zd Zd	dZd Zd Zd Zd ZdS )
5test_pickle_generalurl_read.<locals>.MockReadResponsery   r   c                `    t          |d          | _        d|v rddi| _        d S ddi| _        d S )Nrt   r   zContent-Encodingr   )rj   fileheaders)r   ro   s     r%   __init__z>test_pickle_generalurl_read.<locals>.MockReadResponse.__init__  s<    T4((DI~~ 2F; 2B7r'   c                    | S Nr}   r   s    r%   	__enter__z?test_pickle_generalurl_read.<locals>.MockReadResponse.__enter__  s    Kr'   c                .    |                                   d S r  )close)r   argss     r%   __exit__z>test_pickle_generalurl_read.<locals>.MockReadResponse.__exit__  s    JJLLLLLr'   c                4    | j                                         S r  )r  r   r  s    r%   r   z:test_pickle_generalurl_read.<locals>.MockReadResponse.read  s    9>>###r'   c                4    | j                                         S r  )r  r"  r  s    r%   r"  z;test_pickle_generalurl_read.<locals>.MockReadResponse.close  s    9??$$$r'   Nry   r   )r   r   r   r  r   r$  r   r"  r}   r'   r%   MockReadResponser    sd        	8 	8 	8 	8	 	 		 	 		$ 	$ 	$	% 	% 	% 	% 	%r'   r(  c                                S r  r}   )r#  kwargsr(  ro   s     r%   mock_urlopen_readz6test_pickle_generalurl_read.<locals>.mock_urlopen_read  s    ##D)))r'   r   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z/test_pickle_generalurl_read.<locals>.<listcomp>  r  r'   r   r   zurllib.request.urlopen)r   r   r   r   r   r   r   r   r   r   setattrr   rT   r\   )monkeypatchr  rq   r+  r   r!   r(  ro   s         @@r%   test_pickle_generalurl_readr/    s   . . .% % % % % % % %( 
		 *d	* 	* 	* 	* 	* 	* ")C..((111$v,,f55555599555VDDD
 
 

 	r4   46GHHH((
b&)))* * * * * * * * * * * * * * * * * *s   CDDDc                    t          j        d           t          j                    5  d} t	          dt          j        d                              d          z  t          t          d          t                    t          d t          d	          D             t                    
          }|                    |            t          j        |           }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nfsspeczmemory://mockfiler   r   r   r   r   c                    g | ]}d | S r   r}   r   s     r%   r   z0test_pickle_fsspec_roundtrip.<locals>.<listcomp>  r  r'   r   r   )rO   importorskipr   r   r   r   r   r   r   r   r   r   r   r   rT   r\   )r  r   r!   s      r%   test_pickle_fsspec_roundtripr4    s-   
!!!			 	* 	*%")C..((111$v,,f55555599555VDDD
 
 

 	W((
b&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   CC<<D D c                      e Zd ZddZdS )MyTzry   r   c                    d S r  r}   r  s    r%   r  zMyTz.__init__
  s    r'   Nr'  )r   r   r   r  r}   r'   r%   r6  r6  	  s(             r'   r6  c                     t          t                    t                      f} t          j        |           }t          j        |d         | d                    t          |d         t                    sJ d S )Nr   r   r+   )r   r   r6  r   round_trip_picklerV   r   )r"   r!   s     r%   test_read_pickle_with_subclassr:    sf    F###TVV+H!(++F6!9hqk222fQi&&&&&&&r'   c           
        t          dt          j        d                              d          z  t	          t          d          t                    t	          d t          d          D             t                              }t          j	                    5 }|
                    || 	           t          |                                          }d
d
d
           n# 1 swxY w Y   t          j                    }|
                    || 	           |                    d           |                                |k    s| dv sJ t#          j        || 	          }|                    d           t          j        ||           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                    g | ]}d | S r   r}   r   s     r%   r   z9test_pickle_binary_object_compression.<locals>.<listcomp>   r   r'   r   r   r   Nr   )r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   
read_bytesr  BytesIOru   getvaluer   rT   r\   )r   r   ro   	referencebufferread_dfs         r%   %test_pickle_binary_object_compressionrC    s    
binn$$W---d6ll&11111uRyy111@@@
 
 
B 
		 ,d
T{333JJ))++	, , , , , , , , , , , , , , ,
 Z\\FLL[L111
KKNNN ??	))[<R-R-R-R-R nV===G
KKNNN"g&&&&&s   9CC#&C#c                    | }|}d } ||            ||j                     ||            ||j                    d S )Nc                X    t          j        |           }t          j        | |           d S r  )r   r9  r\   )rK   	unpickleds     r%   _test_roundtripzDtest_pickle_dataframe_with_multilevel_index.<locals>._test_roundtrip=  s+    (//	
eY/////r'   )T)/multiindex_year_month_day_dataframe_random_data multiindex_dataframe_random_dataymdrK   rG  s        r%   +test_pickle_dataframe_with_multilevel_indexrL  6  si     :C,E0 0 0 OEOEGOCOCEr'   c                    t          ddd          } t          t          j                            d                              t          |                     |           }t          j        |          }|j	        j
        dk    sJ d S )Nz1/1/2011z1/1/2012rH   )rW   r,   )r   r   r   randomdefault_rngstandard_normallenr   r9  rF   rZ   )prngrB   new_tss      r%   "test_pickle_timeseries_periodindexrT  G  su    
JS999D		%%a((88TCCT	J	JB!"%%F<3&&&&&&r'   namei	  g     H@i     )r+   r,   c                    t          j        t          t          j        dt          j                  |                     }|j        | k    sJ d S )N
   r   )rU  )r   r9  r   r   r   float64rU  )rU  rF  s     r%   test_pickle_preserve_namerZ  O  sL     $VBIb
,K,K,KRV%W%W%WXXI>T!!!!!!r'   c                X    t          j        |           }t          j        ||            d S r  r   r9  rV   )datetime_seriesunp_tss     r%   test_pickle_datetimesr_  W  s+    !/22F6?33333r'   c                X    t          j        |           }t          j        ||            d S r  r\  )string_series
unp_seriess     r%   test_pickle_stringsrc  \  s+    %m44J:}55555r'   c                 P   t          t          d                                        d          j        dg         } t	          j        |           }|j        j        d         j        dk    sJ |j        j        d         j	        dk    sJ t	          j
        |dg         |            d S )Nabccategoryr   r+   )r+   T)r   r   astypeilocr   r9  _mgrblocksr:   r=   rV   )serra   s     r%    test_pickle_preserves_block_ndimrl  a  s     e


$
$Z
0
0
5qc
:C

s
#
#C8?1"a''''8?1#t++++ 3v;,,,,,r'   rh   c                    t          t          d                    }t          j        t	          |j        | |          t	          t          j        |                    }t          j        ||           d S )Ni )rh   r   r   )	r   r   r   r   r   r   r   rT   r\   )rh   r   r   r!   s       r%   %test_pickle_big_dataframe_compressionrn  n  sj     
5==	!	!B"x[IIIK888 F "f%%%%%r'   c                    | t          t                    j        dddd          }t          |d          5 }t	          j        |          }d d d            n# 1 swxY w Y   t          g g           }t          j        ||           d S )Nr(   r^   z1.2.4zempty_frame_v1_2_4-GH#42345.pklrt   )rF   r   )	r   rQ   rR   rj   rk   rv   r   r   r\   )r]   ro   fdr   r"   s        r%   #test_pickle_frame_v124_unpickle_130rq  y  s    8X) D 
dD		 R[__               r2...H"h'''''s   AAAc                     t          dg di          } d}t          j        t          |          5  t	          j                    }|                     |d           d d d            d S # 1 swxY 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   rA  s      r%    test_pickle_pos_args_deprecationrv    s    	C#	$	$B	1  
	#M	=	=	= & &
VW%%%& & & & & & & & & & & & & & & & & &s   *A((A,/A,)r(   rx   ry   rz   )`__doc__
__future__r   r   r   datetime	functoolsr   r   r  r   pathlibr   rk   r   r   typingr   r   r   numpyr   rO   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  r9   r6   PickleBuffercastr   r   r?   rb   rq   rw   r   paramr   HIGHEST_PROTOCOLr   r   r   fixturer   r   r  r   
MultiIndexr  r  r/  r4  tzinfor6  r:  rC  rL  rT  rZ  r_  rc  skip_array_manager_invalid_testrl  DEFAULT_PROTOCOLrn  rq  rv  r}   r'   r%   <module>r     s    # " " " " "       



             				 				                              ? > > > > > 4 4 4 4 4 4 ) ) ) ) ) ) ) ) )                      L L L L L L                % % %, 
	&
6F##c999
9""3//
9""3//!4	"fC00	"fC00	"fC00CCaC8  
0 
0!  
0/; /; /;d* * *
      ^111R\&<===IblV5LMMM%	
 	
 	
 	&Y&r|a@@@EUVVVIblQ777	
 	
 	
   BL.#ABB''2D2D2F2F*G*GHH/ / IH CB! $/,& & && & & ( ( (J+ J+ J+ J+ J+ J+ J+ J+d+ + + + + + + + H	%%v>>>?BME///888E///888 )))$$hbhyyy&9&9: 		
  . .!  .* * *& FFF &* &* &*R* * *    8?   
' ' '' ' '>  "' ' ' 
S%!2!24R!@!@&I " " "
4 4 4
6 6 6
 #	- 	- $#	- f&=v?V%WXX& & YX&( ( ( 	& 	& 	& 	& 	&r'   