o
    ŀg}                  
   @   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:DeprecationWarningpyarrowc                  C   sv   ddl m}  | d}| d}| d}|jdksJ ||ksJ ||ks%J t|t|ks/J t|t|ks9J d S )Nr   ArrowPeriodTypeDM)(pandas.core.arrays.arrow.extension_typesr   freqhash)r   p1p2p3 r   `/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/arrays/period/test_arrow_compat.pytest_arrow_extension_type   s   r   zWrong behavior with pyarrow 10)reasonz
data, freq2017   )periodsr	   YE)r   r   zY-DECc                 C   s  ddl m} t| |d}t|}t|j|sJ |jj|ks!J tj|jdd}|j	
|s1J tj|t d}|
|sAJ d}tjt|d tj|dd W d    n1 s\w   Y  tjtd	d tj||d
d W d    d S 1 s}w   Y  d S )Nr   r   )r   int64typez5Not supported to convert PeriodArray to 'double' type)matchfloat64zdifferent 'freq'T)r   r   r   paarray
isinstancer   r   asi8storageequalsr   pytest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s(J tjg dd	d
}|j
|s9J 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   

r6   c                  C   s   ddl m}  tg ddd}tj|d< td|i}t|}t|	dj
| s*J | }t|d jts8J t|| t||g}| }tj||gdd	}t|| d S )
Nr   r   r-   r0   r1   r.   aT)ignore_index)r   r   r   r3   r4   	DataFramer   tabler!   fieldr   	to_pandasr2   r   tmassert_frame_equalconcat_tablesconcat)r   r5   dfr:   r)   table2r*   r   r   r   test_arrow_table_roundtripP   s   

rC   c                  C   s   ddl m}  tg dd}td|i}t|}t|dj	| s#J tjtj
g |dj	dg|jd}| }t|d jtsCJ t|| d S )Nr   r   r0   r1   r7   r   )schema)r   r   r   r3   r9   r   r:   r!   r;   r   chunked_arraycolumnrD   r<   r2   r   r=   r>   )r   r5   rA   r:   r)   r   r   r    test_arrow_load_from_zero_chunksc   s   
rG   c                  C   sv   t g ddd} tj| d< td| i}t|}| }|jjd u s%J |	 }t
|d jts3J t|| d S )Nr-   z	period[h]r1   r.   r7   )r   r3   r4   r9   r   r:   replace_schema_metadatarD   metadatar<   r!   r2   r   r=   r>   )r5   rA   r:   r)   r   r   r   +test_arrow_table_roundtrip_without_metadatav   s   

rJ   )r%   pandas.compat.pyarrowr   pandas.core.dtypes.dtypesr   pandasr3   pandas._testing_testingr=   pandas.core.arraysr   r   markfilterwarnings
pytestmarkimportorskipr   r   xfailparametrize
date_ranger,   r6   rC   rG   rJ   r   r   r   r   <module>   s.    
