
    bi                       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	 ej                  ej                  ej                  ej                  ej                  ej                  ej                  dZ G d d      Z G d	 d
      Zy)    )annotations)	DtypeKind)is_string_dtype)	DataFrame)is_categorical_dtype)iufbUMmc                  B    e Zd Z	 d	 	 	 	 	 	 	 ddZd Zd Zd	dZd	dZy)
DaskDataFrameInterchangec                .    || _         || _        || _        y N)_df_nan_as_null_allow_copy)selfdfnan_as_null
allow_copys       `/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/dataframe/dask_expr/_interchange.py__init__z!DaskDataFrameInterchange.__init__   s     '%    c                    | j                   j                  D cg c]  }t        | j                   |          c}S c c}w r   )r   columns
DaskColumn)r   names     r   get_columnsz$DaskDataFrameInterchange.get_columns   s-    7;xx7G7GHt
488D>*HHHs   ;c                .    | j                   j                  S r   )r   r   r   s    r   column_namesz%DaskDataFrameInterchange.column_names   s    xxr   c                @    t        | j                  j                        S r   )lenr   r   r#   s    r   num_columnsz$DaskDataFrameInterchange.num_columns"   s    488##$$r   c                ,    t        | j                        S r   )r&   r   r#   s    r   num_rowsz!DaskDataFrameInterchange.num_rows%   s    488}r   N)FT)r   r   r   boolr   r*   returnNone)r+   int)__name__
__module____qualname__r   r!   r$   r'   r)    r   r   r   r      s?    KO&&*.&DH&	&I %r   r   c                      e Zd ZdddZddZy)r   c                     || _         || _        y r   )_colr   )r   columnr   s      r   r   zDaskColumn.__init__*   s    	%r   c                    | j                   j                  }t        |      rt        j                  d d d fS t        |      rt        j                  d d d fS t        j                  |j                  d       d d d fS r   )
r4   dtyper   r   CATEGORICALr   STRING	_NP_KINDSgetkind)r   r7   s     r   r7   zDaskColumn.dtype.   sy    		&%%	  U#  	  ==T2D$DDr   N)T)r   r*   r+   r,   )r+   z"tuple[DtypeKind, None, None, None])r.   r/   r0   r   r7   r1   r   r   r   r   )   s    &Er   r   N)
__future__r   *pandas.core.interchange.dataframe_protocolr   dask.dataframe._compatr   $dask.dataframe.dask_expr._collectionr   dask.dataframe.dispatchr   INTUINTFLOATBOOLr9   DATETIMEr:   r   r   r1   r   r   <module>rG      sj    " @ 2 : 8 
													 *E Er   