§
    Šhþh’  ã                  óÖ   — d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 er"d dl
Zd dlZd dlmZ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dd„ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚNoReturn)ÚVersionÚparse_version)ÚSelfÚTypeIs©ÚInterchangeSeries)ÚDType)ÚDataFrameLikec                  ó*   — e Zd ZdZdZdZdZdZdZdZ	dS )	Ú	DtypeKindr   é   é   é   é   é   é   N)
Ú__name__Ú
__module__Ú__qualname__ÚINTÚUINTÚFLOATÚBOOLÚSTRINGÚDATETIMEÚCATEGORICAL© ó    úV/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_interchange/dataframe.pyr   r      s1   € € € € € à
€CØ€DØ€EØ€DØ€FØ€HØ€K€K€Kr"   r   Úinterchange_dtypeútuple[DtypeKind, int, Any, Any]Úreturnr   c                ó  — t           j        j        }| d         t          j        k    r‘| d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S d}t          |¦  «        ‚| d         t          j
        k    r‘| d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S d}t          |¦  «        ‚| d         t          j        k    rQ| d         dk    r|                     ¦   «         S | d         dk    r|                     ¦   «         S d	}t          |¦  «        ‚| d         t          j        k    r|                     ¦   «         S | d         t          j        k    r|                     ¦   «         S | d         t          j        k    r|                     ¦   «         S | d         t          j        k    r|                     ¦   «         S d
| › �}t          |¦  «        ‚)Nr   r   é@   é    é   é   zInvalid bit width for INTzInvalid bit width for UINTzInvalid bit width for FLOATzInvalid dtype, got: )r   ÚV1Údtypesr   r   ÚInt64ÚInt32ÚInt16ÚInt8ÚAssertionErrorr   ÚUInt64ÚUInt32ÚUInt16ÚUInt8r   ÚFloat64ÚFloat32r   ÚBooleanr   ÚStringr   ÚDatetimer    ÚCategorical)r$   r-   Úmsgs      r#   Ú'map_interchange_dtype_to_narwhals_dtyper>      sT  € õ ŒZÔ€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à×!Ò!Ñ#Ô#Ð#Ø
4Ð!2Ð
4Ð
4€CÝ
˜Ñ
Ô
Ðr"   c                  ó”   — e Zd Zej        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dS )(ÚInterchangeFrameÚdfr   r&   ÚNonec                ó8   — |                      ¦   «         | _        d S ©N)Ú__dataframe__Ú_interchange_frame)ÚselfrA   s     r#   Ú__init__zInterchangeFrame.__init__N   s   € Ø"$×"2Ò"2Ñ"4Ô"4ˆÔÐÐr"   r	   c                ó   — | S rD   r!   ©rG   s    r#   Ú__narwhals_dataframe__z'InterchangeFrame.__narwhals_dataframe__Q   s   € Øˆr"   r   c                ó$   — d}t          |¦  «        ‚)NzêCannot access native namespace for interchange-level 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)rG   r=   s     r#   Ú__native_namespace__z%InterchangeFrame.__native_namespace__T   s   € ðYð 	õ
 " #Ñ&Ô&Ð&r"   ÚnameÚstrr   c                óT   — ddl m}  || j                             |¦  «        ¦  «        S )Nr   r   )Únarwhals._interchange.seriesr   rF   Úget_column_by_name)rG   rP   r   s      r#   Ú
get_columnzInterchangeFrame.get_column\   s6   € ØBÐBÐBÐBÐBÐBà Ð  Ô!8×!KÒ!KÈDÑ!QÔ!QÑRÔRÐRr"   úpd.DataFramec                óª   — dd l }t          |¦  «        dk     rd|j        › �}t          |¦  «        ‚|j        j                             | j        ¦  «        S )Nr   )r   é   r   zpConversion to pandas is achieved via interchange protocol which requires 'pandas>=1.5.0' to be installed, found )Úpandasr   Ú__version__rN   ÚapiÚinterchangeÚfrom_dataframerF   )rG   Úpdr=   s      r#   Ú	to_pandaszInterchangeFrame.to_pandasa   si   € ØÐÐÐå˜ÑÔ˜yÒ(Ð(ðLØ;=¼>ðLð Lð õ & cÑ*Ô*Ð*ØŒvÔ!×0Ò0°Ô1HÑIÔIÐIr"   úpa.Tablec                ó.   — ddl m}  || j        ¦  «        S )Nr   )r]   )Ú"pyarrow.interchange.from_dataframer]   rF   )rG   r]   s     r#   Úto_arrowzInterchangeFrame.to_arrowl   s5   € ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð ˆ~˜dÔ5Ñ6Ô6Ð6r"   údict[str, DType]c                óN   ‡ — ˆ fd„‰ j                              ¦   «         D ¦   «         S )Nc                ój   •— i | ]/}|t          ‰j                             |¦  «        j        ¦  «        “Œ0S r!   )r>   rF   rT   Údtype)Ú.0Úcolumn_namerG   s     €r#   ú
<dictcomp>z+InterchangeFrame.schema.<locals>.<dictcomp>u   sO   ø€ ð 
ð 
ð 
ð ð Õ@ØÔ'×:Ò:¸;ÑGÔGÔMñô ð
ð 
ð 
r"   )rF   Úcolumn_namesrJ   s   `r#   ÚschemazInterchangeFrame.schemas   s?   ø€ ð
ð 
ð 
ð 
ð  $Ô6×CÒCÑEÔEð	
ñ 
ô 
ð 	
r"   ú	list[str]c                óN   — t          | j                             ¦   «         ¦  «        S rD   )ÚlistrF   rk   rJ   s    r#   ÚcolumnszInterchangeFrame.columns|   s   € å�DÔ+×8Ò8Ñ:Ô:Ñ;Ô;Ð;r"   Úattrc                ó,   — d|› d�}t          |¦  «        ‚)Nz
Attribute aK   is not supported for interchange-level 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.rM   )rG   rq   r=   s      r#   Ú__getattr__zInterchangeFrame.__getattr__€   s1   € ðB˜ð Bð Bð Bð 	õ " #Ñ&Ô&Ð&r"   rk   c                óÆ   — | j                              t          |¦  «        ¦  «        }t          |d¦  «        sd}t	          |¦  «        ‚|                      |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.)rF   Úselect_columns_by_namero   ÚhasattrrN   Ú	__class__ru   )rG   rk   Úframer=   s       r#   Úsimple_selectzInterchangeFrame.simple_selectŠ   sa   € ØÔ'×>Ò>½tÀLÑ?QÔ?QÑRÔRˆÝ�u˜eÑ$Ô$ð 	+ðMð õ & cÑ*Ô*Ð*Ø�~Š~˜eœiÑ(Ô(Ð(r"   Úexprsc                ó$   — 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.rM   )rG   r{   r=   s      r#   ÚselectzInterchangeFrame.select”   s   € ðBð 	õ " #Ñ&Ô&Ð&r"   N)rA   r   r&   rB   )r&   r	   )r&   r   )rP   rQ   r&   r   )r&   rV   )r&   r`   )r&   rd   )r&   rm   )rq   rQ   r&   r   )rk   rQ   r&   r	   )r{   rQ   r&   r	   )r   r   r   r   r,   Ú_versionrH   rK   rO   rU   r_   rc   Úpropertyrl   rp   rs   rz   r}   r!   r"   r#   r@   r@   K   s  € € € € € ØŒz€Hð5ð 5ð 5ð 5ðð ð ð ð'ð 'ð 'ð 'ðSð Sð Sð Sð
	Jð 	Jð 	Jð 	Jð7ð 7ð 7ð 7ð ð
ð 
ð 
ñ „Xð
ð ð<ð <ð <ñ „Xð<ð'ð 'ð 'ð 'ð)ð )ð )ð )ð'ð 'ð 'ð 'ð 'ð 'r"   r@   Úobjr   úTypeIs[DataFrameLike]c                ó"   — t          | d¦  «        S )NrE   )rw   )r€   s    r#   Úsupports_dataframe_interchangerƒ   ž   s   € Ý�3˜Ñ(Ô(Ð(r"   )r$   r%   r&   r   )r€   r   r&   r�   )Ú
__future__r   ÚenumÚtypingr   r   r   Únarwhals._utilsr   r   rY   r^   ÚpyarrowÚpaÚtyping_extensionsr	   r
   rS   r   Únarwhals.dtypesr   Únarwhals.stable.v1.typingr   ÚIntEnumr   r>   r@   rƒ   r!   r"   r#   ú<module>rŽ      sT  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2àð 8ØÐÐÐØÐÐÐØ.Ð.Ð.Ð.Ð.Ð.Ð.Ð.à>Ð>Ð>Ð>Ð>Ð>Ø%Ð%Ð%Ð%Ð%Ð%Ø7Ð7Ð7Ð7Ð7Ð7ðð ð ð ð �”ñ ô ð ð+ð +ð +ð +ð\P'ð P'ð P'ð P'ð P'ñ P'ô P'ð P'ðf)ð )ð )ð )ð )ð )r"   