
    ^ei                     "   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y)    Npyarrowz14.0)min_versionc                    t        j                  g dg dd      }|j                         }t        j                  j                  t        j                  |      d      dk(  sJ t        j                  |      }| rt        j                         nt        j                         }t        j                  g dt        j                  g d|      d      }|j                  |      sJ t        j                  dt        j                         fdt        j                         fg      }t        j                  ||      }|j                  |      }|j                  |      sJ y )	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          ]/var/www/ceduoda/envi/lib/python3.12/site-packages/pandas/tests/frame/test_arrow_interface.pytest_dataframe_arrow_interfacer&      s   	IO<	=B##%G**W%'<	
 		 HHRLE'9"//#ryy{Kxxibhh.TUVH<<!!!YYbggi(3		*<=>FHHRH'E}}V$H<<!!!    z15.0c                    t        j                  g dg dd      }t        j                  j	                  |      j                         }| rt        j                         nt        j                         }t        j                  g dt        j                  g d|      d      }|j                  |      sJ t        j                  dt        j                         fdt        j                         fg      }t        j                  j	                  ||      j                         }|j                  |      }|j                  |      sJ y )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,   $   s    	IO<	=B  ,,R099;E'9"//#ryy{Kxxibhh.TUVH<<!!!YYbggi(3		*<=>F  ,,R,?HHJE}}V$H<<!!!r'   c                       e Zd Zd ZddZy)ArrowArrayWrapperc                     || _         y N)r   )selfbatchs     r%   __init__zArrowArrayWrapper.__init__4   s	    
r'   Nc                 8    | j                   j                  |      S r0   )r   __arrow_c_array__r1   requested_schemas     r%   r5   z#ArrowArrayWrapper.__arrow_c_array__7   s    zz++,<==r'   r0   )__name__
__module____qualname__r3   r5    r'   r%   r.   r.   3   s    >r'   r.   c                       e Zd Zd ZddZy)ArrowStreamWrapperc                     || _         y r0   )stream)r1   r   s     r%   r3   zArrowStreamWrapper.__init__<   s	    r'   Nc                 8    | j                   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         j                  g dg dd      } t        j                  j	                  |       }t        j                  g dg dd      }t        j                  ||       t        j                  j	                  t        |             }t        j                  ||       t         j                  g dg dgddg      }t        j                  j	                  |       }t        j                  ||       t        j                  j	                  t        |            }t        j                  ||       t        j                  t        d      5  t        j                  j	                  g dg dd       d d d        y # 1 sw Y   y xY w)	Nr   r
   r   r   r   )namesz+Expected an Arrow-compatible tabular object)match)r   r   r   r   
from_arrowtmassert_frame_equalr=   record_batchr.   pytestraises	TypeError)r   resultr$   r2   s       r%   test_dataframe_from_arrowrL   C   s&    HH9?;<E\\$$U+F||)/BCH&(+ \\$$%7%>?F&(+ OOY8c
OKE\\$$U+F&(+\\$$%6u%=>F&(+ 
y(U	V H
io FGH H Hs   'F		F)r   rH   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   pandas._testing_testingrE   importorskipr   
skip_if_nor&   r,   r.   r=   rL   r;   r'   r%   <module>rV      s      ) )  V# yf-" .", yf-" ."> >@ @ yf-H .Hr'   