
    ^i                     :   d dl Z d dlZd dlZd dlmc mZ d dlZ	d dl
mZ  ej        d          Z ej        dd          d             Z ej        dd          d             Z G d d	          Z G d
 d          Z ej        dd          d             ZdS )    Npyarrowz14.0)min_versionc                 >   t          j        g dg dd          }|                                }t          j                            t          j        |          d          dk    sJ t                              |          }| rt          	                                nt          
                                }t                              g dt                              g d|          d          }|                    |          sJ t                              dt                                          fdt          
                                fg          }t                              ||          }|                    |          }|                    |          sJ d S )	N         abcr   r   s   arrow_array_streamr   r   r   schema)pd	DataFrame__arrow_c_stream__ctypes	pythonapiPyCapsule_IsValid	py_objectpatablelarge_stringstringarrayequalsr   int8cast)using_infer_stringdfcapsuler   string_typeexpectedr   s          R/usr/local/lib/python3.11/dist-packages/pandas/tests/frame/test_arrow_interface.pytest_dataframe_arrow_interfacer&      s_   	IIIOOO<<	=	=B##%%G**W%%'<	
 	
 	 	 	 	 HHRLLE'9J"//###ryy{{Kxxiiibhh.T.TUUVVH<<!!!!!YYbggii(3		*<=>>FHHRH''E}}V$$H<<!!!!!!!    z15.0c                    t          j        g dg dd          }t          j                            |                                          }| rt                                          nt                                          }t                              g dt          	                    g d|          d          }|
                    |          sJ t                              dt                                          fdt                                          fg          }t          j                            ||                                          }|                    |          }|
                    |          sJ d S )Nr   r
   r   r   r   r   )r   r   r   RecordBatchReaderfrom_streamread_allr   r   r   r   r   r   r   r   )r    r!   r   r#   r$   r   s         r%   test_dataframe_to_arrowr,   %   s1   	IIIOOO<<	=	=B ,,R0099;;E'9J"//###ryy{{Kxxiiibhh.T.TUUVVH<<!!!!!YYbggii(3		*<=>>F ,,R,??HHJJE}}V$$H<<!!!!!!!r'   c                       e Zd Zd ZddZdS )ArrowArrayWrapperc                     || _         d S N)r   )selfbatchs     r%   __init__zArrowArrayWrapper.__init__5   s    


r'   Nc                 6    | j                             |          S r0   )r   __arrow_c_array__r1   requested_schemas     r%   r5   z#ArrowArrayWrapper.__arrow_c_array__8   s    z++,<===r'   r0   )__name__
__module____qualname__r3   r5    r'   r%   r.   r.   4   s7          > > > > > >r'   r.   c                       e Zd Zd ZddZdS )ArrowStreamWrapperc                     || _         d S r0   )stream)r1   r   s     r%   r3   zArrowStreamWrapper.__init__=   s    r'   Nc                 6    | j                             |          S r0   )r?   r   r6   s     r%   r   z%ArrowStreamWrapper.__arrow_c_stream__@   s    {--.>???r'   r0   )r8   r9   r:   r3   r   r;   r'   r%   r=   r=   <   s=          @ @ @ @ @ @r'   r=   c                    t                               g dg dd          }t          j                            |          }t          j        g dg dd          }| s;|d                             t          j        t          j                            |d<   t          j
        ||           t          j                            t          |                    }t          j
        ||           t                               g dg dgddg          }t          j                            |          }t          j
        ||           t          j                            t          |                    }t          j
        ||           t          j        t           d	          5  t          j                            g dg dd           d d d            d S # 1 swxY w Y   d S )
Nr   r
   r   r   )na_valuer   )namesz+Expected an Arrow-compatible tabular object)match)r   r   r   r   
from_arrowastypeStringDtypenpnantmassert_frame_equalr=   record_batchr.   pytestraises	TypeError)r    r   resultr$   r2   s        r%   test_dataframe_from_arrowrQ   D   s	    HH999???;;<<E\$$U++F|)))///BBCCH N ,,R^RV-L-L-LMM&(+++ \$$%7%>%>??F&(+++ OOYYY8c
OKKE\$$U++F&(+++\$$%6u%=%=>>F&(+++ 
y(U	V	V	V H H
iiiooo F FGGGH H H H H H H H H H H H H H H H H Hs   #'GGG)r   numpyrH   rM   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   pandas._testing_testingrJ   importorskipr   
skip_if_nor&   r,   r.   r=   rQ   r;   r'   r%   <module>r\      s\         ) ) ) ) ) ) ) ) )          V## yf---" " .-", yf---" " .-"> > > > > > > >@ @ @ @ @ @ @ @ yf---H H .-H H Hr'   