Ë
    z�ht  ã                  óþ   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ er&d dl	Z
d dlZd dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ  G d„ dej,                  «      Z	 	 	 	 	 	 dd„Z G d„ d«      Z G d„ d«      Zy)é    )ÚannotationsN)ÚTYPE_CHECKING)ÚAny)ÚNoReturn)Úparse_version)ÚSelf©ÚInterchangeSeries)ÚDType)ÚDataFrameLike)ÚVersionc                  ó(   — e Zd ZdZdZdZdZdZdZdZ	y)	Ú	DtypeKindr   é   é   é   é   é   é   N)
Ú__name__Ú
__module__Ú__qualname__ÚINTÚUINTÚFLOATÚBOOLÚSTRINGÚDATETIMEÚCATEGORICAL© ó    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/narwhals/_interchange/dataframe.pyr   r      s%   „ à
€CØ€DØ€EØ€DØ€FØ€HØ�Kr!   r   c                ó  — |j                   }| d   t        j                  k(  rm| d   dk(  r|j                  «       S | d   dk(  r|j	                  «       S | d   dk(  r|j                  «       S | d   dk(  r|j                  «       S d}t        |«      ‚| d   t        j                  k(  rm| d   dk(  r|j                  «       S | d   dk(  r|j                  «       S | d   dk(  r|j                  «       S | d   dk(  r|j                  «       S d}t        |«      ‚| d   t        j                  k(  r=| d   dk(  r|j                  «       S | d   dk(  r|j                  «       S d	}t        |«      ‚| d   t        j                   k(  r|j#                  «       S | d   t        j$                  k(  r|j'                  «       S | d   t        j(                  k(  r|j+                  «       S | d   t        j,                  k(  r|j/                  «       S d
| › �}t        |«      ‚)Nr   r   é@   é    é   é   zInvalid bit width for INTzInvalid bit width for UINTzInvalid bit width for FLOATzInvalid dtype, got: )Údtypesr   r   ÚInt64ÚInt32ÚInt16ÚInt8ÚAssertionErrorr   ÚUInt64ÚUInt32ÚUInt16ÚUInt8r   ÚFloat64ÚFloat32r   ÚBooleanr   ÚStringr   ÚDatetimer   ÚCategorical)Úinterchange_dtypeÚversionr(   Úmsgs       r"   Ú'map_interchange_dtype_to_narwhals_dtyper;       s  € ð �^‰^€FØ˜ÑœyŸ}™}Ò,Ø˜QÑ 2Ò%Ø—<‘<“>Ð!Ø˜QÑ 2Ò%Ø—<‘<“>Ð!Ø˜QÑ 2Ò%Ø—<‘<“>Ð!Ø˜QÑ 1Ò$Ø—;‘;“=Ð Ø)ˆÜ˜SÓ!Ð!Ø˜ÑœyŸ~™~Ò-Ø˜QÑ 2Ò%Ø—=‘=“?Ð"Ø˜QÑ 2Ò%Ø—=‘=“?Ð"Ø˜QÑ 2Ò%Ø—=‘=“?Ð"Ø˜QÑ 1Ò$Ø—<‘<“>Ð!Ø*ˆÜ˜SÓ!Ð!Ø˜ÑœyŸ™Ò.Ø˜QÑ 2Ò%Ø—>‘>Ó#Ð#Ø˜QÑ 2Ò%Ø—>‘>Ó#Ð#Ø+ˆÜ˜SÓ!Ð!Ø˜ÑœyŸ~™~Ò-Ø�~‰~ÓÐØ˜Ñœy×/Ñ/Ò/Ø�}‰}‹ÐØ˜Ñœy×1Ñ1Ò1Ø�‰Ó Ð Ø˜Ñœy×4Ñ4Ò4à×!Ñ!Ó#Ð#Ø Ð!2Ð 3Ð
4€CÜ
˜Ó
Ðr!   c                  ó   — e Zd Zdd„Zdd„Zy)ÚWrapInterchangeFramec                ó   — || _         y ©N©Ú_interchange_frame)ÚselfÚinterchange_frames     r"   Ú__init__zWrapInterchangeFrame.__init__O   s
   € Ø"3ˆÕr!   c                ó   — | j                   S r?   r@   ©rB   s    r"   Ú__dataframe__z"WrapInterchangeFrame.__dataframe__R   s   € Ø×&Ñ&Ð&r!   N)rC   ÚInterchangeFrameÚreturnÚNone)rI   rH   )r   r   r   rD   rG   r    r!   r"   r=   r=   N   s   „ ó4ô'r!   r=   c                  óˆ   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	e
dd„«       Ze
dd	„«       Zdd
„Zdd„Z	 	 	 	 dd„Zy)rH   c                ó<   — |j                  «       | _        || _        y r?   )rG   rA   Ú_version)rB   Údfr9   s      r"   rD   zInterchangeFrame.__init__W   s   € Ø"$×"2Ñ"2Ó"4ˆÔØˆ�r!   c                óN   — | j                  t        | j                  «      |¬«      S )N©r9   )Ú	__class__r=   rA   )rB   r9   s     r"   Ú_with_versionzInterchangeFrame._with_version[   s(   € Ø�~‰~Ü  ×!8Ñ!8Ó9À7ð ó 
ð 	
r!   c                ó   — | S r?   r    rF   s    r"   Ú__narwhals_dataframe__z'InterchangeFrame.__narwhals_dataframe__`   s   € Øˆr!   c                ó   — d}t        |«      ‚)NzæCannot access native namespace for metadata-only dataframes with unknown backend.If you would like to see this kind of object supported in Narwhals, please open a feature request at https://github.com/narwhals-dev/narwhals/issues.©ÚNotImplementedError)rB   r:   s     r"   Ú__native_namespace__z%InterchangeFrame.__native_namespace__c   s   € ðYð 	ô
 " #Ó&Ð&r!   c                óh   — ddl m}  || j                  j                  |«      | j                  ¬«      S )Nr   r	   rP   )Únarwhals._interchange.seriesr
   rA   Úget_column_by_namerM   )rB   Únamer
   s      r"   Ú
get_columnzInterchangeFrame.get_columnk   s,   € ÝBá Ø×#Ñ#×6Ñ6°tÓ<ÀdÇmÁmô
ð 	
r!   c                ó¸   — dd l }t        |«      dk\  r/|j                  j                  j	                  | j
                  «      S d|j                  › �}t        |«      ‚)Nr   )r   é   r   znConversion to pandas is achieved via interchange protocol which requires pandas>=1.5.0 to be installed, found )Úpandasr   ÚapiÚinterchangeÚfrom_dataframerA   Ú__version__rW   )rB   Úpdr:   s      r"   Ú	to_pandaszInterchangeFrame.to_pandasr   sZ   € Ûä˜Ó 	Ò)Ø—6‘6×%Ñ%×4Ñ4°T×5LÑ5LÓMÐMð9Ø9;¿¹Ð8HðJð ô & cÓ*Ð*r!   c                ó2   — ddl m}  || j                  «      S )Nr   )rc   )Ú"pyarrow.interchange.from_dataframerc   rA   )rB   rc   s     r"   Úto_arrowzInterchangeFrame.to_arrow~   s   € õ	
ñ ˜d×5Ñ5Ó6Ð6r!   c           	     óÌ   — | j                   j                  «       D �ci c]<  }|t        | j                   j                  |«      j                  | j
                  «      “Œ> c}S c c}w r?   )rA   Úcolumn_namesr;   r[   ÚdtyperM   )rB   Úcolumn_names     r"   ÚschemazInterchangeFrame.schema…   sc   € ð  $×6Ñ6×CÑCÓEö
ð
 ð	 Ô@Ø×'Ñ'×:Ñ:¸;ÓG×MÑMØ—‘óñ ò
ð 	
ùò 
s   �AA!c                óH   — t        | j                  j                  «       «      S r?   )ÚlistrA   rk   rF   s    r"   ÚcolumnszInterchangeFrame.columns�   s   € ä�D×+Ñ+×8Ñ8Ó:Ó;Ð;r!   c                ó$   — d|› d�}t        |«      ‚)Nz
Attribute aG   is not supported for metadata-only dataframes.

Hint: you probably called `nw.from_native` on an object which isn't fully supported by Narwhals, yet implements `__dataframe__`. If you would like to see this kind of object supported in Narwhals, please open a feature request at https://github.com/narwhals-dev/narwhals/issues.rV   )rB   Úattrr:   s      r"   Ú__getattr__zInterchangeFrame.__getattr__“   s'   € à˜˜ð Bð Bð 	ô " #Ó&Ð&r!   c                óÊ   — | j                   j                  t        |«      «      }t        |d«      sd}t	        |«      ‚| j                  |j                  | j                  ¬«      S )NÚ_dfz›Expected interchange object to implement `_df` property to allow for recovering original object.
See https://github.com/data-apis/dataframe-api/issues/360.rP   )rA   Úselect_columns_by_namerp   ÚhasattrrW   rQ   rv   rM   )rB   rk   Úframer:   s       r"   Úsimple_selectzInterchangeFrame.simple_select�   sZ   € Ø×'Ñ'×>Ñ>¼tÀLÓ?QÓRˆÜ�u˜eÔ$ðMð ô & cÓ*Ð*Ø�~‰~˜eŸi™i°·±ˆ~Ó?Ð?r!   c                ó   — d}t        |«      ‚)Nzã`select`-ing not by name is not supported for interchange-only level.

If you would like to see this kind of object better supported in Narwhals, please open a feature request at https://github.com/narwhals-dev/narwhals/issues.rV   )rB   Úexprsr:   s      r"   ÚselectzInterchangeFrame.select§   s   € ð
Bð 	ô " #Ó&Ð&r!   N)rN   r   r9   r   rI   rJ   )r9   r   rI   r   )rI   r   )rI   r   )r\   ÚstrrI   r
   )rI   zpd.DataFrame)rI   zpa.Table)rI   zdict[str, DType])rI   z	list[str])rs   r~   rI   r   )rk   r~   rI   r   )r|   r~   rI   r   )r   r   r   rD   rR   rT   rX   r]   rf   ri   Úpropertyrn   rq   rt   rz   r}   r    r!   r"   rH   rH   V   so   „ ó ó
ó
ó'ó
ó
+ó7ð ò
ó ð
ð ò<ó ð<ó'ó@ð
'àð
'ð 
ô
'r!   rH   )r8   ztuple[DtypeKind, int, Any, Any]r9   r   rI   r   )Ú
__future__r   ÚenumÚtypingr   r   r   Únarwhals.utilsr   r`   re   ÚpyarrowÚpaÚtyping_extensionsr   rZ   r
   Únarwhals.dtypesr   Únarwhals.typingr   r   ÚIntEnumr   r;   r=   rH   r    r!   r"   ú<module>rŠ      ss   ðÝ "ã Ý  Ý Ý å (áÛÛÝ&å>Ý%Ý-Ý&ô�—‘ô ð+Ø6ð+ØAHð+à
ó+÷\'ñ '÷['ò ['r!   