Ë
    ¤eh  ã            
       ó.  — d dl Zd dlZd dlZd dlmZ ej                  j                  d«      Z
 ej                  d«      Zd dlmZ ej                  D � cg c]  }  ej                   g d¢| ¬«      ‘Œ c} Zeej$                  D � cg c]  }  ej                   g d¢| ¬«      ‘Œ c} z  Ze ej                   g d¢d	¬«      gz  Z ej&                  eeD �cg c]  }|j(                  j*                  ‘Œ c}¬
«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej&                  d„ «       Zd„ Zej                  j?                  dejA                  d«      ejC                  ejA                  d«      ejA                  d«      g«      g«      d„ «       Z"d„ Z#yc c} w c c} w c c}w )é    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                 ó   — | j                   S )zi
    Fixture returning parametrized array from given dtype, including integer,
    float and boolean
    )Úparam)Úrequests    új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/arrays/masked/test_arrow_compat.pyÚdatar      s   € ð �=‰=Ðó    c                 óú   — t         j                  | «      }t         j                  | j                  t        d ¬«      t         j	                  | j
                  j                  «      ¬«      }|j                  |«      sJ ‚y )N)Úna_value©Útype)ÚpaÚarrayÚto_numpyÚobjectÚfrom_numpy_dtyper	   Únumpy_dtypeÚequals)r   ÚarrÚexpecteds      r   Útest_arrow_arrayr       s^   € Ü
�(‰(�4‹.€CÜ�x‰xØ�‰”f tˆÓ,Ü× Ñ  §¡×!7Ñ!7Ó8ð ó €Hð �:‰:�hÔÐÑr   c                 ó^  — t        j                  d| i«      }t        j                  |«      }|j	                  d«      j
                  t        | j                  j                  «      k(  sJ ‚|j                  «       }|d   j                  | j                  k(  sJ ‚t        j                  ||«       y )NÚa)ÚpdÚ	DataFramer   ÚtableÚfieldr   Ústrr	   r   Ú	to_pandasÚtmÚassert_frame_equal©r   Údfr%   Úresults       r   Útest_arrow_roundtripr.   &   s…   € Ü	�‰�s˜D�kÓ	"€BÜ�H‰H�R‹L€EØ�;‰;�sÓ× Ñ ¤C¨¯
©
×(>Ñ(>Ó$?Ò?Ð?Ð?à�_‰_Ó€FØ�#‰;×Ñ §
¡
Ò*Ð*Ð*Ü×Ñ˜& "Õ%r   c                  ón  — d„ } t         j                  g d¢t         j                  «       ¬«      }t         j                  g d¢t         j                  «       ¬«      }t         j                  g d¢t         j	                  «       ¬«      }t         j
                  j                  |||gg d¢«      }|j                  | ¬«      }t        j                  g d¢d¬	«      }t        j                  g d¢d
¬	«      }t        j                  g d¢d
¬	«      }t        j                  |||dœ«      }	t        j                  ||	«       y )Nc                 óÐ   — t         j                  j                  | «      rt        j                  «       S t         j                  j                  | «      rt        j                  «       S y )N)r   ÚtypesÚ
is_booleanr#   ÚBooleanDtypeÚ
is_integerÚ
Int64Dtype)Ú
arrow_types    r   Útypes_mapperz<test_dataframe_from_arrow_types_mapper.<locals>.types_mapper1   sD   € Ü�8‰8×Ñ˜zÔ*Ü—?‘?Ó$Ð$Ü�X‰X× Ñ  Ô,Ü—=‘=“?Ð"ð -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_mapperrH   0   sà   € ò#ô —(‘(Ò.´R·X±X³Z�(Ó@€KÜ—‘š,¬R¯X©X«Z�Ó8€JÜ—x‘x¢
´·±³�xÓ;ÐÜ—>‘>×-Ñ-Ø	�jÐ"2Ð3Ò5Tó€Lð ×#Ñ#°Ð#Ó>€FÜ�I‰IÒ)°Ô;€EÜ�9‰9’\¨Ô1€DÜ—‘š:¨WÔ5€JÜ�|‰| e°TÈÑTÓU€HÜ×Ñ˜& (Õ+r   c                 ó  — t        j                  d| dd i«      }t        j                  |«      }|j	                  d«      j
                  t        | j                  j                  «      k(  sJ ‚t        j                  t        j                  g |j	                  d«      j
                  ¬«      g|j                  ¬«      }|j                  «       }|d   j                  | j                  k(  sJ ‚t        j                  ||«       y )Nr"   r   r   )Úschema)r#   r$   r   r%   r&   r   r'   r	   r   Úchunked_arrayrJ   r(   r)   r*   r+   s       r   Ú test_arrow_load_from_zero_chunksrL   E   sÎ   € ô 
�‰�s˜D  1˜IÐ&Ó	'€BÜ�H‰H�R‹L€EØ�;‰;�sÓ× Ñ ¤C¨¯
©
×(>Ñ(>Ó$?Ò?Ð?Ð?Ü�H‰HÜ	×	Ñ	˜" 5§;¡;¨sÓ#3×#8Ñ#8Ð	Ó	9Ð:À5Ç<Á<ð ó €Eð �_‰_Ó€FØ�#‰;×Ñ §
¡
Ò*Ð*Ð*Ü×Ñ˜& "Õ%r   c                  óÚ   — t        j                  «       } | j                  t        j	                  g d¢d¬«      «      }t        j                  g d¢d¬«      }t        j                  ||«       y )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_uintrS   S   sO   € ô �N‰NÓ€EØ×!Ñ!¤"§(¡(Ò+=ÀG (Ó"LÓM€FÜ�x‰xÒ*°(Ô;€Hä×#Ñ# F¨HÕ5r   c                 ó  — t        j                  d| i«      }t        j                  |«      }|j	                  dd «      j                  «       }|j                  dd  j                  d¬«      }t        j                  ||«       |j                  | d   «      }t        j                  |«      }|j	                  dd «      j                  «       }|j                  dd  j                  d¬«      }t        j                  ||«       y )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Ð   € ô 
�‰�s˜D�kÓ	"€BÜ�H‰H�R‹L€EØ�[‰[˜˜DÓ!×+Ñ+Ó-€FØ�w‰w�q�rˆ{×&Ñ&¨DÐ&Ó1€HÜ×Ñ˜& (Ô+ð �)‰)�D˜‘GÓ
€CÜ�H‰H�S‹M€EØ�[‰[˜˜DÓ!×+Ñ+Ó-€FØ�x‰x˜˜ˆ|×'Ñ'¨TÐ'Ó2€HÜ×Ñ˜& (Õ+r   c                 óô   — t        j                  | «      }t        j                  |«      }t        j	                  g d¢|¬«      }t        j                  g d¢|¬«      }t        j                  g d¢«      }||||fS )zt
    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_arraysrd   o   sg   € ô �x‰xÐ,Ó-€HÜ×!Ñ! (Ó+€Gô �x‰xš¨gˆxÓ6€Hô —(‘(š9¨HÔ5€KÜ—H‘HÒ6Ó7€MØ�X˜{¨MÐ9Ð9r   c                 óª  — | \  }}}}t        ||«      \  }}t        j                  |dd |«       t        j                  ||«       |j                  «       d   }|j                  «       d   }|j                  «       d   j	                  «       }	t
        j                  |	dz   «      }
t
        j                  j                  |j                  t        |«      ||
g|j                  ¬«      }|j                  «        t        ||«      \  }}t        j                  |dd |«       t        j                  ||«       d|j                  j                  dz  z  }t
        j                  ||	z   «      }t
        j                  d«      }t
        j                  j                  |j                  t        |«      ||g|j                  dz   ¬«      }|j                  «        t        ||«      \  }}t        j                  |dd |«       t        j                  ||«       t        j                  g |¬	«      }t        j                  g t        j                   ¬	«      }t
        j                  j                  |j                  d||g|j                  ¬«      }|j                  «        t        ||«      \  }}t        j                  |dd |«       t        j                  ||«       y)
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_equalrh   Ú
to_pybytesr   Ú	py_bufferÚArrayÚfrom_buffersr   Úlenri   ÚvalidateÚ	bit_widthr]   r   r>   )rd   r_   ra   rb   rc   r   ÚmaskÚmask_bufferÚdata_bufferÚdata_buffer_bytesÚdata_buffer_trailÚpa_array_trailri   Údata_buffer_offsetÚmask_buffer_offsetÚpa_array_offsetÚnp_expected_emptyÚmask_expected_emptys                     r   Ú$test_pyarrow_array_to_numpy_and_maskr   �   s}  € ð 6HÑ2€Hˆh˜ ]Ü0°¸8ÓD�J€Dˆ$Ü×Ñ  R a ¨+Ô6Ü×Ñ  mÔ4à×"Ñ"Ó$ QÑ'€KØ×"Ñ"Ó$ QÑ'€KØ ×(Ñ(Ó*¨1Ñ-×8Ñ8Ó:Ðô Ÿ™Ð%6¸Ñ%@ÓAÐÜ—X‘X×*Ñ*Ø�]‰]Ü�8‹}ØÐ/Ð0Ø�‰ð	 +ó €Nð ×ÑÔÜ0°ÀÓJ�J€Dˆ$Ü×Ñ  R a ¨+Ô6Ü×Ñ  mÔ4ð ˜Ÿ™×/Ñ/°1Ñ4Ñ5€FÜŸ™ fÐ/@Ñ&@ÓAÐÜŸ™ gÓ.ÐÜ—h‘h×+Ñ+Ø�]‰]Ü�8‹}Ø#Ð%7Ð8Ø�‰ Ñ"ð	 ,ó €Oð ×ÑÔÜ0°À(ÓK�J€Dˆ$Ü×Ñ  R a ¨+Ô6Ü×Ñ  mÔ4ô Ÿ™ ¨8Ô4ÐÜŸ(™( 2¬R¯X©XÔ6Ðä—h‘h×+Ñ+Ø�]‰]ØØ˜kÐ*Ø�‰ð	 ,ó €Oð ×ÑÔÜ0°À(ÓK�J€Dˆ$Ü×Ñ  R a Ð*;Ô<Ü×Ñ Ð&9Õ:r   r   é
   rN   é   c                 óš   — | j                   j                  |«      }|j                  «       j                  «       sJ ‚t	        |«      dk(  sJ ‚y )Nr€   )r	   rQ   ÚisnaÚallrq   )r   r   Úress      r   Útest_from_arrow_nullr†   À   s>   € ð �*‰*×
#Ñ
# CÓ
(€CØ�8‰8‹:�>‰>ÔÐÐÜˆs‹8�rŠ>Ð‰>r   c                 óâ   — t         j                  | «      j                  d«      }t        j                  t
        d ¬«      5  | j                  j                  |«       d d d «       y # 1 sw Y   y xY w)NÚstring)Úmatch)r   r   ÚcastÚpytestÚraisesÚ	TypeErrorr	   rQ   )r   r   s     r   Útest_from_arrow_type_errorrŽ   É   sS   € ô �(‰(�4‹.×
Ñ
˜hÓ
'€CÜ	�‰”y¨Ô	-ñ 'ð 	�
‰
×!Ñ! #Ô&÷'÷ 'ñ 'ús   Á A%Á%A.)$Ú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.   rH   rL   rS   r[   rd   r   ÚparametrizeÚnullsrK   r†   rŽ   )r	   r"   s   00r   ú<module>rŸ      s�  ðÛ Û ã Ý à�[‰[×'Ñ'ØCó€
ð €V×Ñ˜Ó#€å Qà>@×>RÑ>RÖ	S°Uˆ(ˆ"�(‰(’?¨%Ö
0Ò	S€Ø ÀR×EWÑEWÖ
X¸Eˆ8ˆ2�8‰8Ò)°Ö7Ò
XÑ X€Ø ˆ8ˆ2�8‰8Ò-°YÔ?Ð
@Ñ @€ð €‡��v¸&Ö#A°Q A§G¡G§L£LÒ#AÔBñó Cðò ò&ò,ò*&ò6ò,ð" ‡�ñ:ó ð:ò"<;ð~ ‡�×ÑØ	ˆB�H‰H�R‹L˜"×*Ñ*¨B¯H©H°Q«K¸¿¹À!»Ð+EÓFÐGóñóðó'ùòu 
TùÚ
Xùò $Bs   ÁFÂFÃF
