a
    Pf}                  
   @   s   d dl Z d dlmZ d dlmZ d dlZd dlmZ	 d dl
mZmZ e jdZe dZdd Ze jje d	d
e jdejddddfejdddddfgdd Zdd Zdd Zdd Zdd ZdS )    N)pa_version_under10p1)PeriodDtype)PeriodArrayperiod_arrayz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningZpyarrowc                  C   sv   ddl m}  | d}| d}| d}|jdks2J ||ks>J ||ksJJ t|t|ks^J t|t|ksrJ d S )Nr   ArrowPeriodTypeDM)(pandas.core.arrays.arrow.extension_typesr   freqhash)r   p1Zp2Zp3 r   e/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/arrays/period/test_arrow_compat.pytest_arrow_extension_type   s    r   zWrong behavior with pyarrow 10)reasonz
data, freqZ2017   )periodsr   ZYE)r   r   zY-DECc                 C   s  ddl m} t| |d}t|}t|j|s2J |jj|ksBJ tj|jdd}|j	
|sbJ tj|t d}|
|sJ d}tjt|d tj|dd W d    n1 s0    Y  tjtd	d" tj||d
d W d    n1 s0    Y  d S )Nr   r   )r   int64typez5Not supported to convert PeriodArray to 'double' type)matchZfloat64zdifferent 'freq'T)r
   r   r   paarray
isinstancer   r   Zasi8storageequalsr   pytestZraises	TypeError)datar   r   r   resultexpectedmsgr   r   r   test_arrow_array$   s    	
,r$   c                  C   sv   ddl m}  tg ddd}tj|d< t|}t|j| s@J |jj	dksPJ tjg dd	d
}|j
|srJ d S )Nr   r         r   	period[D]dtyper&   r   )r&   Nr   r   r   )r
   r   r   pdNaTr   r   r   r   r   r   r   )r   arrr!   r"   r   r   r   test_arrow_array_missingC   s    

r.   c                  C   s   ddl m}  tg ddd}tj|d< td|i}t|}t|	dj
| sTJ | }t|d jtspJ t|| t||g}| }tj||gdd	}t|| d S )
Nr   r   r%   r(   r)   r&   aT)Zignore_index)r
   r   r   r+   r,   	DataFramer   tabler   fieldr   	to_pandasr*   r   tmassert_frame_equalZconcat_tablesconcat)r   r-   dfr1   r!   Ztable2r"   r   r   r   test_arrow_table_roundtripP   s    

r8   c                  C   s   ddl m}  tg dd}td|i}t|}t|dj	| sFJ tjtj
g |dj	dg|jd}| }t|d jtsJ t|| d S )Nr   r   r(   r)   r/   r   )schema)r
   r   r   r+   r0   r   r1   r   r2   r   Zchunked_arraycolumnr9   r3   r*   r   r4   r5   )r   r-   r7   r1   r!   r   r   r    test_arrow_load_from_zero_chunksc   s    
r;   c                  C   sv   t g ddd} tj| d< td| i}t|}| }|jjd u sJJ |	 }t
|d jtsfJ t|| d S )Nr%   z	period[h]r)   r&   r/   )r   r+   r,   r0   r   r1   Zreplace_schema_metadatar9   metadatar3   r   r*   r   r4   r5   )r-   r7   r1   r!   r   r   r   +test_arrow_table_roundtrip_without_metadatav   s    

r=   )r   Zpandas.compat.pyarrowr   Zpandas.core.dtypes.dtypesr   Zpandasr+   Zpandas._testingZ_testingr4   Zpandas.core.arraysr   r   markfilterwarningsZ
pytestmarkZimportorskipr   r   ZxfailZparametrizeZ
date_ranger$   r.   r8   r;   r=   r   r   r   r   <module>   s,   
