
    .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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          e/var/www/app/trading-bot/venv/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__5   s	    
r'   Nc                 8    | j                   j                  |      S r0   )r   __arrow_c_array__r1   requested_schemas     r%   r5   z#ArrowArrayWrapper.__arrow_c_array__8   s    zz++,<==r'   r0   )__name__
__module____qualname__r3   r5    r'   r%   r.   r.   4   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      }| s9|d   j                  t        j                  t        j                              |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   )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   sN    HH9?;<E\\$$U+F||)/BCH ,,R^^RVV-LM&(+ \\$$%7%>?F&(+ OOY8c
OKE\\$$U+F&(+\\$$%6u%=>F&(+ 
y(U	V H
io FGH H Hs   '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r'   