o
    �¨Êh}  ã                
   @   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/env/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.    ÿ
þþ