Ë
    ìmxi¥$  ã                   óª
  — d dl Z d dlZd dlmZ d dlZ	 d dlZd dl
Zd dlmc mZ  ej                  d„ «      Zej"                  j                   ej$                  ej&                  j(                  f¬«       ej*                   ej,                  ed¬«      «      d„ «       «       «       Zej"                  j                  ej"                  j1                  d ej2                  «       df ej4                  «       d	f ej6                  «       d
fg«      ej"                  j1                  d ej8                  «       df ej:                  «       d	f ej<                  «       d
f ej>                  «       dfg«      ej"                  j1                  d ej@                  «       d	df ejB                  «       d
df ejD                  «       ddfg«      ej"                  j1                  dg d¢«      ej"                  j1                  dg d¢«      ej"                  j1                  dddg«      d„ «       «       «       «       «       «       «       Z#d„ Z$d„ Z%ej"                  j1                  dddg«      d„ «       Z&ej"                  j1                  dddg«      d„ «       Z'ej"                  j1                  dddg«      ej"                  j1                  ddgg d¢«      d „ «       «       Z(ej"                  j1                  dddg«      ej"                  j1                  ddgg d¢«      d!„ «       «       Z)ej"                  jT                  ej"                  j1                  d" ej2                  «        ej4                  «        ej6                  «       g«      ej"                  j1                  d# ej8                  «        ej:                  «        ej<                  «        ej>                  «       g«      ej"                  j1                  d$ ej@                  «       df ejB                  «       df ejD                  «       dfg«      ej"                  j1                  dddg«      d%„ «       «       «       «       «       Z+ej"                  j1                  d# ej8                  «        ej:                  «        ej<                  «        ej>                  «       g«      ej"                  j1                  dddg«      d&„ «       «       Z,ej"                  j1                  d' ej8                  «       dd(f ej:                  «       d	d)f ej<                  «       d
d*f ej>                  «       dd+fg«      d,„ «       Z-y# e	$ r dZY �Œ9w xY w)-é    Nc                  óÌ   — t         j                  t         j                  z  t         j                  z  t         j                  z  t         j
                  z  t         j                  z  S ©N)ÚpastÚsigned_integer_typesÚunsigned_integer_typesÚfloating_typesÚ	bool_typeÚstring_typeÚlarge_string_type© ó    úf/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/interchange/test_interchange_spec.pyú<lambda>r       sZ   € Ü×!Ñ!Ü×#Ñ#ñ	$ä×Ññ	ô 	�‰ñ	ô 	×Ññ		ô
 	×Ññ	ð r   )Úsuppress_health_checké   ©Úsizec                 óZ  — t        j                  | gdg¬«      }|j                  «       }|j                  d«      j                  }|| j                  k(  sJ ‚t        |t        «      sJ ‚|j                  d«      j                  «       dk(  sJ ‚|j                  d«      j                  dk(  sJ ‚y )NÚa©Únamesr   r   )	ÚpaÚtableÚ__dataframe__Ú
get_columnÚ
null_countÚ
isinstanceÚintr   Úoffset)Úarrr   Údfr   s       r   Útest_dtypesr"   -   s™   € ô �H‰H�c�U 3 %Ô(€EØ	×	Ñ	Ó	€Bà—‘˜qÓ!×,Ñ,€JØ˜Ÿ™Ò'Ð'Ð'Ü�j¤#Ô&Ð&Ð&Ø�=‰=˜Ó× Ñ Ó" aÒ'Ð'Ð'Ø�=‰=˜Ó×"Ñ" aÒ'Ð'Ñ'r   zuint, uint_bwé   é   é    zint, int_bwé@   zfloat, float_bw, np_float_strÚfloat16Úfloat32Úfloat64Úunit)ÚsÚmsÚusÚnsÚtz)Ú zAmerica/New_Yorkz+07:30z-04:30Ú	use_batchFTc
                 óÊ  — ddl m }
 g d¢} |
ddd«       |
ddd«       |
ddd«      g}t        j                  t        j                  || ¬	«      t        j                  ||¬	«      t        j                  t	        j                  |t	        j
                  |«      ¬
«      |¬	«      g d¢g d¢t        j                  |t        j                  ||¬«      ¬	«      dœ«      }|	r|j                  «       d   }|j                  «       }dddddddœ}|j                  «       D ]a  \  }}|j                  |«      }|j                  dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j
                  d   |k(  rŒaJ ‚ |j                  d«      j
                  d   |k(  sJ ‚|j                  d«      j
                  d   |k(  sJ ‚|j                  d«      j
                  d   |k(  sJ ‚y )Nr   )Údatetime©é   é   r   i×  é   é   é   é   ©Útype©Údtype)TFT)r   r0   Úc)r/   )r   Úbr?   ÚdÚeÚfr5   r6   é   é   é   r   r   r@   r?   )r3   r   r   ÚarrayÚnpr>   Ú	timestampÚ
to_batchesr   ÚitemsÚget_column_by_namer   r   r   )ÚuintÚuint_bwr   Úint_bwÚfloatÚfloat_bwÚnp_float_strr*   r/   r1   Údtr    Údt_arrr   r!   ÚcolumnsÚcolumnÚkindÚcols                      r   Útest_mixed_dtypesrY   ;   s»  € õ< (Ú
€CÙ��q˜"‹o™r $¨¨2›±°4¸¸B³Ð@€FÜ�H‰Hä—‘˜# DÔ)Ü—‘˜# CÔ(Ü—‘œ"Ÿ(™( 3¬b¯h©h°|Ó.DÔEÈEÔRÚ$ÚÜ—‘˜&¤r§|¡|°D¸RÔ'@ÔAñ	
ó	€Eñ Ø× Ñ Ó" 1Ñ%ˆØ	×	Ñ	Ó	€Bð ˜A A¨B°R¸bÑA€GàŸ™›ò $‰ˆ�Ø×#Ñ# FÓ+ˆà�~‰~ Ò"Ð"Ð"Ø�x‰x‹z˜QŠÐˆØ�z‰z˜QŠÐˆØ�y‰y˜‰|˜tÓ#Ð#Ð#ð$ð × Ñ  Ó%×+Ñ+¨AÑ.°'Ò9Ð9Ð9Ø× Ñ  Ó%×+Ñ+¨AÑ.°&Ò8Ð8Ð8Ø× Ñ  Ó%×+Ñ+¨AÑ.°(Ò:Ð:Ñ:r   c                  óÒ   — t        j                  dg d¢i«      } | j                  «       }|j                  d«      }|j                  dk(  sJ ‚t        |j                  t        «      sJ ‚y )Nr   )g      ð?Ng       @r5   )r   r   r   rL   r   r   r   ©r   r!   rX   s      r   Útest_na_floatr\   {   sZ   € Ü�H‰H�cÒ+Ð,Ó-€EØ	×	Ñ	Ó	€BØ
×
Ñ
 Ó
$€CØ�>‰>˜QÒÐÐÜ�c—n‘n¤cÔ*Ð*Ñ*r   c                  óð   — t        j                  dg d¢i«      } | j                  «       }|j                  d«      }t	        j
                  t        d¬«      5  |j                   d d d «       y # 1 sw Y   y xY w)Nr   r4   z.*categorical.*)Úmatch)r   r   r   rL   ÚpytestÚraisesÚ	TypeErrorÚdescribe_categoricalr[   s      r   Útest_noncategoricalrc   ƒ   s`   € Ü�H‰H�cš9Ð%Ó&€EØ	×	Ñ	Ó	€BØ
×
Ñ
 Ó
$€CÜ	�‰”yÐ(9Ô	:ñ !Ø× Ò ÷!÷ !ñ !ús   ÁA,Á,A5c                 óL  — dd l }g d¢} |j                  d |j                  |«      j                  «       i«      }| r|j	                  «       d   }|j                  «       j                  d«      }|j                  }t        |d   t        «      sJ ‚t        |d   t        «      sJ ‚y )Nr   )	ÚMonÚTuere   ÚWedre   ÚThuÚFriÚSatNÚweekdayÚ
is_orderedÚis_dictionary)
Úpyarrowr   rG   Údictionary_encoderJ   r   rL   rb   r   Úbool)r1   r   r    r   rX   Úcategoricals         r   Útest_categoricalrr   ‹   s›   € ãÚ
H€CØˆB�H‰HØ	�H�B—H‘H˜S“M×3Ñ3Ó5Ð6ó€Eñ Ø× Ñ Ó" 1Ñ%ˆà
×
Ñ
Ó
×
2Ñ
2°9Ó
=€CØ×*Ñ*€KÜ�k ,Ñ/´Ô6Ð6Ð6Ü�k /Ñ2´DÔ9Ð9Ñ9r   c                 óž  — t        j                  g d¢g d¢g«      }t        j                  g d¢g d¢g«      }t        j                  ||gddg¬«      }| r!|j                  «       j	                  «       d   }|j                  «       }|j                  «       d	k(  sJ ‚|j                  «       d
k(  sJ ‚| r|j                  «       dk(  sJ ‚|j                  «       d	k(  sJ ‚t        |j                  «       «      ddgk(  sJ ‚t        |j                  d«      j                  «       «      t        |j                  d«      j                  «       «      k(  sJ ‚y )N)r6   r6   é   )rt   é   éd   )ÚFlamingoÚParrotÚCow)ÚHorsezBrittle starsÚ	CentipedeÚn_legsÚanimalsr   r   r6   é   r5   )r5   )r}   )r   Úchunked_arrayr   Úcombine_chunksrJ   r   Únum_columnsÚnum_rowsÚ
num_chunksÚlistÚcolumn_namesÚselect_columnsÚselect_columns_by_name)r1   Únr   r   r!   s        r   Útest_dataframer‰   ›   s6  € ä
×Ñš)¢[Ð1Ó2€AÜ
×ÑÒ7Ú@ðBó 	C€Aä�H‰H�a˜�V H¨iÐ#8Ô9€EÙØ×$Ñ$Ó&×1Ñ1Ó3°AÑ6ˆØ	×	Ñ	Ó	€Bà�>‰>Ó˜qÒ Ð Ð Ø�;‰;‹=˜AÒÐÐÙØ�}‰}‹ !Ò#Ð#Ð#à�}‰}‹ !Ò#Ð#Ð#Ü�—‘Ó!Ó" x°Ð&;Ò;Ð;Ð;Ü�×!Ñ! $Ó'×4Ñ4Ó6Ó7¼4Ø
×!Ñ! ,Ó/×<Ñ<Ó>ó<ò ð ñ r   r   Ún_chunks))é
   r   )é   r   )rŒ   ru   c                 ó"  — t        j                  dt        t        |«      «      i«      }| r|j	                  «       d   }|j                  «       }t        |j                  |«      «      }t        |«      |k(  sJ ‚t        d„ |D «       «      |k(  sJ ‚y )NÚxr   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )r‚   ©Ú.0Úchunks     r   ú	<genexpr>z%test_df_get_chunks.<locals>.<genexpr>º   s   è ø€ Ò4 Eˆu�~‰~×Ñ4ùó   ‚)	r   r   r„   ÚrangerJ   r   Ú
get_chunksÚlenÚsum©r1   r   rŠ   r   r!   Úchunkss         r   Útest_df_get_chunksr›   ±   s‚   € ô �H‰H�cœ4¤ d£Ó,Ð-Ó.€EÙØ× Ñ Ó" 1Ñ%ˆØ	×	Ñ	Ó	€BÜ�"—-‘- Ó)Ó*€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ4¨VÔ4Ó4¸Ò<Ð<Ñ<r   c                 ó@  — t        j                  dt        t        |«      «      i«      }| r|j	                  «       d   }|j                  «       }t        |j                  d«      j                  |«      «      }t        |«      |k(  sJ ‚t        d„ |D «       «      |k(  sJ ‚y )NrŽ   r   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   r   r�   s     r   r“   z)test_column_get_chunks.<locals>.<genexpr>Æ   s   è ø€ Ò0 ˆu�z‰z�|Ñ0ùr”   )
r   r   r„   r•   rJ   r   r   r–   r—   r˜   r™   s         r   Útest_column_get_chunksrž   ½   s�   € ô �H‰H�cœ4¤ d£Ó,Ð-Ó.€EÙØ× Ñ Ó" 1Ñ%ˆØ	×	Ñ	Ó	€BÜ�"—-‘- Ó"×-Ñ-¨hÓ7Ó8€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ0¨Ô0Ó0°DÒ8Ð8Ñ8r   rM   r   zfloat, np_float_strc                 óÒ  — g d¢ddgg}t        j                  g d¢t        j                  |«      ¬«      }t        j                  t        j
                  || ¬«      t        j
                  ||¬«      t        j                  ||¬«      dœ«      }|r!|j                  «       j                  «       d   }|j                  «       }|j                  «       D ],  }	|	j                  «       dk(  sJ ‚|	j                  «       d	k(  rŒ,J ‚ |j                  d«      j                  d   d	k(  sJ ‚|j                  d	«      j                  d   dk(  sJ ‚|j                  d
«      j                  d   d
k(  sJ ‚y )Nr4   rt   ru   )r5   r6   r   rt   ru   r=   r;   )r   r@   r?   r   r5   r6   )rH   rG   r>   r   r   r   r€   rJ   r   Úget_columnsr   rƒ   r   )
rM   r   rP   rR   r1   r    Ú	arr_floatr   r!   rX   s
             r   Útest_get_columnsr¢   É   s@  € ò  �q˜!�fÐ
€CÜ—‘š´·±¸Ó0FÔG€IÜ�H‰Hä×!Ñ! #¨DÔ1Ü×!Ñ! #¨CÔ0Ü—‘˜)¨%Ô0ñ	
ó€Eñ Ø×$Ñ$Ó&×1Ñ1Ó3°AÑ6ˆØ	×	Ñ	Ó	€BØ�~‰~Óò %ˆØ�x‰x‹z˜QŠÐˆØ�~‰~Ó 1Ó$Ð$Ð$ð%ð �=‰=˜Ó×!Ñ! !Ñ$¨Ò)Ð)Ð)Ø�=‰=˜Ó×!Ñ! !Ñ$¨Ò)Ð)Ð)Ø�=‰=˜Ó×!Ñ! !Ñ$¨Ò)Ð)Ñ)r   c                 óº  — g d¢}t        j                  dt        j                  || ¬«      i«      }|r|j                  «       d   }|j	                  «       }|j                  d«      }|j                  «       }|d   \  }}|j                  dkD  sJ ‚|j                  dk7  sJ ‚|j                  «       \  }	}
|d   dk(  sJ ‚|	dk(  r™|d   }t        j                  t        j                  t        j                  t        j                  dœ|   }t        |«      D ]C  \  }}|j!                  |j                  ||dz  z  z   «      j"                  }||k(  rŒ:J d	|› d
�«       ‚ y y )N)r   r5   éÿÿÿÿr   r;   r   Údatar5   )r#   r$   r%   r&   r#   zBuffer at index z	 mismatch)r   r   rG   rJ   r   r   Úget_buffersÚbufsizeÚptrÚ__dlpack_device__ÚctypesÚc_int8Úc_int16Úc_int32Úc_int64Ú	enumerateÚfrom_addressÚvalue)r   r1   r    r   r!   rX   ÚbufÚdataBufÚ	dataDtypeÚdeviceÚ_ÚbitwidthÚctypeÚidxÚtruthÚvals                   r   Útest_bufferr¼   ð   s]  € ò
 €CÜ�H‰H�cœ2Ÿ8™8 C¨cÔ2Ð3Ó4€EÙØ× Ñ Ó" 1Ñ%ˆØ	×	Ñ	Ó	€BØ
�-‰-˜Ó
€CØ
�/‰/Ó
€Cà˜V™Ñ€GˆYà�?‰?˜QÒÐÐØ�;‰;˜!ÒÐÐØ×)Ñ)Ó+�I€FˆAð �Q‰<˜1ÒÐÐà�‚{Ø˜Q‘<ˆä�}‰}Ü—‘Ü—‘Ü—‘ñ	
ð
 ñˆô $ C›.ò 	C‰JˆC�Ø×$Ñ$ W§[¡[°3¸(Àa¹-Ñ3HÑ%HÓI×OÑOˆCØ˜%“<ÐBÐ#3°C°5¸	Ð!BÓB�<ñ	Cð r   z indices_type, bitwidth, f_stringr?   r+   ÚiÚlc                 ól  — t        j                  | t        j                  «       «      }t        j                  g d¢|«      }t        j                  d|i«      }|j                  «       }|j                  d«      }|j                  d   dk(  sJ ‚|j                  d   |k(  sJ ‚|j                  d   |k(  sJ ‚y )N)r   r@   NrA   r   r   é   r5   r6   )r   Ú
dictionaryÚstringrG   r   r   r   r>   )Úindices_typer·   Úf_stringr<   r    r   r!   rX   s           r   Útest_categorical_dtyperÅ     s›   € ô �=‰=˜¤r§y¡y£{Ó3€DÜ
�(‰(Ò(¨$Ó
/€CÜ�H‰H�c˜3�ZÓ €Eà	×	Ñ	Ó	€BØ
�-‰-˜Ó
€CØ�9‰9�Q‰<˜2ÒÐÐØ�9‰9�Q‰<˜8Ò#Ð#Ð#Ø�9‰9�Q‰<˜8Ò#Ð#Ñ#r   ).rª   Ú
hypothesisÚhÚhypothesis.strategiesÚ
strategiesÚstr_   ÚnumpyrH   ÚImportErrorrn   r   Úpyarrow.tests.strategiesÚtestsr   ÚdeferredÚ	all_typesÚmarkÚsettingsÚHealthCheckÚtoo_slowÚgivenÚarraysr"   ÚparametrizeÚuint8Úuint16Úuint32Úint8Úint16Úint32Úint64r'   r(   r)   rY   r\   rc   rr   r‰   r›   rž   Úpandasr¢   r¼   rÅ   r   r   r   ú<module>rà      s  ðó$ Û Ý "ã ðÛó ß 'Ð 'ð ˆB�K‰Kñó	€	ð ‡�×ÑØ€‡� 1§=¡=×#9Ñ#9Ð";Ô<Ø€‡�ˆˆ�‰�Y QÔ	'Ó(ñ(ó )ó =ó ð(ð ‡�×ÑØ‡�×ÑØà	ˆ�‰‹�QˆØ	ˆ�‰‹�bÐØ	ˆ�‰‹�bÐðóð ‡�×ÑØØ	ˆ�‰‹�AˆØ	ˆ�‰‹�RÐØ	ˆ�‰‹�RÐØ	ˆ�‰‹�RÐð	óð ‡�×ÑØ#Ø	ˆ�‰‹�r˜9Ð%Ø	ˆ�‰‹�r˜9Ð%Ø	ˆ�‰‹�r˜9Ð%ð&óð ‡�×Ñ˜Ò!8Ó9Ø‡�×Ñ˜ÒKÓLØ‡�×Ñ˜ u¨d mÓ4ñ";ó 5ó Mó :óóóó ð6";òJ+ò!ð ‡�×Ñ˜ u¨d mÓ4ñ:ó 5ð:ð ‡�×Ñ˜ u¨d mÓ4ñó 5ðð* ‡�×Ñ˜ u¨d mÓ4Ø‡�×Ñ˜& *Ð-Ò/JÓKñ=ó Ló 5ð=ð ‡�×Ñ˜ u¨d mÓ4Ø‡�×Ñ˜& *Ð-Ò/JÓKñ9ó Ló 5ð9ð ‡�×ÑØ‡�×ÑØ
ˆXˆR�X‰X‹Z˜˜Ÿ™› i b§i¡i£kÐ2óð ‡�×ÑØ	ˆGˆB�G‰G‹I�x�r—x‘x“z 8 2§8¡8£:¨x¨r¯x©x«zÐ:óð ‡�×ÑØØ	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!ðóð ‡�×Ñ˜ u¨d mÓ4ñ*ó 5óóóó ð*ð0 ‡�×ÑØ	ˆGˆB�G‰G‹I�x�r—x‘x“z 8 2§8¡8£:¨x¨r¯x©x«zÐ:óð ‡�×Ñ˜ u¨d mÓ4ñCó 5óðCðB ‡�×ÑØ&Ø	ˆ�‰‹�A�sÐØ	ˆ�‰‹�R˜ÐØ	ˆ�‰‹�R˜ÐØ	ˆ�‰‹�R˜Ðð	)óñ	$óñ	$øðI ò Ø	ƒBðús   ”U ÕUÕU