Ë
    ¤ehÙ  ã                   óŠ  — d Z ddlZddlZddlZddlZej                  d„ «       Zej                  j                  dddgddgd	œg d
¢g d¢d	œg d¢g d¢dœgg d¢¬«      d„ «       Z
d„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  ddgg d¢«      d„ «       Zej                  j                  ddgg d¢«      d„ «       Zd„ Zd„ Zy)ze
A verbatim copy (vendored) of the spec tests.
Taken from https://github.com/data-apis/dataframe-api
é    Nc                  ó   — dd„} | S )Nc                 óV   — t        j                  | «      }|r|j                  d«      S |S )NÚcategory)ÚpdÚ	DataFrameÚastype)ÚdctÚis_categoricalÚdfs      úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/interchange/test_spec_conformance.pyÚmakerzdf_from_dict.<locals>.maker   s&   € Ü�\‰\˜#ÓˆÙ(6ˆr�y‰y˜Ó$Ð>¸BÐ>ó    )F© )r   s    r   Údf_from_dictr      s   € ó?ð €Lr   Ú	test_dataÚfooÚbarÚbazÚqux©ÚaÚb©g      ø?ç      @ç      @©gffffff"@g      %@gš™™™™™'@)é   é   é   é   )ÚAÚB)Ústr_dataÚ
float_dataÚint_data)Úidsc                 ó†  — t        | j                  «       «      } || «      }|j                  «       }t        | |d      «      }|D ]z  }|j	                  |«      j
                  }|dk(  sJ ‚t        |t        «      sJ ‚|j	                  |«      j                  «       |k(  sJ ‚|j	                  |«      j                  dk(  rŒzJ ‚ y )Nr   )
ÚlistÚkeysÚ__dataframe__ÚlenÚget_column_by_nameÚ
null_countÚ
isinstanceÚintÚsizeÚoffset)r   r   Úcolumnsr   ÚdfXÚcolumn_sizeÚcolumnr-   s           r   Útest_only_one_dtyper6      sÂ   € ô �9—>‘>Ó#Ó$€GÙ	�iÓ	 €BØ
×
Ñ
Ó
€Cä�i ¨¡
Ñ+Ó,€KØò :ˆØ×+Ñ+¨FÓ3×>Ñ>ˆ
Ø˜QŠÐˆÜ˜*¤cÔ*Ð*Ð*Ø×%Ñ% fÓ-×2Ñ2Ó4¸ÒCÐCÐCØ×%Ñ% fÓ-×4Ñ4¸Ó9Ð9Ð9ñ:r   c           	      óÒ  —  | g d¢g d¢g d¢g d¢g d¢g d¢dœ«      }|j                  «       }ddd	dd
ddœ}|j                  «       D ]}  \  }}|j                  |«      }|j                  dk(  sJ ‚t	        |j                  t
        «      sJ ‚|j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j                  d   |k(  rŒ}J ‚ |j                  d«      j                  d   dk(  sJ ‚y )N©r   r   r   )r   r    é   r   )é	   é
   é   )TFT)r   Ú Úc)r   r   r>   ÚdÚeÚfr   r   é   é   r   r>   r   é@   )	r*   Úitemsr,   r-   r.   r/   r0   r1   Údtype)r   r   r3   r2   r5   ÚkindÚcolXs          r   Útest_mixed_dtypesrI   -   sø   € Ù	âÚÚ ÚÚ$Úñ	
ó	
€Bð ×
Ñ
Ó
€Cð ˜A A¨A°B¸RÑ@€GàŸ™›ò %‰ˆ�Ø×%Ñ% fÓ-ˆØ�‰ !Ò#Ð#Ð#Ü˜$Ÿ/™/¬3Ô/Ð/Ð/Ø�y‰y‹{˜aÒÐÐØ�{‰{˜aÒÐÐà�z‰z˜!‰} Ó$Ð$Ð$ð%ð ×!Ñ! #Ó&×,Ñ,¨QÑ/°2Ò5Ð5Ñ5r   c                 óÖ   —  | ddt         j                  dgi«      }|j                  «       }|j                  d«      }|j                  dk(  sJ ‚t        |j                  t        «      sJ ‚y )Nr   g      ð?g       @r   )ÚmathÚnanr*   r,   r-   r.   r/   ©r   r   r3   rH   s       r   Útest_na_floatrN   J   s`   € Ù	�s˜S¤$§(¡(¨CÐ0Ð1Ó	2€BØ
×
Ñ
Ó
€CØ×!Ñ! #Ó&€DØ�?‰?˜aÒÐÐÜ�d—o‘o¤sÔ+Ð+Ñ+r   c                 óÖ   —  | 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   r8   z.*categorical.*)Úmatch)r*   r,   ÚpytestÚraisesÚ	TypeErrorÚdescribe_categoricalrM   s       r   Útest_noncategoricalrU   R   s\   € Ù	�sšIÐ&Ó	'€BØ
×
Ñ
Ó
€CØ×!Ñ! #Ó&€DÜ	�‰”yÐ(9Ô	:ñ "Ø×!Ò!÷"÷ "ñ "ús   Á	AÁA(c                 óÊ   —  | dg d¢id¬«      }|j                  «       j                  d«      }|j                  }t        |d   t        «      sJ ‚t        |d   t        «      sJ ‚y )NÚweekday)	ÚMonÚTuerX   ÚWedrX   ÚThuÚFriÚSatÚSunT)r
   Ú
is_orderedÚis_dictionary)r*   r,   rT   r.   Úbool)r   r   rH   Úcategoricals       r   Útest_categoricalrc   Z   sh   € Ù	Ø	ÒSÐTØô
€Bð
 ×ÑÓ×0Ñ0°Ó;€DØ×+Ñ+€KÜ�k ,Ñ/´Ô6Ð6Ð6Ü�k /Ñ2´DÔ9Ð9Ñ9r   c                 ó¬  —  | g d¢g d¢g d¢dœ«      }|j                  «       }|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚t	        |j                  «       «      g d¢k(  sJ ‚t	        |j                  d«      j                  «       «      t	        |j                  d«      j                  «       «      k(  sJ ‚y )	N)TTF)r   r   r   r   )ÚxÚyÚzr   r   )r   r   )re   rg   )r*   Únum_columnsÚnum_rowsÚ
num_chunksr(   Úcolumn_namesÚselect_columnsÚselect_columns_by_name)r   r   r3   s      r   Útest_dataframern   f   sÊ   € Ù	Ú!ª	Ò8IÑJó
€Bð ×
Ñ
Ó
€Cà�?‰?Ó Ò!Ð!Ð!Ø�<‰<‹>˜QÒÐÐØ�>‰>Ó˜qÒ Ð Ð Ü�× Ñ Ó"Ó#¢Ò6Ð6Ð6Ü�×"Ñ" 6Ó*×7Ñ7Ó9Ó:¼dØ×"Ñ" :Ó.×;Ñ;Ó=ó?ò ð ñ r   r0   Ún_chunks))r;   r   )é   r   )rp   r9   c                 óÞ   —  |dt        t        | «      «      i«      }|j                  «       }t        |j                  |«      «      }t	        |«      |k(  sJ ‚t        d„ |D «       «      | k(  sJ ‚y )Nre   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)ri   ©Ú.0Úchunks     r   ú	<genexpr>z%test_df_get_chunks.<locals>.<genexpr>{   s   è ø€ Ò4 Eˆu�~‰~×Ñ4ùó   ‚)r(   Úranger*   Ú
get_chunksr+   Úsum©r0   ro   r   r   r3   Úchunkss         r   Útest_df_get_chunksr~   u   sf   € á	�sœD¤ t£Ó-Ð.Ó	/€BØ
×
Ñ
Ó
€CÜ�#—.‘. Ó*Ó+€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ4¨VÔ4Ó4¸Ò<Ð<Ñ<r   c                 óü   —  |dt        t        | «      «      i«      }|j                  «       }t        |j                  d«      j	                  |«      «      }t        |«      |k(  sJ ‚t        d„ |D «       «      | k(  sJ ‚y )Nre   r   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrs   )r0   rt   s     r   rw   z)test_column_get_chunks.<locals>.<genexpr>„   s   è ø€ Ò0 ˆu�z‰z�|Ñ0ùrx   )r(   ry   r*   Ú
get_columnrz   r+   r{   r|   s         r   Útest_column_get_chunksr‚   ~   sq   € á	�sœD¤ t£Ó-Ð.Ó	/€BØ
×
Ñ
Ó
€CÜ�#—.‘. Ó#×.Ñ.¨xÓ8Ó9€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ0¨Ô0Ó0°DÒ8Ð8Ñ8r   c                 óL  —  | ddgddg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 ‚y )Nr   r   r   r   r   r   )r*   Úget_columnsr0   rj   r�   rF   rM   s       r   Útest_get_columnsr…   ‡   s¬   € Ù	˜Q ˜F¨#¨s¨Ñ4Ó	5€BØ
×
Ñ
Ó
€CØ—‘Ó!ò &ˆØ�y‰y‹{˜aÒÐÐØ�‰Ó  AÓ%Ð%Ð%ð&ð
 �>‰>˜!Ó×"Ñ" 1Ñ%¨Ò*Ð*Ð*Ø�>‰>˜!Ó×"Ñ" 1Ñ%¨Ò*Ð*Ñ*r   c                 óL  — g d¢} | d|i«      }|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   r   éÿÿÿÿr   r   Údatar   )é   é   é    rD   r‰   zBuffer at index z	 mismatch)r*   r�   Úget_buffersÚbufsizeÚptrÚ__dlpack_device__ÚctypesÚc_int8Úc_int16Úc_int32Úc_int64Ú	enumerateÚfrom_addressÚvalue)r   Úarrr   r3   rH   ÚbufXÚdataBufÚ	dataDtypeÚdeviceÚ_ÚbitwidthÚctypeÚidxÚtruthÚvals                  r   Útest_bufferr£   “   s7  € Ú
€CÙ	�s˜C�jÓ	!€BØ
×
Ñ
Ó
€CØ�>‰>˜!Ó€DØ×ÑÓ€Dà˜f™Ñ€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   )Ú__doc__r�   rK   rQ   Úpandasr   Úfixturer   ÚmarkÚparametrizer6   rI   rN   rU   rc   rn   r~   r‚   r…   r£   r   r   r   ú<module>r©      s  ðñó Û ã ã ð ‡�ñó ðð ‡�×ÑØà�eˆn E¨5 >Ñ2ÚÒ$5Ñ6Ú¢Ñ.ðò
 	/ð ó ñ:óð:ò6ò:,ò"ò	:òð ‡�×Ñ˜& *Ð-Ò/JÓKñ=ó Lð=ð ‡�×Ñ˜& *Ð-Ò/JÓKñ9ó Lð9ò	+óCr   