U
    /e                  
   @   s   d dl Z d dlmZmZmZmZ d dlZd dlmZ	 d dl
Z
e
dZd dlmZmZ e
jje ddZe
jdd Zere	jne gZe
jeed	d
d Zdd Ze
jdde
jde
jje dddgdd ZdS )    N)datedatetimetime	timedeltapyarrow)PANDAS_GT_130PANDAS_GT_150z2No `pyarrow`-backed extension arrays are available)reasonc              	   C   s:  t r| j}nt }tj|rPddgd d g ddgd  d g ddg }ntj|rddgd d g ddgd  d g d	d
g }ntj|rddgd d g ddgd  d g ddg }n`tj|rddgd d g ddgd  d g ddg }n"tj	|rtt
dddt
dddgd d g t
dddt
dddgd  d g t
dddt
dddg }ntj|rtdddddddtdddddddgd d g tddddtddddgd  d g tdddtdddg }n2tj|rLtdtddgd d g tdtdgd  d g tdtdg }ntj|rtddtddgd d g tddtddgd  d g tddtddg }n|tj|rddgd d g ddgd  d g ddg }n@tj|r$dd gd d g d!d"gd  d g d#d$g }nttj|d% | d&S )'NTF   ,   g      ?g        g       g      g      ?g     X@   r   c      i  i        i  i
      ab12!>   a   b   1   2   !   >d   dtype)r   pyarrow_dtypepastringtypesZ
is_booleanZis_floatingZis_signed_integerZis_unsigned_integerZis_dater   Zis_timestampr   Zis_durationr   Zis_timer   	is_stringZ	is_binaryNotImplementedErrorpdarray)r#   Zpa_dtypedata r-   L/tmp/pip-unpacked-wheel-dbjnr7gq/dask/dataframe/tests/test_pyarrow_compat.pyr,      sz    0000*..r,   )paramsidsc                 C   s    t rtj| jdS tdS d S )N)r$   r   )r   r*   
ArrowDtypeparamStringDtype)requestr-   r-   r.   r#   M   s    r#   c                 C   sp   t | }|d}t|}t|}t|t|d ks@tt|}t	|| t|}t	|| d S )Nr      )
r*   SeriesheadpickledumpslenAssertionErrorloadstmassert_series_equal)r,   expectedexpected_slicedfull_pickledsliced_pickledresultresult_slicedr-   r-   r.   test_pickle_roundtripU   s    





rE   string_dtypestringdtypeZ
arrowdtypezRequires ArrowDtype)Zmarksc                 C   s   | dkrt d} nt t } t jtttd| d}|	d}t
|}t
|}t|t|d ksptt
|}t|| t
|}t|| d S )NrG   r   i  r"   r   r5   )r*   r3   r1   r%   r&   r6   mapstrranger7   r8   r9   r:   r;   r<   r=   r>   )rF   r?   r@   rA   rB   rC   rD   r-   r-   r.   4test_pickle_roundtrip_pyarrow_string_implementationse   s    




rK   )r8   r   r   r   r   Zpandasr*   Zpandas._testingZ_testingr=   ZpytestZimportorskipr%   Zdask.dataframe._compatr   r   markZskipifZ
pytestmarkZfixturer,   ZALL_PYARROW_DTYPESr&   ZPYARROW_TYPESrI   r#   rE   Zparametrizer2   rK   r-   r-   r-   r.   <module>   s4   
 
6

