
    Mh              
       "   S SK rS SKrS SKrS SKJr  \R                  R                  S5      r
\R                  " S5      rS SKJr  \R                   V s/ s H  n \R!                  / SQU S9PM     sn r\\R$                   V s/ s H  n \R!                  / SQU S9PM     sn -  r\\R                   " / SQS	S9/-  r\R&                  " \\ Vs/ s H  oR(                  R*                  PM     snS
9S 5       rS rS rS rS rS rS r\R&                  S 5       rS r\R                  R?                  S\RA                  S5      \RC                  \RA                  S5      \RA                  S5      /5      /5      S 5       r"S r#gs  sn f s  sn f s  snf )    Nz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrow)pyarrow_array_to_numpy_and_mask)         Ndtype)g?g?g333333?N)TFTNboolean)paramsidsc                     U R                   $ )z]
Fixture returning parametrized array from given dtype, including integer,
float and boolean
)param)requests    ^/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arrow_compat.pydatar      s     ==    c                     [         R                  U 5      n[         R                  U R                  [        S S9[         R	                  U R
                  R                  5      S9nUR                  U5      (       d   eg )N)na_valuetype)paarrayto_numpyobjectfrom_numpy_dtyper	   numpy_dtypeequals)r   arrexpecteds      r   test_arrow_arrayr       sa    
((4.Cxxft,  !7!78  H ::hr   c                 d   [         R                  " SU 05      n[        R                  U5      nUR	                  S5      R
                  [        U R                  R                  5      :X  d   eUR                  5       nUS   R                  U R                  :X  d   e[        R                  " X15        g )Na)pd	DataFramer   tablefieldr   strr	   r   	to_pandastmassert_frame_equalr   dfr%   results       r   test_arrow_roundtripr.   &   s    	sDk	"BHHRLE;;s  C

(>(>$????__F#;

***&%r   c                  H   S n [         R                  / SQ[         R                  5       S9n[         R                  / SQ[         R                  5       S9n[         R                  / SQ[         R	                  5       S9n[         R
                  R                  XU// SQ5      nUR                  U S9n[        R                  " / SQSS	9n[        R                  " / SQS
S	9n[        R                  " / SQS
S	9n[        R                  " XgUS.5      n	[        R                  " XY5        g )Nc                     [         R                  R                  U 5      (       a  [        R                  " 5       $ [         R                  R                  U 5      (       a  [        R                  " 5       $ g )N)r   types
is_booleanr#   BooleanDtype
is_integer
Int64Dtype)
arrow_types    r   types_mapper<test_dataframe_from_arrow_types_mapper.<locals>.types_mapper1   sJ    88z**??$$XX  ,,==?" -r   )TNFr   )r   Nr   )r      )boolsints
small_ints)r7   r
   r   Int64)r   r   bool_int64int8RecordBatchfrom_arraysr(   r#   Seriesr$   r)   r*   )
r7   bools_array
ints_arraysmall_ints_arrayrecord_batchr-   r;   r<   r=   r   s
             r   &test_dataframe_from_arrow_types_mapperrI   0   s    # ((.RXXZ(@K,RXXZ8Jxx
x;>>--	"235TL ###>FII);E99\1D:W5J||eTUH&+r   c                    [         R                  " SU SS 05      n[        R                  U5      nUR	                  S5      R
                  [        U R                  R                  5      :X  d   e[        R                  [        R                  / UR	                  S5      R
                  S9/UR                  S9nUR                  5       nUS   R                  U R                  :X  d   e[        R                  " X15        g )Nr"   r   r   )schema)r#   r$   r   r%   r&   r   r'   r	   r   chunked_arrayrK   r(   r)   r*   r+   s       r    test_arrow_load_from_zero_chunksrM   E   s     
sD1I&	'BHHRLE;;s  C

(>(>$????HH			"5;;s#3#8#8		9:5<<  E __F#;

***&%r   c                      [         R                  " 5       n U R                  [        R	                  / SQSS95      n[         R                  " / SQSS9n[
        R                  " X5        g )N)r   r   r      Nr@   r   UInt32r   )r#   UInt32Dtype__from_arrow__r   r   r)   assert_extension_array_equal)r	   r-   r   s      r   test_arrow_from_arrow_uintrT   S   sM     NNE!!"((+=G("LMFxx*(;H##F5r   c                    [         R                  " SU 05      n[        R                  U5      nUR	                  SS 5      R                  5       nUR                  SS  R                  SS9n[        R                  " X45        UR                  U S   5      n[        R                  U5      nUR	                  SS 5      R                  5       nUR                  SS  R                  SS9n[        R                  " X45        g )Nr"   r   T)dropr   )r#   r$   r   r%   slicer(   ilocreset_indexr)   r*   fillna)r   r,   r%   r-   r   df2s         r   test_arrow_slicedr\   ^   s     
sDk	"BHHRLE[[D!++-Fwwqr{&&D&1H&+ ))DG
CHHSME[[D!++-Fxx|''T'2H&+r   c                     [         R                  " U 5      n[        R                  U5      n[        R	                  / SQUS9n[         R                  " / SQUS9n[         R                  " / SQ5      nXXE4$ )zh
Fixture returning actual and expected dtype, pandas and numpy arrays and
mask from a given numpy dtype
)r   r   r   Nr   )r   r   r   r   )TTTF)npr	   r   r   r   )any_real_numpy_dtypenp_dtypepa_typepa_arraynp_expectedmask_expecteds         r   np_dtype_to_arraysre   o   sc     xx,-H!!(+G xxgx6H ((9H5KHH67M{99r   c                 ~   U u  pp4[        X!5      u  pV[        R                  " USS U5        [        R                  " Xd5        UR                  5       S   nUR                  5       S   nUR                  5       S   R	                  5       n	[
        R                  U	S-   5      n
[
        R                  R                  UR                  [        U5      Xz/UR                  S9nUR                  5         [        X5      u  pV[        R                  " USS U5        [        R                  " Xd5        SUR                  R                  S-  -  n[
        R                  X-   5      n[
        R                  S5      n[
        R                  R                  UR                  [        U5      X/UR                  S-   S9nUR                  5         [        X5      u  pV[        R                  " USS U5        [        R                  " Xd5        [        R                  " / US	9n[        R                  " / [        R                   S	9n[
        R                  R                  UR                  SXx/UR                  S9nUR                  5         [        X5      u  pV[        R                  " USS U5        [        R                  " UU5        g)
a  
Test conversion from pyarrow array to numpy array.

Modifies the pyarrow buffer to contain padding and offset, which are
considered valid buffers by pyarrow.

Also tests empty pyarrow arrays with non empty buffers.
See https://github.com/pandas-dev/pandas/issues/40896
Nr   r   r       )r   lengthbuffersoffset      r   )r   r)   assert_numpy_array_equalri   
to_pybytesr   	py_bufferArrayfrom_buffersr   lenrj   validate	bit_widthr^   r   r?   )re   r`   rb   rc   rd   r   maskmask_bufferdata_bufferdata_buffer_bytesdata_buffer_trailpa_array_trailrj   data_buffer_offsetmask_buffer_offsetpa_array_offsetnp_expected_emptymask_expected_emptys                     r   $test_pyarrow_array_to_numpy_and_maskr      sX    6H2H0DJDRa+64""$Q'K""$Q'K ((*1-88: %6%@AXX**]]8}0	 + N 0JJDRa+64 //145Ff&@Ag.hh++]]8}#8"	 , O 0KJDRa+64 84((2RXX6hh++]]*	 , O 0KJDRa*;<&9:r   r   
   rO      c                     U R                   R                  U5      nUR                  5       R                  5       (       d   e[	        U5      S:X  d   eg )Nr   )r	   rR   isnaallrr   )r   r   ress      r   test_from_arrow_nullr      sA     **
#
#C
(C88:>>s8r>>r   c                     [         R                  U 5      R                  S5      n[        R                  " [
        S S9   U R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nstring)match)r   r   castpytestraises	TypeErrorr	   rR   )r   r   s     r   test_from_arrow_type_errorr      sJ     ((4.

h
'C	y	- 	

!!#& 
.	-	-s   A##
A1)$numpyr^   r   pandasr#   pandas._testing_testingr)   markfilterwarnings
pytestmarkimportorskipr   %pandas.core.arrays.arrow._arrow_utilsr   ALL_INT_EA_DTYPESr   arraysFLOAT_EA_DTYPESfixturer	   namer   r    r.   rI   rM   rT   r\   re   r   parametrizenullsrL   r   r   )r	   r"   s   00r   <module>r      s      [[''C
 # Q>@>R>R	S>RU"((?%(
0>R	S REWEW
XEWE288)87EW
X X 288-Y?
@ @ v&#A&QGGLL&#AB C &,*&6," : :"<;~ 	BHHRL"**BHHQK!+EFG'u 
T
X $Bs   FFF
