
    o[weF                        d 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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" ddl#m$Z% dd
l&m'Z' ddl(mc m)Z* ddl+m,Z,m-Z- ej.        d             Z/d Z0ej1        2                    ddd e3d           e4d           ej5        d           edg d           e4d          6                    dd           e4d          6                    dd          ddd          ej7        d          8                    dd           ej7        d          8                    dd           ej7        d          8                    dd          dddddf         g          d             Z9d Z:d Z;d Z<ej1        2                    d ej=        e;d !           ej=        ej>        d"!           ej=         ej        ej>        ej?        #          d$!           ej=         ej        ej>        d%#          d&!           ej=         ej        ej>        d'#          d(!          g          ej1        2                    d)ej>        e;g          d*                         Z@d+ ZAd, ZBej.        d-             ZC G d. d/          ZD G d0 d1          ZEej1        2                    d2d3gd4 e g d5          fd6ejF        G                    g d5g d7g          fg          d8             ZHd9 ZIej1        2                    d:g d;          d<             ZJd= ZK G d> d?ejL                  ZMd@ ZNdA ZOdB ZPdC ZQej1        2                    dDdEdFdD ej        dGdHdH          dIg          dJ             ZRdK ZSdL ZTejU        dM             ZVej1        2                    dNejW        ej?        g          dO             ZXdP ZYdS )Qa<  
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.
    )arrayN)partial)Path)get_lzma_fileis_platform_little_endian)import_optional_dependency)flatten_buffer)IndexSeriesperiod_rangecreate_pickle_data)DayMonthEndc                      t                      S Nr        ;lib/python3.11/site-packages/pandas/tests/io/test_pickle.pycurrent_pickle_datar   7   s     r   c                 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       r   compare_elementr)   @   s    (E"" 
h///
~~e 	%
)))))			rvRV######X%%%%%%R!63!6!6!68NOO

68$$$$$r   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@   V   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)daysrD   )nanoseconds)rE   rF   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_equalrG   freq	normalizer   	Timedeltar   r   r   freqstrshiftassert_frame_equalr)   )
datapathlegacy_pickler*   r'   dvdtr%   r&   rX   ress
             r   test_picklesrc   s   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_picklerrr      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   )rk   seekrl   load)rp   rq   s     r   python_unpicklerrx      s    	dD		 R



{2                 s   )AAApickle_writerpython)idpandas_proto_defaultrh   pandas_proto_highestr1   pandas_proto_4   pandas_proto_5writerc           	         | }|                                 D ]K\  }}|                                 D ]/\  }}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            n# 1 swxY w Y   1Md S )Nrf   moder   ru   )	rV   r   ensure_cleanr!   rU   r)   rx   rk   rv   )r   ry   r   r*   r'   r`   ra   r&   rp   r%   handles              r   test_round_trip_currentr      s$   $ D::<< 7 7RHHJJ 	7 	7LB"" 7dh--- --#666)$//#666 $T*** #fF8T***KKNNN# # # # # # # # # # # # # # # $T*** #f^F33FKKNNN# # # # # # # # # # # # # # #  #666%7 7 7 7 7 7 7 7 7 7 7 7 7 7 7	77 7s[   
A#E-"C	ECE"C#E7*D-	!E-D11E4D15EEEc                      t          j                    } t          j        | j        t          j                  }t          j        | |           d S r   )r   makeDataFrameround_trip_pathlib	to_pickler!   rU   r]   dfr%   s     r   test_pickle_path_pathlibr      s?    				B"2<@@F"f%%%%%r   c                      t          j                    } t          j        | j        t          j                  }t          j        | |           d S r   )r   r   round_trip_localpathr   r!   rU   r]   r   s     r   test_pickle_path_localpathr      s?    				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tarru   r   xzzstd	zstandardrf   zUnrecognized compression type: )r   r   )shutilcopyfiler   rk   r   BZ2FilezipfileZipFileZIP_DEFLATEDwriteosrp   basenametarfile
gettarinfoaddfiler   r   
ValueErrorread)	selfsrc_path	dest_pathr   frq   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           	      t   |}|dz   }|dz   }t          j        |          5 }t          j        |          5 }t          j                    }|                    ||           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   rf   )r   r   r   r   decompress_filerk   r   r   r!   rU   r]   )r   r   r   basepath1path2p1p2r   r   rq   df2s               r   test_write_explicitz#TestCompression.test_write_explicit  s   }$v_U## 	+r2?5+A+A 	+R!##B LLL555 #BK@@@ 'A"d^^ 'rHHQVVXX&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 .666C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s}   D-AD7C(B<	0C<C  CC CDCDC.D	D-D	D-D	D--D14D1r   ) Nonebad7zc                    t          j        t          d          5  t          j        |          5 }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 )NzUnrecognized compression type)matchr   )rP   raisesr   r   r   r   r   )r   r   r   rp   r   s        r   test_write_explicit_badz'TestCompression.test_write_explicit_bad&  s   ]:-LMMM 	< 	<11 <T%''T{;;;< < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s4   B +A(B (A,	,B /A,	0B  BBc           	         |}||z   }|dz   }| j                             |                                          }t          j        |          5 }t          j        |          5 }t          j                    }	|	                    |           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   rf   )_extension_to_compressiongetlowerr   r   r   r   r   rk   r   r   r!   rU   r]   )r   compression_extr   r   r   r   r   r   r   r   r   rq   r   s                r   test_write_inferz TestCompression.test_write_infer-  s=   &v4889N9N9P9PQQ_U## 	+r2?5+A+A 	+R!##B LL #BK@@@ 'A"d^^ 'rHHQVVXX&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 .666C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s~   E"?D?!C=2(C&	C=&C**C=-C*.C=1D?=DD?D.D?3E?E	EE	EEEc                    |}|dz   }|dz   }t          j        |          5 }t          j        |          5 }t          j                    }|                    |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   r   r!   rU   r]   )
r   r   r   r   r   r   r   r   r   r   s
             r   test_read_explicitz"TestCompression.test_read_explicitC  sX   v}$_U## 	+r2?5+A+A 	+R!##B LLL... r2;??? .===C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s5   CA.B0$C0B4	4C7B4	8CCCc                    |}|dz   }||z   }| j                             |                                          }t          j        |          5 }t          j        |          5 }t          j                    }	|	                    |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   r   r   r   r!   rU   r]   )r   r   r   r   r   r   r   r   r   r   r   s              r   test_read_inferzTestCompression.test_read_inferU  su   v&4889N9N9P9PQQ_U## 	+r2?5+A+A 	+R!##B LLL... r2;??? .$$C!"c***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s7   C2"A,CC2C	C2!C	"C22C69C6N)__name__
__module____qualname__icomextension_to_compressionr   r   r   rP   markparametrizer   r   r   r   r   r   r   r   r      s         $ =' ' '<+ + +* [],E,E,EFF< < GF<+ + +,+ + +$+ + + + +r   r   c                   Z    e Zd Zej                            dg d          d             ZdS )TestProtocolri   )rg   r   r,   r-   c                    t          j        |          5 }t          j                    }|                    ||           t	          j        |          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nrh   )r   r   r   r   r!   rU   r]   )r   ri   r   rp   r   r   s         r   	test_readzTestProtocol.test_reado  s    __-- 	+!##BLLL111.&&C!"c***		+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   AA66A:=A:N)r   r   r   rP   r   r   r   r   r   r   r   r   n  sD        [Z77+ + 87+ + +r   r   pickle_fileexcolsztest_py27.pkl)abcztest_mi_py27.pkl)r6   r/   r2   c                 ~     | ddd|          }t          j        |          }t          j        |j        |           d S )Nior*   rl   )r!   rU   r   r   columns)r^   r   r   rp   r   s        r   test_unicode_decode_errorr   x  sE     8D&(K88D			B "*f-----r   c                     t          j                    5 } t          j                    }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 )Nrf   ru   )r   r   r   rk   r   r!   rU   r]   )rp   r   rq   r%   s       r   test_pickle_buffer_roundtripr     sw   			 *d$ 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	$ 	(^B''F	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(
b&)))* * * * * * * * * * * * * * * * * *sX   $CACA	C!A	"C5B
CB	CB	CC
Cmockurl)zhttp://url.comzftp://test.comzhttp://gzip.comc                 J   d } G d d          t          j                    5 fd}t          j                    } ||           |                     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 re   rj   rn   s      r   rr   z3test_pickle_generalurl_read.<locals>.python_pickler  s    $ 	.KR"----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.rs   c                   .    e Zd ZddZd Zd Zd Zd ZdS )	5test_pickle_generalurl_read.<locals>.MockReadResponsereturnNc                 `    t          |d          | _        d|v rddi| _        d S ddi| _        d S )Nru   r   zContent-Encodingr   )rk   fileheaders)r   rp   s     r   __init__z>test_pickle_generalurl_read.<locals>.MockReadResponse.__init__  s<    T4((DI~~ 2F; 2B7r   c                     | S r   r   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   r   N)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   rp   s     r   mock_urlopen_readz6test_pickle_generalurl_read.<locals>.mock_urlopen_read  s    ##D)))r   zurllib.request.urlopen)r   r   r   setattrr!   rU   r]   )monkeypatchr   rr   r  r   r%   r   rp   s         @@r   test_pickle_generalurl_readr    s&   . . .% % % % % % % %( 
		 	*d	* 	* 	* 	* 	* 	* r4   46GHHH((
b&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A%BBBc                  ,   t          j        d           t          j                    5  d} t          j                    }|                    |            t          j        |           }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nfsspeczmemory://mockfile)	rP   importorskipr   r   r   r   r!   rU   r]   )r   r   r%   s      r   test_pickle_fsspec_roundtripr
    s    
!!!			 * *%
W((
b&)))* * * * * * * * * * * * * * * * * *s   AB		BBc                       e Zd ZddZdS )MyTzr   Nc                     d S r   r   r   s    r   r   zMyTz.__init__  s    r   r   )r   r   r   r   r   r   r   r  r    s(             r   r  c                      t          t                    t                      f} t          j        |           }t          j        |d         | d                    t          |d         t                    sJ d S )N)dtyper   r,   )r   objectr  r   round_trip_picklerW   r   )r&   r%   s     r   test_read_pickle_with_subclassr    sf    F###TVV+H!(++F6!9hqk222fQi&&&&&&&r   c                 ,   t          j                    }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   Nr   )r   r   r   )r   r   r   r   r   
read_bytesr   BytesIOrv   getvaluer!   rU   r]   )r   r   rp   	referencebufferread_dfs         r   %test_pickle_binary_object_compressionr    s9    
			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   9A,,A03A0c                     | }|}d } ||            ||j                     ||            ||j                    d S )Nc                 X    t          j        |           }t          j        | |           d S r   )r   r  r]   )rL   	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ymdrL   r  s        r   +test_pickle_dataframe_with_multilevel_indexr#    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/2012rI   )rX   r-   )r   r   nprandomdefault_rngstandard_normallenr   r  rG   rX   )prngrC   new_tss      r   "test_pickle_timeseries_periodindexr,    su    
JS999D		%%a((88TCCT	J	JB!"%%F<######r   namei	  g     H@i     )r,   r-   c                 n    t          j        t          j        |                     }|j        | k    sJ d S )N)r-  )r   r  makeTimeSeriesr-  )r-  r  s     r   test_pickle_preserve_namer1    s;     $R%6D%A%A%ABBI>T!!!!!!r   c                 X    t          j        |           }t          j        ||            d S r   r   r  rW   )datetime_seriesunp_tss     r   test_pickle_datetimesr6    s+    !/22F6?33333r   c                 X    t          j        |           }t          j        ||            d S r   r3  )string_series
unp_seriess     r   test_pickle_stringsr:  !  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   listastypeilocr   r  _mgrblocksr;   r>   rW   )serrb   s     r    test_pickle_preserves_block_ndimrD  &  s     e


$
$Z
0
0
5qc
:C

s
#
#C8?1"a''''8?1#t++++ 3v;,,,,,r   ri   c                     t          j        t          d                    }t          j        t          |j        | |          t          t           j        |                    }t          j        ||           d S )Ni )ri   r   r   )	r!   	DataFrameranger   r   r   r   rU   r]   )ri   r   r   r%   s       r   %test_pickle_big_dataframe_compressionrH  3  sl     
eFmm	$	$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          j        g g           }t          j	        ||           d S )Nr*   r_   z1.2.4zempty_frame_v1_2_4-GH#42345.pklru   )rG   r   )
r   rR   rS   rk   rl   rw   r!   rF  r   r]   )r^   rp   fdr   r&   s        r   #test_pickle_frame_v124_unpickle_130rK  >  s    8X) D 
dD		 R[__               |"b111H"h'''''s   AAA)Z__doc__r   r   datetime	functoolsr   r   r   r   pathlibr   rl   r   r   r   r   numpyr%  rP   pandas.compatr   r   pandas.compat._optionalr   pandas.compat.compressorsr	   pandas.util._test_decoratorsutil_test_decoratorstdpandasr!   r
   r   r   pandas._testing_testingr   -pandas.tests.io.generate_legacy_storage_filesr   pandas.io.commoncommonr   pandas.tseries.offsetsr   r   fixturer   r)   r   r   r:   r7   PickleBuffercastarangereshaper@   rc   rr   rx   paramr   HIGHEST_PROTOCOLr   r   r   r   r   r   
MultiIndexfrom_arraysr   r   r  r
  tzinfor  r  r  r#  r,  r1  r6  r:  skip_array_manager_invalid_testrD  DEFAULT_PROTOCOLrH  rK  r   r   r   <module>rk     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7 7 CB! "72& & && & & ( ( (v+ v+ v+ v+ v+ v+ v+ v+|+ + + + + + + + H	%%001M%%&HII	
	 	. .	 	.* * * FFF "* "* "*J* * *    8?   
' ' '' ' '6  "$ $ $ 
S%!2!24R!@!@&I " " "
4 4 4
6 6 6
 #	- 	- $#	- f&=v?V%WXX& & YX&( ( ( ( (r   