
    Owg}              
          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                  j                  d      Z e j                   d      Zd Ze j                  j'                  e d	      e j                  j)                  d
 ej*                  dd      df ej*                  ddd      dfg      d               Zd Zd Zd Zd Zy)    N)pa_version_under10p1)PeriodDtype)PeriodArrayperiod_arrayz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrowc                      ddl m}   | d      } | d      } | d      }|j                  dk(  sJ ||k(  sJ ||k7  sJ t        |      t        |      k(  sJ t        |      t        |      k7  sJ y )Nr   ArrowPeriodTypeDM)(pandas.core.arrays.arrow.extension_typesr
   freqhash)r
   p1p2p3s       c/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/period/test_arrow_compat.pytest_arrow_extension_typer      su    H		B		B		B77c>>8O88O88tBx8tBx    zWrong behavior with pyarrow 10)reasonz
data, freq2017   )periodsr   YE)r   r   zY-DECc                    ddl m} t        | |      }t        j	                  |      }t        |j                  |      sJ |j                  j                  |k(  sJ t        j	                  |j                  d      }|j                  j                  |      sJ t        j	                  |t        j                               }|j                  |      sJ d}t        j                  t        |      5  t        j	                  |d       d d d        t        j                  t        d	      5  t        j	                  | |d
             d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)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msgs          r   test_arrow_arrayr/   $   s#    I4d+GXXgFfkk?333;;t###xx7x3H>>  *** XXgBHHJX/F==""" BC	y	, *
y)* 
y(:	; 5
s345 5* *5 5s   3E.E!E!E*c                  P   ddl m}  t        g dd      }t        j                  |d<   t
        j                  |      }t        |j                  |       sJ |j                  j                  dk(  sJ t
        j                  g dd	
      }|j                  j                  |      sJ y )Nr   r	         r   	period[D]dtyper2   r   )r2   Nr   r   r   )r   r
   r   pdNaTr"   r#   r$   r   r   r&   r'   )r
   arrr,   r-   s       r   test_arrow_array_missingr:   C   s    H
i{
3CVVCFXXc]Ffkk?333;;s"""xx7x3H>>  ***r   c                  0   ddl m}  t        g dd      }t        j                  |d<   t        j
                  d|i      }t        j                  |      }t        |j                  d      j                  |       sJ |j                         }t        |d   j                  t              sJ t        j                  ||       t        j!                  ||g      }|j                         }t        j"                  ||gd	      }t        j                  ||       y )
Nr   r	   r1   r4   r5   r2   aT)ignore_index)r   r
   r   r7   r8   	DataFramer"   tabler$   fieldr   	to_pandasr6   r   tmassert_frame_equalconcat_tablesconcat)r
   r9   dfr?   r,   table2r-   s          r   test_arrow_table_roundtriprH   P   s    H
i{
3CVVCF	sCj	!BHHRLEekk#&++_===__FfSk''555&"%uen-FFyy"b5H&(+r   c                     ddl m}  t        g d      }t        j                  d|i      }t
        j                  |      }t        |j                  d      j                  |       sJ t
        j                  t
        j                  g |j                  d      j                        g|j                        }|j                         }t        |d   j                  t              sJ t!        j"                  ||       y )Nr   r	   r4   r5   r<   r   )schema)r   r
   r   r7   r>   r"   r?   r$   r@   r   chunked_arraycolumnrJ   rA   r6   r   rB   rC   )r
   r9   rF   r?   r,   s        r    test_arrow_load_from_zero_chunksrM   c   s     I
b
,C	sCj	!BHHRLEekk#&++_===HH			"5<<?#7#7		89%,,  E __FfSk''555&"%r   c                  z   t        g dd      } t        j                  | d<   t        j                  d| i      }t        j                  |      }|j                         }|j                  j                  J |j                         }t        |d   j                  t              sJ t        j                  ||       y )Nr1   z	period[h]r5   r2   r<   )r   r7   r8   r>   r"   r?   replace_schema_metadatarJ   metadatarA   r$   r6   r   rB   rC   )r9   rF   r?   r,   s       r   +test_arrow_table_roundtrip_without_metadatarQ   v   s    
i{
3CVVCF	sCj	!BHHRLE))+E<<  (((__FfSk''555&"%r   )r(   pandas.compat.pyarrowr   pandas.core.dtypes.dtypesr   pandasr7   pandas._testing_testingrB   pandas.core.arraysr   r   markfilterwarnings
pytestmarkimportorskipr"   r   xfailparametrize
date_ranger/   r:   rH   rM   rQ    r   r   <module>r`      s     6 1  
 [[''C

 V#  ++4TU	vq	)3/	vqt	4g>5 V5.
+,&&&&r   