U
    `»{jN
 ã                   @   sØ   d dl Z d dl m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	Z
d dlZd dlmZmZ d dlm  mZ d dlZd dlmZmZmZmZmZ d dlmZ dd„ Zej d	¡ej d
¡G dd„ dƒƒƒZ dS )é    N)Ú	timedelta)ÚDecimal)ÚStringIO)ÚIS64Úis_platform_windows)Ú	DataFrameÚDatetimeIndexÚSeriesÚ	TimestampÚ	read_jsonc                 C   sD   |dks|dkr|j dd�}|dkr4tt|jƒƒ|_t | |¡ d S )NÚrecordsÚvaluesT©Údrop)Úreset_indexÚrangeÚlenÚcolumnsÚtmÚassert_frame_equal)ÚresultÚexpectedÚorient© r   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/io/json/test_pandas.pyÚassert_json_roundtrip_equal   s
    r   zBignore:an integer is required (got type float)*:DeprecationWarningz6ignore:the 'numpy' keyword is deprecated:FutureWarningc                   @   sÎ  e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdd„ Zej	 
d	d
ddg¡dd„ ƒZej	 
d	ddg¡dd„ ƒZej	 
d	d
dg¡ej	 
dddgddggddgddggddgddggedƒdgedƒdggg¡d d!„ ƒƒZej	 
d	dddg¡d"d#„ ƒZd$d%„ Zej	 
d&d'eg¡ej	 
d(d)d'g¡ej	 
d*d)d'g¡d+d,„ ƒƒƒZej	 
d&d'ejg¡ej	 
d(d)d'g¡ej	 
d*d)d'g¡d-d.„ ƒƒƒZej	 
d&d/ejed0g¡ej	 
d(d)d'g¡ej	 
d*d)d'g¡d1d2„ ƒƒƒZej	 
d(d)d'g¡ej	 
d*d)d'g¡d3d4„ ƒƒZej	 
d(d)d'g¡ej	 
d*d)d'g¡d5d6„ ƒƒZej	 
d(d)d'g¡ej	 
d*d)d'g¡d7d8„ ƒƒZej	 
d(d)d'g¡ej	 
d*d)d'g¡d9d:„ ƒƒZej	 
d;d<d=d> d?g¡d
fd@dAg¡dBdC„ ƒZej	 
d&d)d'g¡ej	 
d(d)d'g¡ej	 
d*d)d'g¡dDdE„ ƒƒƒZej	 
d&d)d'g¡dFdG„ ƒZ ej	 
dHej!ej"g¡ej	 
d&d)d'g¡dIdJ„ ƒƒZ#ej	j$e% dKdL�ej	 
dMdNdOdPdQdRdSg¡dTdU„ ƒƒZ&dVdW„ Z'dXdY„ Z(dZd[„ Z)d\d]„ Z*d^d_„ Z+d`da„ Z,dbdc„ Z-ddde„ Z.dfdg„ Z/dhdi„ Z0ej	 
d*d)d'g¡djdk„ ƒZ1ej	 
d&d'd/g¡ej	 
d*d)d'g¡dldm„ ƒƒZ2ej	 
d*d)d'g¡dndo„ ƒZ3ej	 
d*d)d'g¡dpdq„ ƒZ4ej	 
d&ejeg¡ej	 
d*d)d'g¡drds„ ƒƒZ5dtdu„ Z6dvdw„ Z7dxdy„ Z8ej	 
dzd)e9d{gd|d}�fd'e9d~gƒfg¡dd€„ ƒZ:d�d‚„ Z;dƒd„„ Z<d…d†„ Z=d‡dˆ„ Z>d‰dŠ„ Z?d‹dŒ„ Z@ej	 
d�dŽd�g¡ej	 
d�d)d'g¡ej	 
d‘eAjBeAjAeg¡d’d“„ ƒƒƒZCej	 
d”d•d–d—d˜d™dšd›g¡dœd�„ ƒZDej	 
dždŸd d¡d¢d£g¡d¤d¥„ ƒZEd¦d§„ ZFej	 
dždŸd d¡d¢d£g¡d¨d©„ ƒZGdªd«„ ZHej	 
d¬d­d®d¯d°g¡d±d²„ ƒZId³d´„ ZJdµd¶„ ZKd·d¸„ ZLd¹dº„ ZMej	jNeOjNd»d)d¼�ej	 
d½d¾ePjQd¿dÀ�gdÁd|gdÂePjQd¿dÀ�gg¡dÃdÄ„ ƒƒƒZRdÅdÆ„ ZSdÇdÈ„ ZTej	 
d�d)d'g¡ej	 
d�d�dŽg¡ej	 
dÉePjUeVg¡dÊdË„ ƒƒƒZWdÌdÍ„ ZXdÎdÏ„ ZYdÐdÑ„ ZZdÒdÓ„ Z[dÔdÕ„ Z\dÖd×„ Z]dØdÙ„ Z^ej	 
dÚedÛƒedÜdÝdÀ�edÞƒg¡dßdà„ ƒZ_dádâ„ Z`ej	 
dãePjadädådæ�ePjadçdådÝdè�ePjadédådæ�g¡dêdë„ ƒZbdìdí„ Zcdîdï„ Zdej	jeefjgdðdñ„ ƒƒZhdòdó„ Zidôdõ„ Zjej	 
döekjld ekjldå  g¡d÷dø„ ƒZmej	 
dödùdúg¡dûdü„ ƒZndýdþ„ Zodÿ�d „ Zpej	jq�der�d��d�d„ ƒZs�d�d„ Ztej	 
dd/ddåg�d�dgddg�d	�d
g�d�dgg¡ej	 
dddg�d	�d
g�d�dgg¡�d�d„ ƒƒZu�d�d„ Zvej	 
d	d
dddg¡�d�d„ ƒZwej	 
d&d)ee�dœg¡�d�d„ ƒZx�d�d„ Zyej	 
�dezddåg�d�dggddg�d�ddgddåg�d�dgg�dœfezddåg�d�dggddg�d� {�d¡ddgddåg�d�dgg�dœfezddåg�d�dggddgddgddgg�d�ddgddåg�d�dgg�dœfe9ddådg�d�d ��dddådg�d!œfe9ddådg�d�d � {�d¡�dddådg�d!œfe9ddåg�dddgddgg�d"��dddåg�d!œfg¡�d#�d$„ ƒZ|ej	 
dezddåg�d�dggddg�d�ezddåg�d�dggddg�d� {�d¡ezddåg�d�dggddgddgddgg�d�e9ddådg�d�d �e9ddådg�d�d � {�d¡e9ddåg�dddgddgg�d"�g¡�d%�d&„ ƒZ}ej	 
d	ddddg¡�d'�d(„ ƒZ~ej	 
d	d
�d)g¡ej	 
dd)d'g¡�d*�d+„ ƒƒZ�d,�d-„ Z€ej	 
�d.�d/�d0�d1�d2g¡�d3�d4„ ƒZ�ej	 
�d5�d6�d7�d8�d9g¡�d:�d;„ ƒZ‚ej	 
�d<�d=�d>g¡�d?�d@„ ƒZƒej	 
�dA�dB�dCej„d
�d6ej	jq�dDdL��dE�ej„�d)�d6ej	jq�dDdL��dE�g¡�dF�dG„ ƒZ…ej	 
�dHddå�dg¡�dI�dJ„ ƒZ†ej	 
�dA�dK�dL�dM�dN�dO�dPg¡�dQ�dR„ ƒZ‡�dS�dT„ Zˆ�dU�dV„ Z‰�dW�dX„ ZŠ�dY�dZ„ Z‹ej	 
�d[ezddådgdddg�d\œƒ�d]fg¡�d^�d_„ ƒZŒej	je�d`�da„ ƒZ��db�dc„ ZŽ�dd�de„ Z��df�dg„ Z��dh�di„ Z‘ej	 
�dje9�dk�dl�dm�dnœƒ�dofe9�dp�dq�dr�dnœƒ�dsfez�dt�dug�dv�dwggƒ�dxfez�dy�dzg�d{�d|ggƒ�d}fg¡�d~�d„ ƒZ’�d€�d�„ Z“d/S (‚  ÚTestPandasContainerc                 C   sz   t  ¡ }t|ƒ}dgd dgd  dgd  dgt|ƒd   }tj|dd�|_tt|ƒƒ|d< t	j
t|ƒd	d
�|d< |S )NZbahé   ÚbarÚbazÚfooé   ÚE©ÚnameÚint64©ÚdtypeÚsort)r   ZgetSeriesDatar   r   ÚpdZCategoricalIndexÚindexÚlistÚreversedÚnpÚarange)ÚselfZ_seriesdZ
_cat_frameÚcatr   r   r   Úcategorical_frame*   s    0z%TestPandasContainer.categorical_framec                 C   s    t  ¡ }d|_|j d ¡|_|S )NÚts)r   ZmakeTimeSeriesr$   r*   Ú
_with_freq)r/   Úserr   r   r   Údatetime_series6   s    z#TestPandasContainer.datetime_seriesc                 C   s   t t ¡ ƒ}|j d ¡|_|S ©N)r   r   ZgetTimeSeriesDatar*   r3   ©r/   Údfr   r   r   Údatetime_frame?   s    z"TestPandasContainer.datetime_framec                 C   sN   t ddgddggddgddgd	�}t|j|d
�|d
�}| ¡ }t|||ƒ d S )NÚaÚbÚcÚdz	index " 1z	index / 2za \ bzy / z©r*   r   ©r   ©r   r   Úto_jsonÚcopyr   ©r/   r   r8   r   r   r   r   r   Ú test_frame_double_encoded_labelsG   s    ýz4TestPandasContainer.test_frame_double_encoded_labelsr   Úsplitr   r   c                 C   sN   t ddgddggddgddgd�}t|j|d	�|d	�}| ¡ }t|||ƒ d S )
Nr:   r;   r<   r=   é   ÚxÚyr>   r?   r@   rC   r   r   r   Útest_frame_non_unique_indexS   s    "z/TestPandasContainer.test_frame_non_unique_indexr*   r   c              	   C   sX   t ddgddggddgddgd�}d	|› d
�}tjt|d�� |j|d� W 5 Q R X d S )Nr:   r;   r<   r=   rF   rG   rH   r>   z+DataFrame index must be unique for orient='ú'©Úmatchr?   ©r   ÚpytestÚraisesÚ
ValueErrorrA   ©r/   r   r8   Úmsgr   r   r   Ú"test_frame_non_unique_index_raises[   s    "z6TestPandasContainer.test_frame_non_unique_index_raisesÚdatar:   r;   r<   r=   g      ø?g      @g      @g      @rF   é   Ú20130101Z20130102c                 C   s    t |ddgddgd�}t|j|d�|dgd�}|dkr„t |ƒ}|jd d …df jd	kr�|jd d …df  tj¡d
 |jd d …df< n|dkr�|}t 	||¡ d S )NrF   é   rG   r>   r?   )r   Úconvert_datesr   r   údatetime64[ns]é@B rE   )
r   r   rA   Úilocr'   Úviewr-   r%   r   r   )r/   r   rT   r8   r   r   r   r   r   Útest_frame_non_unique_columnsb   s    
  ÿ.z1TestPandasContainer.test_frame_non_unique_columnsc              	   C   sX   t ddgddggddgddgd�}d	|› d
�}tjt|d�� |j|d� W 5 Q R X d S )Nr:   r;   r<   r=   rF   rW   rG   r>   z-DataFrame columns must be unique for orient='rJ   rK   r?   rM   rQ   r   r   r   Ú$test_frame_non_unique_columns_raises   s    "z8TestPandasContainer.test_frame_non_unique_columns_raisesc                 C   s   |  ¡ |j dd�kst‚d S )Nr   r?   ©rA   ÚAssertionError)r/   Úfloat_framer   r   r   Útest_frame_default_orient‡   s    z-TestPandasContainer.test_frame_default_orientr'   FÚconvert_axesTÚnumpyc           	      C   s2   |j |d�}t|||||d�}|}t|||ƒ d S )Nr?   ©r   rc   rd   r'   )rA   r   r   )	r/   r   rc   rd   r'   ra   rT   r   r   r   r   r   Útest_roundtrip_simpleŠ   s        ÿz)TestPandasContainer.test_roundtrip_simplec           	      C   sX   |j |d�}t|||||d�}|}|rHtr0tƒ rH|sH|dkrH| tj¡}t|||ƒ d S )Nr?   re   rE   )rA   r   r   r   Úastyper-   Zint32r   )	r/   r   rc   rd   r'   Ú	int_framerT   r   r   r   r   r   Útest_roundtrip_intframe—   s*        ÿÿþþýüz+TestPandasContainer.test_roundtrip_intframeNÚU3c           
      C   s
  t t d¡dd„ tdƒD ƒdd„ tdƒD ƒ|d�}|r\|dkr\|d	kr\|j tjjd
d�¡ |j	|d�}t
|||||d�}| ¡ }	|s’|	 tj¡}	|rÀ|dkrÀ|	j tj¡|	_|	j tj¡|	_n:|dkrÞ|rÞ|	j tj¡|	_n|rú|d	krú|	j tj¡|	_t||	|ƒ d S )N)éÈ   é   c                 S   s   g | ]}t |ƒ‘qS r   ©Ústr©Ú.0Úir   r   r   Ú
<listcomp>±   s     z?TestPandasContainer.test_roundtrip_str_axes.<locals>.<listcomp>rl   c                 S   s   g | ]}t |ƒ‘qS r   rm   ro   r   r   r   rr   ²   s     rk   )r   r*   r'   rj   rE   úCan't decode directly to array©Úreasonr?   re   r>   r   )r   r-   Zzerosr   ÚnodeÚ
add_markerrN   ÚmarkÚxfailrA   r   rB   rg   r%   r   r*   r   )
r/   Úrequestr   rc   rd   r'   r8   rT   r   r   r   r   r   Útest_roundtrip_str_axes«   s:    üÿ    ÿz+TestPandasContainer.test_roundtrip_str_axesc           	      C   s®   |dkr&|j  tjjd|› d�d�¡ |j|d�}|r\|dkr\|j  tjjd|› d�d�¡ t||||d	�}| ¡ }|j 	t
¡|_d |j_|sž|d
krž| ¡ }t|||ƒ d S )Nr>   z.Can't have duplicate index values for orient 'z')rt   r?   )r   r   zOrient z is broken with numpy=True©r   rc   rd   r*   )rv   rw   rN   rx   ry   rA   r   rB   r*   rg   rn   r$   Ú
sort_indexr   )	r/   rz   r   r1   rc   rd   rT   r   r   r   r   r   Útest_roundtrip_categoricalÔ   s$    
ÿÿÿz.TestPandasContainer.test_roundtrip_categoricalc                 C   s~   t ƒ }|j|d�}t||||d�}| ¡ }|rJ|j t¡|_|j t¡|_|rn|dkrn|jdgdd�j	dd�}t
 ||¡ d S )	Nr?   r|   r   r   rF   ©ZaxisTr   )r   rA   r   rB   r*   rg   Úfloatr   Úreindexr   r   r   )r/   r   rc   rd   Zempty_framerT   r   r   r   r   r   Útest_roundtrip_emptyò   s    z(TestPandasContainer.test_roundtrip_emptyc           	      C   sb   |j |d�}t||||d�}| ¡ }|sR|j tj¡d }|dkrL| t¡}||_t	|||ƒ d S )Nr?   r|   rZ   rE   )
rA   r   rB   r*   r\   r-   r%   rg   rn   r   )	r/   r   rc   rd   r9   rT   r   r   Úidxr   r   r   Útest_roundtrip_timestamp  s    
z,TestPandasContainer.test_roundtrip_timestampc                 C   sÚ   |r"|dkr"|j  tjjdd�¡ t dddddg¡}d	d
dddgd	d
d	d
d	gdddddgdddddgdœ}t||d�}|j|d�}t	||||d�}	| 
¡ }
|
jf |
 d¡ tj¡Ž}
|sÊ|dkrÊ|
 ¡ }
t|	|
|ƒ d S )NrE   rs   rt   r:   r;   r<   r=   Úeg        ç      ð?ç       @ç      @ç      @Zfoo1Zfoo2Zfoo3Zfoo4Zfoo5TF)ÚAÚBÚCÚD)rT   r*   r?   r|   Únumberr*   )rv   rw   rN   rx   ry   r)   ÚIndexr   rA   r   rB   ZassignZselect_dtypesrg   r-   r%   r}   r   )r/   rz   r   rc   rd   r*   r   r8   rT   r   r   r   r   r   Útest_roundtrip_mixed  s$    ÿüz(TestPandasContainer.test_roundtrip_mixedzdata,msg,orient)z{"key":b:a:d}zExpected object or valuer   zO{"columns":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}ú|z;Length of values \(3\) does not match length of index \(2\))zW{"columns":["A","B","C"],"index":["1","2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}z+3 columns passed, passed data had 2 columnsrE   )zN{"badkey":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}zunexpected key\(s\): badkeyrE   c              	   C   s.   t jt|d�� tt|ƒ|d� W 5 Q R X d S )NrK   r?   )rN   rO   rP   r   r   )r/   rT   rR   r   r   r   r   Ú$test_frame_from_json_bad_data_raises2  s    #z8TestPandasContainer.test_frame_from_json_bad_data_raisesc                 C   sˆ   t ddgdddggƒ}t|j|d�|||d�}t |jd ¡sBt‚t d	d
gdddggƒ}t|j|d�|||d�}t |jd ¡s„t‚d S )NrF   rW   rl   r   é   r?   )r   rc   r'   ©r   rW   Ú1Ú2Ú4Ú5Ú6)r   r   rA   r-   Úisnanr[   r`   )r/   r   rc   rd   r'   Znum_dfr   Zobj_dfr   r   r   Ú!test_frame_from_json_missing_dataX  s     
ü
üz5TestPandasContainer.test_frame_from_json_missing_datac                 C   s(   t d|d�}ttjgƒ}t ||¡ d S )Nz[null]r&   )r   r   r-   Únanr   r   )r/   r'   r   r   r   r   r   Ú(test_frame_read_json_dtype_missing_valuen  s    z<TestPandasContainer.test_frame_read_json_dtype_missing_valueÚinfc                 C   sH   t ddgdddggƒ}||jd< t| ¡ |d�}t |jd ¡sDt‚d S )NrF   rW   rl   r   r“   r”   r&   )r   Úlocr   rA   r-   rš   r[   r`   )r/   rž   r'   r8   r   r   r   r   Útest_frame_infinityw  s    
z'TestPandasContainer.test_frame_infinityz$not compliant on 32-bit, xref #15865rt   zvalue,precision,expected_val)gffffffî?rF   r†   )g333333ÿ?rF   r‡   )g333333ÿ¿rF   g       À)g×£p=
×ï?rW   r†   )g–C‹lçûï?rU   r†   )gûÿÿÿÿÿï?r!   r†   c                 C   s2   t d|igƒ}|j|d�}|d|› d�ks.t‚d S )NZa_float)Zdouble_precisionz{"a_float":{"0":ú}}©r   rA   r`   )r/   ÚvalueÚ	precisionZexpected_valr8   Úencodedr   r   r   Ú"test_frame_to_json_float_precision�  s    z6TestPandasContainer.test_frame_to_json_float_precisionc              	   C   s<   t dddgƒ}d}tjt|d�� |jdd� W 5 Q R X d S ©NrF   rW   rU   z+Invalid value 'garbage' for option 'orient'rK   Úgarbager?   rM   )r/   r8   rR   r   r   r   Útest_frame_to_json_except’  s    z-TestPandasContainer.test_frame_to_json_exceptc                 C   sf   t ddgd�}|jrt‚tjt| ¡ t|jƒd�|dd� t dg ig d�jd	d
�}d}||ksbt‚d S )NÚjimÚjoe©r   r&   F©Úcheck_index_typeÚtest©r*   r   r?   z{"test":{}})	r   Ú_is_mixed_typer`   r   r   r   rA   ÚdictÚdtypes©r/   r8   r   r   r   r   r   Útest_frame_empty˜  s    
  ÿz$TestPandasContainer.test_frame_emptyc                 C   sP   t ddgd�}|d  d¡|d< |js*t‚tjt| ¡ t|j	ƒd�|dd� d S )Nrª   r«   r¬   Úi8r&   Fr­   )
r   rg   r±   r`   r   r   r   rA   r²   r³   r7   r   r   r   Útest_frame_empty_mixedtype£  s    
  ÿz.TestPandasContainer.test_frame_empty_mixedtypec                 C   s  dddddgdddd	d
gdddddgdddddgg}t |tdƒdddddgd�}|jsZt‚| ¡ }dD ]*}|j|d�}t||dd�}t ||¡ qft	 
t|ƒ¡|_|jd d�}t|d dd�}t ||¡ t	 
|jd ¡|_|jd!d�}t|d!dd�}t ||¡ d S )"Né
   rF   r    çš™™™™™¹?g{®Gáz„?é   rW   r   gš™™™™™É?g{®Gáz”?é   rU   r   g333333Ó?g¸…ëQ¸ž?é(   rl   Úquxgš™™™™™Ù?g{®Gáz¤?ÚabcdZ1stZ2ndZ3rdZ4thZ5thr>   )rE   r*   r   r?   F©r   rc   r   r   )r   r+   r±   r`   rB   rA   r   r   r   r-   r.   r   r*   Úshaper   )r/   Úvalsr8   Úrightr   ZinpÚleftr   r   r   Útest_frame_mixedtype_orient¬  s0    ü  ÿ
z/TestPandasContainer.test_frame_mixedtype_orientc           
   	   C   s  t  dd¡}tt |¡d d�}tddddgdd	d
dgddddgddddgddddggddddg|d�}tdƒ|d< tdƒ|jd |j 	d¡f< |d |d!< t j
|jd"|j 	d!¡f< |d#d$d%ƒ}tj |d&¡}t|ƒ}t ||¡ |jd!gd"d'�}tj |d(¡}t|ƒ}	t ||	¡ d S ))Nz
2000-01-03z
2000-01-07©ÚfreqgÛÃ‰àù?gzÙ~Kcå?gäXî7 öü?g˜H/‹Æ¿g±|§RÐ¿gµº¤ƒXª´¿gsõB…f ¿gÇÏëô(�Æ¿g±à<¤1=ø?gÎâÅÂ9¾?gàÛôg?ú?gL¤—Å‚
õ¿g¡¦¯J–Qœ¿g½[r?T˜Ü?gj<èDH>Õ?g-þ¾ØÑ¿gI°ÄEæx®?gW!i`y’ÀgP0Æ4‘�ô?gè+«]Ñ5Ö?rŠ   r‹   rŒ   r�   ©r   r*   z19920106 18:21:32.12ÚdaterV   rU   ÚmodifiedrF   ÚioÚjsonrT   ztsframe_v012.jsonr   ztsframe_iso_v012.json)r)   Ú
date_ranger   r-   Zasarrayr   r
   r[   r   Úget_locÚNaTÚosÚpathÚjoinr   r   r   r   )
r/   ÚdatapathÚdtir8   ÚdirpathZv12_jsonZdf_unserZdf_isoZv12_iso_jsonZdf_unser_isor   r   r   Útest_v12_compatÊ  s0    




û
÷z#TestPandasContainer.test_v12_compatc                 C   sî   t jdddd�}tt|ƒd d�}tdddd	d
dddddg
ddddddddddg
ddddddd d!d"d#g
d$d%d&d'd(d)d*d+d,d-g
d.d/d0d1d2d3d4d5d6d7g
d8d9d:d;d<d=d>d?d@dAg
dBœ|dC�}|j dD¡|_t|jdEdF�dEdF�}t	j
||dGdGdGdGdH� d S )INZ20000101r¸   ÚH)ÚperiodsrÆ   rÅ   g}S? wí¿gÂôbÍmÇè?gz(~J�	ô?gðô1¼å¬ã?gk*¬ÐMã¿gv�TçjŽÏ?g7j	" YÒ?gp¢+KS(Àgñ’¬�µ£î?gZtÛS¬yð¿i¢L,i_�}i4zõiKeáiL&»iÞ%giûÜDiY)L i;ei­Dô Z78c608f1Z64a99743Z13d2ff52Zca7f4af2Z97236474Zbde7e214Z1a6bde47Zb1190be5Z7a669144Z8d64d068gD!¸€†í¥¿gIxJ ˆðü¿gÛòµ%â
@g�¨PÝ\<è¿gòÐ�÷ÛÞ¿gPl‰…ï—ë?gFàzÚnñ?g5mH/î?gp®Hé%Ÿ¿gáIðö?Z14f04af9Zd085da90Z4bcfac83Z81504cafZ2ffef4a9Z08e2f5c4Z07e1af03Zaddbd4a7Z1f6a09baZ4bfc4d87i¥/iŽÞØiÑYiÛ6i‚IÀ i;ª>i¶Á	iÒ(¡ i0q{iÑª‰)Zfloat_1Zint_1Zstr_1Zfloat_2Zstr_2Zint_2r°   ÚunicoderE   r?   T)r®   Zcheck_column_typeZ	by_blocksZcheck_exact)r)   rÌ   r   r+   r   r   rg   r   rA   r   r   )r/   r*   Údf_mixedZdf_roundtripr   r   r   Útest_blocks_compat_GH9037è  s¤    ööööööÃJµOúz-TestPandasContainer.test_blocks_compat_GH9037c           
   	   C   sö   G dd„ dƒ}d}||ƒ}t d|jgiƒ}| ¡ d|› d�ksBt‚t d|giƒ}d}tjt|d�� | ¡  W 5 Q R X t |gd	gd
œddgd�}tjt|d�� | ¡  W 5 Q R X |jtd�}d|› d�}	||	ksÖt‚|jtd�d|› d�ksòt‚d S )Nc                   @   s(   e Zd Zddœdd„Zedœdd„ZdS )zFTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThingN©Úreturnc                 S   s   || _ t |¡| _d S r6   )ÚhexedÚbytesÚfromhexÚbinary)r/   rÝ   r   r   r   Ú__init__L  s    zOTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__init__c                 S   s   | j S r6   )rÝ   ©r/   r   r   r   Ú__str__P  s    zNTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__str__)Ú__name__Ú
__module__Ú__qualname__rá   rn   rã   r   r   r   r   ÚBinaryThingK  s   rç   Z574b4454ba8c5eb4f98a8f45rŠ   z{"A":{"0":"ú"}}z6Unsupported UTF-8 sequence length when encoding stringrK   rF   ©rŠ   r‹   r‹   r¬   ©Údefault_handlerz"},"B":{"0":1}})r   rÝ   rA   r`   rN   rO   ÚOverflowErrorrn   )
r/   rç   rÝ   ZbinthingZdf_printableZdf_nonprintablerR   rÙ   r   r   r   r   r   Útest_frame_nonprintable_bytesH  s&    

ÿÿz1TestPandasContainer.test_frame_nonprintable_bytesc                 C   s<   t dd dgddgiƒ ¡ }ddd › d�}||ks8t‚d S )Nr   i † rF   r    i9  ú{"z":{"0":1},"foo":{"0":1337}}r¢   ©r/   r   r   r   r   r   Útest_label_overflown  s    z'TestPandasContainer.test_label_overflowc              	   C   s†   t ddgddgd�}d}tjt|d�� |jdd� W 5 Q R X t |t|jd	d�d	d
d�¡ t|jdd�dd
d�}t |j	|j	¡ d S )Nr:   r;   rF   r°   z.Series index must be unique for orient='index'rK   r*   r?   rE   Úseries)r   Útypr   )
r	   rN   rO   rP   rA   r   Úassert_series_equalr   Zassert_numpy_array_equalr   )r/   ÚsrR   Zunserializedr   r   r   Útest_series_non_unique_indext  s     ÿ
  ÿz0TestPandasContainer.test_series_non_unique_indexc                 C   s   |  ¡ |j dd�kst‚d S ©Nr*   r?   r_   )r/   Ústring_seriesr   r   r   Útest_series_default_orientƒ  s    z.TestPandasContainer.test_series_default_orientc                 C   sR   |j |d�}t|d||d�}|}|dkr4|jdd�}|dkrBd |_t ||¡ d S ©Nr?   rñ   ©rò   r   rd   ©r   r   Tr   rE   ©rA   r   r   r$   r   ró   )r/   r   rd   r÷   rT   r   r   r   r   r   Útest_series_roundtrip_simple†  s    z0TestPandasContainer.test_series_roundtrip_simplec                 C   sT   |j |d�}t|d|||d�}|}|dkr6|jdd�}|dkrDd |_t ||¡ d S )Nr?   rñ   )rò   r   rd   r'   rû   Tr   rE   rü   )r/   r   rd   r'   Zobject_seriesrT   r   r   r   r   r   Útest_series_roundtrip_object“  s    z0TestPandasContainer.test_series_roundtrip_objectc                 C   sd   t g g tjd�}|j|d�}t|d||d�}|}|dkrF|jdd�}n|j t¡|_t	 
||¡ d S )N©r*   r'   r?   rñ   rú   rû   Tr   )r	   r-   Úfloat64rA   r   r   r*   rg   r€   r   ró   )r/   r   rd   Zempty_seriesrT   r   r   r   r   r   Útest_series_roundtrip_empty¡  s    z/TestPandasContainer.test_series_roundtrip_emptyc                 C   sR   |j |d�}t|d||d�}|}|dkr4|jdd�}|dkrBd |_t ||¡ d S rù   rü   )r/   r   rd   r5   rT   r   r   r   r   r   Ú test_series_roundtrip_timeseries¯  s    z4TestPandasContainer.test_series_roundtrip_timeseriesc                 C   sd   t tdƒddddddgd�}|j|d	�}t|d
||d�}| ¡ }|dkrT|jdd�}t ||¡ d S )Nr“   r:   r;   r<   r=   r…   Úfr°   r?   rñ   rú   rû   Tr   )r	   r   rA   r   rB   r   r   ró   )r/   r   rd   r'   rô   rT   r   r   r   r   r   Útest_series_roundtrip_numeric¼  s    z1TestPandasContainer.test_series_roundtrip_numericc              	   C   s<   t dddgƒ}d}tjt|d�� |jdd� W 5 Q R X d S r§   )r	   rN   rO   rP   rA   )r/   rô   rR   r   r   r   Útest_series_to_json_exceptÉ  s    z.TestPandasContainer.test_series_to_json_exceptc                 C   s4   t dddgƒ}t| ¡ ddd�}tj||dd� d S )Nç=
×£p=@rñ   T)rò   Úprecise_floatFr­   )r	   r   rA   r   ró   ©r/   rô   r   r   r   r   Ú#test_series_from_json_precise_floatÏ  s    z7TestPandasContainer.test_series_from_json_precise_floatc                 C   s@   t dddgƒ}t| ¡ dtjd�}t dgd ƒ}t ||¡ d S )Nr  rñ   ©rò   r'   rl   rU   )r	   r   rA   r-   r%   r   ró   )r/   rô   r   r   r   r   r   Útest_series_with_dtypeÔ  s    z*TestPandasContainer.test_series_with_dtypezdtype,expectedú
2000-01-01rY   r&   l    ,ŸUqc                 C   s4   t dgdd�}| ¡ }t|d|d�}t ||¡ d S )Nr  rY   r&   rñ   r
  )r	   rA   r   r   ró   )r/   r'   r   rô   rT   r   r   r   r   Útest_series_with_dtype_datetimeÛ  s    z3TestPandasContainer.test_series_with_dtype_datetimec                 C   s8   t dddgdddggƒ}t| ¡ dd�}t ||¡ d S )Nr  T)r  ©r   r   rA   r   r   ©r/   r8   r   r   r   r   Ú"test_frame_from_json_precise_floatè  s    z6TestPandasContainer.test_frame_from_json_precise_floatc                 C   s>   t tdƒddddddgdd	�}t| ¡ d d
�}t ||¡ d S )Nr“   r:   r;   r<   r=   r…   r  r%   rÿ   ©rò   )r	   r   r   rA   r   ró   r  r   r   r   Útest_typí  s    zTestPandasContainer.test_typc                 C   sp   t dddgdddggƒ}t| ¡ ƒ}t ||¡ t dddgdddgdœdd	d
gd�}t| ¡ ƒ}t ||¡ d S )NrF   rW   rU   rl   r   r“   ©r:   r;   rŠ   r‹   rŒ   r°   r  r  r   r   r   Útest_reconstruction_indexó  s    $z-TestPandasContainer.test_reconstruction_indexc              	   C   s<   t  d¡�(}|||fD ]}| |¡ t|ƒ qW 5 Q R X d S )Nú	test.json)r   Úensure_cleanrA   r   )r/   ra   rh   r9   rÐ   r8   r   r   r   Ú	test_pathþ  s    
zTestPandasContainer.test_pathc                 C   sR   |  ¡ }t|ƒ}t ||¡ |  ¡ }t|dd�}tj||dd� |jd ksNt‚d S )Nrñ   r  F)Zcheck_names)rA   r   r   r   ró   r$   r`   )r/   r5   r9   rË   r   r   r   r   Útest_axis_dates  s    z#TestPandasContainer.test_axis_datesc                 C   s¼   |}t dƒ|d< | ¡ }t|ƒ}t ||¡ d|d< |jdd�}t|dd�}| ¡ }|d j d	¡|d< |d  d
¡|d< t ||¡ t	t dƒ|j
d�}| ¡ }t|dd�}t ||¡ d S )NrV   rÈ   r†   r    Úns©Ú	date_unitF©rX   r¶   r%   r°   rñ   r  )r
   rA   r   r   r   rB   r   r\   rg   r	   r*   ró   )r/   r5   r9   r8   rË   r   r   r2   r   r   r   Útest_convert_dates  s     z&TestPandasContainer.test_convert_datesÚdate_formatÚepochÚisoÚ	as_objectÚdate_typc                 C   sl   |dddd�t jg}|r"| d¡ t||d�}|j|d�}|dkrHd}nd	}|r\| d
d¡}||ksht‚d S )Niä  rF   )ÚyearÚmonthÚdayr:   r°   ©r  r  z+{"1577836800000":1577836800000,"null":null}zA{"2020-01-01T00:00:00.000":"2020-01-01T00:00:00.000","null":null}Ú}ú	,"a":"a"})r)   rÎ   Úappendr	   rA   Úreplacer`   )r/   r  r!  r"  rT   r4   r   r   r   r   r   Útest_date_index_and_values*  s    
ÿz.TestPandasContainer.test_date_index_and_valuesÚ
infer_wordZ
trade_timerÈ   ÚdatetimeZsold_atrÉ   Ú	timestampZ
timestampsc                 C   sf   ddl m} dd|diddig}tdtdƒgdtjggd|gd�}t||ƒƒd|g }t ||¡ d S )	Nr   ©ÚdumpsÚidrF   l    $äAÅrW   z
2002-11-08r¬   )	Úpandas.io.jsonr0  r   r
   r)   rÎ   r   r   r   )r/   r,  r0  rT   r   r   r   r   r   Útest_convert_dates_inferA  s     ÿz,TestPandasContainer.test_convert_dates_inferzdate,date_unit)ú20130101 20:43:42.123N)ú20130101 20:43:42rô   )r4  Úms)z20130101 20:43:42.123456Úus)z20130101 20:43:42.123456789r  c                 C   s€   |}t |ƒ|d< tj|jd|j d¡f< tj|jd|j d¡f< |rT|jd|d�}n|jdd�}t|ƒ}| ¡ }t	 
||¡ d S )NrÈ   rF   r   r   ©r  r  r&  )r
   r)   rÎ   r[   r   rÍ   rA   r   rB   r   r   )r/   rÈ   r  r9   r8   rË   r   r   r   r   r   Útest_date_format_frameX  s    z*TestPandasContainer.test_date_format_framec              	   C   s4   |}d}t jt|d�� |jddd� W 5 Q R X d S )Nú*Invalid value 'foo' for option 'date_unit'rK   r   r    r8  )rN   rO   rP   rA   )r/   r9   r8   rR   r   r   r   Útest_date_format_frame_raisesp  s    z1TestPandasContainer.test_date_format_frame_raisesc                 C   sn   t t|ƒ|jd�}tj|jd< tj|jd< |r>|jd|d�}n|jdd�}t|dd�}| ¡ }t	 
||¡ d S )	Nr°   rF   r   r   r8  r&  rñ   r  )r	   r
   r*   r)   rÎ   r[   rA   r   rB   r   ró   )r/   rÈ   r  r5   r2   rË   r   r   r   r   r   Útest_date_format_seriesv  s    z+TestPandasContainer.test_date_format_seriesc              	   C   sB   t tdƒ|jd�}d}tjt|d�� |jddd� W 5 Q R X d S )Nr4  r°   r:  rK   r   r    r8  )r	   r
   r*   rN   rO   rP   rA   )r/   r5   r2   rR   r   r   r   Útest_date_format_series_raisesŒ  s    z2TestPandasContainer.test_date_format_series_raisesÚunitrô   r6  r7  r  c                 C   s’   |}t dƒ|d< |j d¡}t dƒ|jd|f< t dƒ|jd|f< tj|jd|f< |jd|d	�}t||d
�}t 	||¡ t|d d
�}t 	||¡ d S )Nr5  rÈ   z19710101 20:43:42rF   z21460101 20:43:42rW   rl   r  r8  r  )
r
   r   rÍ   r[   r)   rÎ   rA   r   r   r   )r/   r>  r9   r8   ÚdlrË   r   r   r   r   Útest_date_unit’  s    z"TestPandasContainer.test_date_unitc                 C   s   d}t |ƒ d S )Nad  {
        "status": "success",
        "data": {
        "posts": [
            {
            "id": 1,
            "title": "A blog post",
            "body": "Some useful content"
            },
            {
            "id": 2,
            "title": "Another blog post",
            "body": "More content"
            }
           ]
          }
        })r   )r/   rô   r   r   r   Útest_weird_nested_json¥  s    z*TestPandasContainer.test_weird_nested_jsonc                 C   sx   t tj dd¡tdƒd�}tdƒ|d< tdƒ|d< d|d	< tjddd
�|_	| 
¡ }t|tjtjdœd�}t ||¡ d S )Nr   rW   ZABr¬   rV   rÈ   ÚintsTÚbools©r×   )rB  rC  r&   )r   r-   ÚrandomÚrandnr+   r
   r   r)   rÌ   r*   rA   r   r%   Zbool_r   r   )r/   Zdfj2rË   r   r   r   r   Útest_doc_example»  s    z$TestPandasContainer.test_doc_examplec              	   C   sŠ   t ddd�}tddgddggddgd�}d	}tjt|d
�� tj||dd� W 5 Q R X t dƒ}tddgddggddgd�}t ||¡ d S )Nz#[{"a": 1, "b": 2}, {"b":2, "a" :1}]T©rd   rF   rW   r:   r;   r¬   z´DataFrame\.index are different

DataFrame\.index values are different \(100\.0 %\)
\[left\]:  Index\(\['a', 'b'\], dtype='object'\)
\[right\]: RangeIndex\(start=0, stop=2, step=1\)rK   Fr­   )r   r   rN   rO   r`   r   r   )r/   r   r   Ú	error_msgr   r   r   Útest_misc_exampleÆ  s    z%TestPandasContainer.test_misc_examplec                 C   sF   |ddddƒ}t  |¡}| ¡ }t|ƒ}t |j|j|jd�|¡ d S )NrÊ   rË   rT   z	teams.csvr>   )	r)   Zread_csvrA   r   r   r   r�   r*   r   )r/   rÒ   rÐ   r8   rô   r   r   r   r   Útest_round_trip_exception_Ø  s
    
z.TestPandasContainer.test_round_trip_exception_ú@https://api.github.com/repos/pandas-dev/pandas/issues?per_page=5)ÚurlZcheck_before_testzfield,dtypeZ
created_atÚUTC©ÚtzZ	closed_atZ
updated_atc                 C   s&   d}t |dd�}|| j|ks"t‚d S )NrL  Tr  )r   r'   r`   )r/   Úfieldr'   rM  r   r   r   r   Útest_urlà  s    zTestPandasContainer.test_urlc                 C   sV  dd„ }t tdƒtdd�gƒ}|jdks,t‚t| ¡ dd� |¡}t ||¡ t tdƒtdd�gt	 
d	d
g¡d�}|jdks€t‚t| ¡ dd� |¡}t ||¡ ttdƒtdd�gƒ}|d	 jdksÊt‚t |t| ¡ ƒ |¡¡ ttdd�tdd�gd
dgt	jddd�dœƒ}t|jdd�ƒ}t	j|jdd�|d< t	 |j¡|d< t ||¡ d S )Nc                 S   s   t j| dd�S )Nr6  ©r>  )r)   Úto_timedelta)rG   r   r   r   Ú<lambda>ó  ó    z4TestPandasContainer.test_timedelta.<locals>.<lambda>é   r   )Úsecondsztimedelta64[ns]rñ   r  r   rF   r°   ©ÚdaysrW   rV   )Ústartr×   ©r:   r;   r<   r  r  rS  r:   r<   )r	   r   r'   r`   r   rA   Úapplyr   ró   r)   r�   r   r   rÌ   rT  r:   Úto_datetimer<   )r/   Ú	converterrô   r   Úframer   r   r   Útest_timedeltaò  s,    $ýÿz"TestPandasContainer.test_timedeltac                 C   sr   t dtdƒtdƒgitd�}t dt |jd ¡jt|jd ƒjgiƒ}t|j	dd�dd	id�}t
j||d
d� d S )Nr:   rW  rV   r&   r   rF   r  r  r%   Fr­   )r   r   r
   Úobjectr)   Ú	Timedeltar:   r£   r   rA   r   r   )r/   r`  r   r   r   r   r   Útest_mixed_timedelta_datetime  s    $ÿz1TestPandasContainer.test_mixed_timedelta_datetimeÚtimedelta_typc                 C   sp   |dd�|dd�t jg}|r&| d¡ t||d�}|dkr@d}nd}|rT| d	d
¡}|j|d�}||kslt‚d S )NrF   rY  rW   r:   r°   r   zA{"P1DT0H0M0S":"P1DT0H0M0S","P2DT0H0M0S":"P2DT0H0M0S","null":null}z7{"86400000":86400000,"172800000":172800000,"null":null}r'  r(  r&  )r)   rÎ   r)  r	   r*  rA   r`   )r/   r!  r  re  rT   r4   r   r   r   r   r   Útest_timedelta_to_json  s    
ÿz*TestPandasContainer.test_timedelta_to_jsonc                 C   sN   t ƒ }tdd|giƒ}tddt|ƒgiƒ}t|jtd�ƒ}tj||dd� d S )Nr:   é   rê   Fr­   )rb  r   rn   r   rA   r   r   )r/   r£   r`  r   r   r   r   r   Útest_default_handler1  s
    z(TestPandasContainer.test_default_handlerc                 C   sb   ddl m} dd„ }dtddtdd	ƒgtd
ƒd dgdœddgd�g}d}|||dd�|ks^t‚d S )Nr   r/  c                 S   s(   t | tƒr dd| jfd| jfgS t| ƒS )N)ZmathjsÚComplexÚreZim)Ú
isinstanceÚcomplexÚrealÚimagrn   ©Úobjr   r   r   Údefault;  s    
zBTestPandasContainer.test_default_handler_indirect.<locals>.defaulté	   rF   ZSTRrl   éûÿÿÿrœ   zN/Ar  r:   r;   r¬   zR[9,[[1,null],["STR",null],[[["mathjs","Complex"],["re",4.0],["im",-5.0]],"N\/A"]]]r   ©rë   r   )r2  r0  r   rl  r€   r`   )r/   r0  rq  Zdf_listr   r   r   r   Útest_default_handler_indirect8  s    þþÿz1TestPandasContainer.test_default_handler_indirectc                 C   sP   t ddtddƒgtdƒd tddƒgdœd	d
gd�}d}|jtdd�|ksLt‚d S )NrF   gffffff@rl   rs  rœ   g333333ó?r   r  r:   r;   r¬   zE[["(1+0j)","(nan+0j)"],["(2.3+0j)","(nan+0j)"],["(4-5j)","(1.2+0j)"]]r   rt  )r   rl  r€   rA   rn   r`   )r/   r8   r   r   r   r   Ú,test_default_handler_numpy_unsupported_dtypeM  s    $þÿz@TestPandasContainer.test_default_handler_numpy_unsupported_dtypec              	      s„   d‰ ‡ fdd„}t jtˆ d��" tdddtƒ giƒj|d� W 5 Q R X t jtˆ d��& tdddtd	d
ƒgiƒj|d� W 5 Q R X d S )NZraisinc                    s   t ˆ ƒ‚d S r6   )Ú	TypeErrorro  ©rR   r   r   Úmy_handler_raises]  s    zJTestPandasContainer.test_default_handler_raises.<locals>.my_handler_raisesrK   r:   rF   rW   rê   rl   rs  )rN   rO   rw  r   rb  rA   rl  )r/   ry  r   rx  r   Útest_default_handler_raisesZ  s    ÿÿz/TestPandasContainer.test_default_handler_raisesc              	   C   sx   t ddddddddgiƒ}|d |d< | ¡ }|d  d¡|d< || ¡ ksPt‚|d }|d }| ¡ | ¡ kstt‚d S )NrŠ   r:   r;   r<   r‹   Úcategory)r   rA   rg   r`   )r/   r8   r   rô   Úscr   r   r   Útest_categoricali  s    z$TestPandasContainer.test_categoricalc                 C   sˆ   t jdddd�}| d¡ d ¡}t|t jddd�dœƒ}| ¡ }||d< | ¡ }|| ¡ ks`t‚t|ƒ}t|ƒ}| ¡ | ¡ ks„t‚d S )	NrV   rU   ú
US/Eastern©r×   rP  ÚutcrD  ré   rŠ   )	r)   rÌ   Z
tz_convertZtz_localizer   rB   rA   r`   r	   )r/   Útz_rangeZtz_naiver8   Zdf_naiver   ZstzZs_naiver   r   r   Útest_datetime_tzv  s    z$TestPandasContainer.test_datetime_tzc                 C   sŠ   t tj dd¡ƒ}tj|jd d…< | d¡}| ¡ }|| ¡ ksDt‚t	tj d¡ƒ}tj|jd d…< | d¡}| ¡ }|| ¡ ks†t‚d S )Nr¸   rl   é   ZSparse)
r   r-   rE  rF  rœ   rŸ   rg   rA   r`   r	   )r/   r8   Zsdfr   rô   Ússr   r   r   Útest_sparse†  s    

zTestPandasContainer.test_sparser2   z2013-01-10 05:00:00Zz2013-01-10 00:00:00r~  z2013-01-10 00:00:00-0500c                 C   sD   ddl m} d}||dd�|ks$t‚| ¡ }||dd�|ks@t‚d S )Nr   r/  z"2013-01-10T05:00:00.000Z"T©Z	iso_dates)r2  r0  r`   Úto_pydatetime)r/   r2   r0  ÚexpÚdtr   r   r   Útest_tz_is_utc–  s
    	z"TestPandasContainer.test_tz_is_utcc                 C   sL   ddl m} tdƒ}d}||dd�|ks,t‚| ¡ }||dd�|ksHt‚d S )Nr   r/  z2013-01-10 05:00:00z"2013-01-10T05:00:00.000"Tr†  )r2  r0  r
   r`   r‡  )r/   r0  r2   rˆ  r‰  r   r   r   Útest_tz_is_naive§  s    z$TestPandasContainer.test_tz_is_naiver�  z2013-01-01 05:00:00ZrW   rD  z2013-01-01 00:00:00r  z2013-01-01 00:00:00-0500c                 C   s    ddl m} d}d}||dd�|ks(t‚t|ƒ}||dd�|ksDt‚|| t¡dd�|ks^t‚td|iƒ}||dd�}||ks‚t‚|| dti¡dd�sœt‚d S )Nr   r/  z7["2013-01-01T05:00:00.000Z","2013-01-02T05:00:00.000Z"]zF{"DT":{"0":"2013-01-01T05:00:00.000Z","1":"2013-01-02T05:00:00.000Z"}}Tr†  ÚDT)r2  r0  r`   r   rg   rb  r   )r/   r�  r0  rˆ  ÚdfexprÓ   r8   r   r   r   r   Útest_tz_range_is_utc±  s    	ÿz(TestPandasContainer.test_tz_range_is_utcc                 C   s’   ddl m} tjddd�}d}d}||dd	�|ks6t‚|| t¡dd	�|ksPt‚td
|iƒ}||dd	�}||kstt‚|| d
ti¡dd	�sŽt‚d S )Nr   r/  z2013-01-01 05:00:00rW   rD  z5["2013-01-01T05:00:00.000","2013-01-02T05:00:00.000"]zD{"DT":{"0":"2013-01-01T05:00:00.000","1":"2013-01-02T05:00:00.000"}}Tr†  rŒ  )r2  r0  r)   rÌ   r`   rg   rb  r   )r/   r0  rÓ   rˆ  r�  r8   r   r   r   r   Útest_tz_range_is_naiveÎ  s    z*TestPandasContainer.test_tz_range_is_naivec                 C   s8   t ddd�}tddgddggddgd�}t ||¡ d S )	Nú!{"a": 1, "b": 2}
{"b":2, "a" :1}
T©ÚlinesrF   rW   r:   r;   r¬   ©r   r   r   r   rï   r   r   r   Útest_read_inline_jsonlß  s    z*TestPandasContainer.test_read_inline_jsonlc                 C   s:   t dd|d�}tddgddggddgd�}t ||¡ d S )	Nzs3n://pandas-test/items.jsonlT)r’  Ústorage_optionsrF   rW   r:   r;   r¬   r“  )r/   Ús3_resourceÚs3sor   r   r   r   r   Útest_read_s3_jsonlå  s      ÿz&TestPandasContainer.test_read_s3_jsonlc              
   C   sn   t  d¡�Z}t|dƒ�}| d¡ W 5 Q R X t|dd�}tddgddggdd	gd
�}t  ||¡ W 5 Q R X d S )Nztmp_items.jsonÚwr�  Tr‘  rF   rW   r:   r;   r¬   )r   r  ÚopenÚwriter   r   r   )r/   rÐ   Úinfiler   r   r   r   r   Útest_read_local_jsonlð  s    z)TestPandasContainer.test_read_local_jsonlc                 C   s|   d}t |ƒ}t|dd�}tddgddggddgd	�}t ||¡ d}t|dd�}tddgddggddgd	�}t ||¡ d S )
Nu5   {"a": "fooâ€�", "b": "bar"}
{"a": "foo", "b": "bar"}
Tr‘  u   fooâ€�r   r    r:   r;   r¬   )r   r   r   r   r   ©r/   rË   r   r   r   r   r   Útest_read_jsonl_unicode_charsù  s    z1TestPandasContainer.test_read_jsonl_unicode_charsÚbigNumc                 C   sp   t |tdgd�}| ¡ }dt|ƒ d }||ks4t‚t|tdgdgd�}| ¡ }dt|ƒ d }||kslt‚d S )	NÚ	articleId)r'   r*   ú{"articleId":r'  r   )r'   r*   r   ú{"0":{"articleId":r¡   )r	   rb  rA   rn   r`   r   )r/   r   rñ   rË   r   r8   r   r   r   Útest_to_json_large_numbers
  s    z.TestPandasContainer.test_to_json_large_numberslûÿÿÿ        l            c              	   C   st   t dt|ƒ d ƒ}d}tjt|d�� t|ƒ W 5 Q R X t dt|ƒ d ƒ}tjt|d�� t|ƒ W 5 Q R X d S )Nr¢  r'  z#Value is too small|Value is too bigrK   r£  r¡   )r   rn   rN   rO   rP   r   )r/   r   rË   rR   r   r   r   Útest_read_json_large_numbers  s    z0TestPandasContainer.test_read_json_large_numbersc                 C   sh   d}t |ƒ}t|dd�}tddgd�}t ||¡ d}t |ƒ}t|ƒ}tddgdgd	�}t ||¡ d S )
Nz'{"articleId": "1404366058080022500245"}rñ   r  gg“_SDr¡  r°   z.{"0": {"articleId": "1404366058080022500245"}}r   r>   )r   r   r	   r   ró   r   r   rž  r   r   r   Útest_read_json_large_numbers2#  s    z1TestPandasContainer.test_read_json_large_numbers2c                 C   sÚ   t ddgddggddgd�}|jddd�}d	}||ks:t‚t d
dgddggddgd�}|jddd�}d}||kstt‚t t|dd�|¡ t ddgddggddgd�}|jddd�}d}||ksÂt‚t t|dd�|¡ d S )NrF   rW   r:   r;   r¬   r   T)r   r’  z{"a":1,"b":2}
{"a":1,"b":2}
zfoo}r   zfoo"z/{"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}
r‘  zfoo\za\z4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
)r   rA   r`   r   r   r   r´   r   r   r   Útest_to_jsonl1  s    z!TestPandasContainer.test_to_jsonlz%GH#13774 encoding kwarg not supported)ru   rO   c                 C   sÈ   dddddgddddgdddddgdddddgddddgddddgdddddgt jdddgdt jdddgg	}d	d
„ |D ƒ}g }dtfD ] }|D ]}| t||d�¡ qŽq†ddd„}|D ]}||ƒ q¶d S )Ns   EÉ, 17rV  ó   aó   bó   cs   EE, 17s   øüs   Aøüc                 S   s   g | ]}d d„ |D ƒ‘qS )c                 S   s$   g | ]}t |tƒr| d ¡n|‘qS )úlatin-1)rk  rÞ   Údecode)rp   rG   r   r   r   rr   V  s     zFTestPandasContainer.test_latin_encoding.<locals>.<listcomp>.<listcomp>r   )rp   rH   r   r   r   rr   U  s   ÿz;TestPandasContainer.test_latin_encoding.<locals>.<listcomp>r{  r&   r«  c              	   S   sD   t  d¡�0}| j||d� t||d�}t j| |dd� W 5 Q R X d S )Nr  )ÚencodingF)Zcheck_categorical)r   r  rA   r   ró   )rô   r­  rÐ   Zretrr   r   r   Ú	roundtrip_  s    z:TestPandasContainer.test_latin_encoding.<locals>.roundtrip)r«  )r-   rœ   rb  r)  r	   )r/   r   Zexamplesr'   Úvalr®  rô   r   r   r   Útest_latin_encodingF  s(    


÷þ
z'TestPandasContainer.test_latin_encodingc                 C   sN   t dtdƒgiƒ}|jddd� ¡ }| ¡  |jddd� ¡ }||ksJt‚d S )Nr:   rF   T)r*   Údeep)r   rn   Zmemory_usageÚsumrA   r`   )r/   r8   Zsize_beforeZ
size_afterr   r   r   Ú"test_data_frame_size_after_to_jsonh  s
    z6TestPandasContainer.test_data_frame_size_after_to_jsonr†   r‡   r•   r–   ú1.ú2.c                 C   sB   t ddgddgg||d�}|jdd�}t|dd�}t ||¡ d S )NrF   rW   rU   rl   r>   Útabler?   ©r   rA   r   r   r   )r/   r*   r   r   Údfjsonr   r   r   r   Ú.test_from_json_to_json_table_index_and_columnsr  s    zBTestPandasContainer.test_from_json_to_json_table_index_and_columnsc                 C   sD   t ddgddgddgdœƒ}|jdd	�}t|dd	�}t ||¡ d S )
NrF   rW   rˆ   r‰   r˜   r™   r\  r¶  r?   r·  )r/   r   r¸  r   r   r   r   Ú#test_from_json_to_json_table_dtypes}  s    z7TestPandasContainer.test_from_json_to_json_table_dtypesc                 C   s¤   t  tdddgdd�td ddgdd�td d	d
gdd�tdddgdd�tddd gdd�tdd dgdd�dœ¡}|j|d�}t||dddddddœd�}t ||¡ d S )NrF   rW   rU   r%   r&   r‡   rˆ   r   Ú r<   rb  TFÚboolr:   r;   r{  z
2020-01-01z
2020-01-03rY   )ÚIntegerÚFloatZObjectZBoolZCategoryZDatetimer?   ©r   r'   )r   Ú	from_dictr	   rA   r   r   r   )r/   r   r   r¸  r   r   r   r   Ú%test_to_json_from_json_columns_dtypes„  s2     ÿúÿúýz9TestPandasContainer.test_to_json_from_json_columns_dtypes)r;   r<   c              	   C   sX   t ddgddgddgdœƒ}|jdd	�}d
}tjt|d�� t|d|d� W 5 Q R X d S )NrF   rW   rˆ   r‰   r˜   r™   r\  r¶  r?   z)cannot pass both dtype and orient='table'rK   r¿  ©r   rA   rN   rO   rP   r   )r/   r'   r8   r¸  rR   r   r   r   Ú!test_read_json_table_dtype_raises¢  s
    z5TestPandasContainer.test_read_json_table_dtype_raisesc              	   C   s^   t ddgddggddgddgd	�}|jd
d�}d}tjt|d�� t|d
dd� W 5 Q R X d S )NrF   rW   rU   rl   r†   r‡   r´  rµ  r>   r¶  r?   z0cannot pass both convert_axes and orient='table'rK   Tr¿   rÂ  )r/   r8   r¸  rR   r   r   r   Ú(test_read_json_table_convert_axes_raises«  s
    "z<TestPandasContainer.test_read_json_table_convert_axes_raiseszdata, expectedrl   r   r¬   )r   rT   r    rÇ   rŠ   r#   )r$   rT   )r$   r*   c                 C   s(   |j ddd�}t |¡}||ks$t‚d S )NrE   F©r   r*   )rA   rË   Úloadsr`   ©r/   rT   r   r   r   r   r   Útest_index_false_to_json_split³  s     
z2TestPandasContainer.test_index_false_to_json_splitc                 C   sL   |j ddd�}t |¡}tjjj|dd�t|ƒjdd�dœ}||ksHt‚d S )Nr¶  FrÅ  r°   r   r?   )ZschemarT   )	rA   rË   rÆ  r)   rÊ   Zbuild_table_schemar   Úto_dictr`   ©r/   rT   r   r   r   r   r   Útest_index_false_to_json_tableØ  s    
þz2TestPandasContainer.test_index_false_to_json_tablec              	   C   sL   t ddgddggddgd�}d}tjt|d	�� |j|d
d� W 5 Q R X d S )NrF   rW   rl   r   r:   r;   r¬   z?'index=False' is only valid when 'orient' is 'split' or 'table'rK   FrÅ  rM   rQ   r   r   r   Útest_index_false_error_to_jsonõ  s    z2TestPandasContainer.test_index_false_error_to_jsonr¶  c                 C   s@   t ddgddgdœƒ}|j||d�}t||d�}t ||¡ d S )NrF   rW   rU   rl   r  rÅ  r?   r·  )r/   r   r*   r   r¸  r   r   r   r   Ú"test_index_false_from_json_to_json   s    z6TestPandasContainer.test_index_false_from_json_to_jsonc                 C   s6   t dddd�}tdgtdgdd�d	�}t ||¡ d S )
Nz{"2019-01-01T11:00:00.000Z":88}rñ   r*   )rò   r   éX   z2019-01-01 11:00:00rN  rO  r°   )r   r	   r   r   ró   rï   r   r   r   Útest_read_timezone_information
  s      ÿz2TestPandasContainer.test_read_timezone_informationrM  zs3://example-fsspec/zgcs://another-fsspec/file.jsonzhttps://example-site.com/datazsome-protocol://data.txtc                 C   s.   t d|› d�ƒ}td|giƒ}t ||¡ d S )Nz{"url":{"0":"rè   rM  r“  )r/   rM  r   r   r   r   r   Útest_read_json_with_url_value  s    z1TestPandasContainer.test_read_json_with_url_valueÚcompressionr»  z.gzz.bz2z.tarc              	   C   s<   d› d|› �}t jtd|› d�d�� t|ƒ W 5 Q R X d S )NAè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz.jsonzFile z does not existrK   )rN   rO   ÚFileNotFoundErrorr   )r/   rÑ  Zlong_json_pathr   r   r   Ú'test_read_json_with_very_long_file_path!  s     
ÿz;TestPandasContainer.test_read_json_with_very_long_file_pathzdate_format,key)r  i \&)r   Z
P1DT0H0M0Sc                 C   s@   t dggt d¡gd�}d|› d�}|j|d�}||ks<t‚d S )NrF   Z1Dr¬   rî   z
":{"0":1}}r&  )r   r)   rc  rA   r`   )r/   r  Úkeyr8   r   r   r   r   r   Útest_timedelta_as_label/  s    z+TestPandasContainer.test_timedelta_as_labelzorient,expected)r*   z{"('a', 'b')":{"('c', 'd')":1}})r   z{"('c', 'd')":{"('a', 'b')":1}}z,Produces JSON but not in a consistent manner)Zmarksc                 C   s2   t dggdgdgd�}|j|d�}||ks.t‚d S )NrF   r  )r<   r=   r>   r?   r¢   ©r/   r   r   r8   r   r   r   r   Útest_tuple_labels9  s    z%TestPandasContainer.test_tuple_labelsÚindentc                 C   s†   t ddgddggddgd�}|j|d�}d	| }d
|› d|› |› d|› |› d|› d|› d|› |› d|› |› d|› d�}||ks‚t‚d S )Nr    r   r   r½   r:   r;   r¬   ©rØ  ú z{
z"a":{
z"0":"foo",
z
"1":"baz"
z},
z"b":{
z"0":"bar",
z
"1":"qux"
z}
}r¢   )r/   rØ  r8   r   Úspacesr   r   r   r   Útest_to_json_indentU  s:    ÿÿÿÿÿÿÿÿÿÿÿÿz'TestPandasContainer.test_to_json_indent)rE   zã{
    "columns":[
        "a",
        "b"
    ],
    "index":[
        0,
        1
    ],
    "data":[
        [
            "foo",
            "bar"
        ],
        [
            "baz",
            "qux"
        ]
    ]
})r   zf[
    {
        "a":"foo",
        "b":"bar"
    },
    {
        "a":"baz",
        "b":"qux"
    }
])r*   zn{
    "0":{
        "a":"foo",
        "b":"bar"
    },
    "1":{
        "a":"baz",
        "b":"qux"
    }
})r   zn{
    "a":{
        "0":"foo",
        "1":"baz"
    },
    "b":{
        "0":"bar",
        "1":"qux"
    }
})r   zV[
    [
        "foo",
        "bar"
    ],
    [
        "baz",
        "qux"
    ]
])r¶  aa  {
    "schema":{
        "fields":[
            {
                "name":"index",
                "type":"integer"
            },
            {
                "name":"a",
                "type":"string"
            },
            {
                "name":"b",
                "type":"string"
            }
        ],
        "primaryKey":[
            "index"
        ],
        "pandas_version":"1.4.0"
    },
    "data":[
        {
            "index":0,
            "a":"foo",
            "b":"bar"
        },
        {
            "index":1,
            "a":"baz",
            "b":"qux"
        }
    ]
}c                 C   s:   t ddgddggddgd�}|j|dd	�}||ks6t‚d S )
Nr    r   r   r½   r:   r;   r¬   rl   )r   rØ  r¢   rÖ  r   r   r   Útest_json_indent_all_orientsi  s    wz0TestPandasContainer.test_json_indent_all_orientsc              	   C   s,   t jtdd�� tƒ jdd� W 5 Q R X d S )Nzmust be a nonnegative integerrK   éÿÿÿÿrÙ  )rN   rO   rP   r   rA   râ   r   r   r   Ú test_json_negative_indent_raisesä  s    z4TestPandasContainer.test_json_negative_indent_raisesc                 C   s:   d}t |ƒ}tdtjdtjdtj dgƒ}t ||¡ d S )Nz?["a", NaN, "NaN", Infinity, "Infinity", -Infinity, "-Infinity"]r:   ÚNaNÚInfinityz	-Infinity)r   r   r-   rœ   rž   r   r   rÊ  r   r   r   Útest_emca_262_nan_inf_supportè  s    ÿz1TestPandasContainer.test_emca_262_nan_inf_supportc              	   C   sD   t dddgƒ}t t¡�" t| ¡ dd�}t ||¡ W 5 Q R X d S )NrF   rW   rU   TrH  )r   r   Zassert_produces_warningÚFutureWarningr   rA   r   )r/   r   r   r   r   r   Ú'test_deprecate_numpy_argument_read_jsonñ  s    z;TestPandasContainer.test_deprecate_numpy_argument_read_jsonc                 C   s>   t  ddiddig¡}tdddgiƒ}t|ƒ}t ||¡ d S )NÚcolZ31900441201190696999ÚText)rË   r0  r   r   r   r   )r/   Zencoded_jsonr   r   r   r   r   Útest_frame_int_overflowø  s    z+TestPandasContainer.test_frame_int_overflowzdataframe,expected©rG   rH   zU{"(0, 'x')":1,"(0, 'y')":"a","(1, 'x')":2,"(1, 'y')":"b","(2, 'x')":3,"(2, 'y')":"c"}c                 C   s$   |  ¡ }|jdd�}||ks t‚d S rö   )ÚstackrA   r`   )r/   Z	dataframer   rñ   r   r   r   r   Útest_json_multiindexÿ  s    z(TestPandasContainer.test_json_multiindexc                 C   s�   dd l }d\}}tdddgdddgdœƒ}|jd	|› d
|› �|d� d}|dd„ | d¡j ¡ D ƒkrhqŒ| d¡ |d8 }|dksHtdƒ‚qHd S )Nr   )úpandas-testr  rF   rW   rU   rl   r“   rè  zs3://ú/)r•  r   c                 s   s   | ]}|j V  qd S r6   )rÔ  )rp   rp  r   r   r   Ú	<genexpr>  s    z1TestPandasContainer.test_to_s3.<locals>.<genexpr>rë  r¹   z,Timed out waiting for file to appear on moto)Útimer   rA   ZBucketÚobjectsÚallÚsleepr`   )r/   r–  r—  rî  Zmock_bucket_nameZtarget_filer8   Útimeoutr   r   r   Ú
test_to_s3  s    ÿ
zTestPandasContainer.test_to_s3c                 C   sD   t |tƒr$tjjdd�}|j |¡ t|ggƒ ¡ }|dks@t	‚d S )Nznot implementedrt   z{"0":{"0":null}})
rk  r   rN   rx   ry   rv   rw   r   rA   r`   )r/   Znulls_fixturerz   rx   r   r   r   r   Útest_json_pandas_nulls   s
    
z*TestPandasContainer.test_json_pandas_nullsc                 C   s*   t ddd�}tdddgƒ}t ||¡ d S )Nz[true, true, false]rñ   r  TF)r   r	   r   ró   rï   r   r   r   Útest_readjson_bool_series)  s    z-TestPandasContainer.test_readjson_bool_seriesc                 C   s:   t dt dd¡ddgd� ¡ }| ¡ }d}||ks6t‚d S )NTz
2017-01-20z
2017-01-23r    r   r>   a‰  {"(Timestamp('2017-01-20 00:00:00'), 'foo')":true,"(Timestamp('2017-01-20 00:00:00'), 'bar')":true,"(Timestamp('2017-01-21 00:00:00'), 'foo')":true,"(Timestamp('2017-01-21 00:00:00'), 'bar')":true,"(Timestamp('2017-01-22 00:00:00'), 'foo')":true,"(Timestamp('2017-01-22 00:00:00'), 'bar')":true,"(Timestamp('2017-01-23 00:00:00'), 'foo')":true,"(Timestamp('2017-01-23 00:00:00'), 'bar')":true})r   r)   rÌ   ré  rA   r`   r´   r   r   r   Útest_to_json_multiindex_escape/  s    
ý
ÿ
z2TestPandasContainer.test_to_json_multiindex_escapec                 C   sJ   G dd„ dƒ}t |ddddd�gƒ}t | ¡ ¡ddddd	œiksFt‚d S )
Nc                   @   s"   e Zd Zddœdd„Zdd„ ZdS )zGTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObjectNrÛ   c                 S   s   || _ || _|| _|| _d S r6   ©r:   r;   Ú_cr=   )r/   r:   r;   rø  r=   r   r   r   rá   E  s    zPTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.__init__c                 S   s   dS )Nr   r   râ   r   r   r   r…   K  s    zITestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.e)rä   rå   ræ   rá   r…   r   r   r   r   Ú_TestObjectD  s   rù  rF   rW   rU   rl   r÷  Ú0)r:   r;   r=   )r	   rË   rÆ  rA   r`   )r/   rù  rñ   r   r   r   Útest_to_json_series_of_objectsC  s    z2TestPandasContainer.test_to_json_series_of_objectszdata,expectedy      À       @y              ð?y      "@      À)r   rF   rW   zW{"0":{"imag":8.0,"real":-6.0},"1":{"imag":1.0,"real":0.0},"2":{"imag":-5.0,"real":9.0}}yHáz®Ç"À…ëQ¸å?yš™™™™™@¤p=
×£"@y…ëQ¸@Ãõ(\�ÂÅ¿z]{"0":{"imag":0.66,"real":-9.39},"1":{"imag":9.32,"real":3.95},"2":{"imag":-0.17,"real":4.03}}y       À      @y      ð¿        y      @      Ày              $Àz‚{"0":{"0":{"imag":3.0,"real":-2.0},"1":{"imag":-3.0,"real":4.0}},"1":{"0":{"imag":0.0,"real":-1.0},"1":{"imag":-10.0,"real":0.0}}}yìQ¸…ëÑ¿Ãõ(\�ÂÕ?yHáz®Gñ¿ö(\�ÂõØ¿y=
×£p=Ú?Ãõ(\�ÂÕ¿yö(\�Âõè¿š™™™™™õ¿z‹{"0":{"0":{"imag":0.34,"real":-0.28},"1":{"imag":-0.34,"real":0.41}},"1":{"0":{"imag":-0.39,"real":-1.08},"1":{"imag":-1.35,"real":-0.78}}}c                 C   s   |  ¡ }||kst‚d S r6   r_   rÇ  r   r   r   Útest_complex_data_tojsonR  s    #z,TestPandasContainer.test_complex_data_tojsonc                 C   s2   d}t dddgid�}|jdd�}||ks.t‚d S )NzY{"columns":["col1"],"index":[0,1],"data":[[13342205958987758245],[12388075603347835679]]}Zcol1l   ¥:!c„&HI l   v8�$Z_
 )rT   rE   r?   r¢   )r/   r   r8   r   r   r   r   Útest_json_uint64x  s
    ÿz$TestPandasContainer.test_json_uint64)”rä   rå   ræ   rN   Zfixturer1   r5   r9   rD   rx   ZparametrizerI   rS   r
   r]   r^   rb   r€   rf   r-   r%   ri   r   Úintr{   r~   r‚   r„   r�   rÑ   r’   r›   r�   rž   ZNINFr    Zskipifr   r¦   r©   rµ   r·   rÄ   rÕ   rÚ   rí   rð   rõ   rø   rý   rþ   r  r  r  r  r	  r  r	   r  r  r  r  r  r  r  r-  rÈ   r+  r3  r9  r;  r<  r=  r@  rA  rG  rJ  rK  Únetworkr   r)   ZDatetimeTZDtyperR  ra  rd  rc  r   rf  rh  ru  rv  rz  r}  r‚  r…  rŠ  r‹  rÌ   rŽ  r�  r”  Z
single_cpuÚtdZskip_if_not_us_localer˜  r�  rŸ  ÚsysÚmaxsizer¤  r¥  r¦  r§  ry   rw  r°  r³  r¹  rº  rÁ  rÃ  rÄ  r   Zrename_axisrÈ  rË  rÌ  rÍ  rÏ  rÐ  rÓ  rÕ  Úparamr×  rÜ  rÝ  rß  râ  rä  rç  rê  ró  rô  rõ  rö  rû  rü  rý  r   r   r   r   r   %   sì  




üþ	

&ÿÿ÷éþ"

úþ	`&


þþ
ùþ
ûþ

ûþ


þýþ	
ýþ
	
ýþ
		


!
 .ÿ& þ(þ  ÿü(þ þìþ	 (  ÿ öþ
üþ	þ
 
ÿÿýÿýõþ´þu	þÿþ
	þþþÿüìþ!r   )!r-  r   Údecimalr   rÊ   r   rË   rÏ   r  rd   r-   rN   Zpandas.compatr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr   Zpandasr)   r   r   r	   r
   r   Zpandas._testingZ_testingr   r   rx   Úfilterwarningsr   r   r   r   r   Ú<module>   s&   ÿ
