
    bi                       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 d dlmZ  edd	d
e	d      Z G d de      Z G d de	      Zej#                  d	 e               ej$                  ej&                        d        Z ej$                  ej*                        d        Z ej$                  ej.                        d        Z ej2                  d      d        Zy)    )annotationsN)get_collection_type)CreationDispatch)DataFrameBackendEntrypoint)	ToBackendto_pandas_dispatch	dataframepandas	dask_exprdataframe_creation_dispatch)module_namedefaultentrypoint_rootentrypoint_classnamec                  "    e Zd Zed        Zd Zy)ToPandasBackendc                    t        | fi |S Nr   )dfoptionss     ]/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/dataframe/dask_expr/_backends.py	operationzToPandasBackend.operation   s    !"000    c                    t        | j                  j                  t        j                  t        j
                  t        j                  f      r| j                  S y r   )
isinstanceframe_metapd	DataFrameSeriesIndex)selfs    r   _simplify_downzToPandasBackend._simplify_down   s9    djj&&ryy"(((KL:: Mr   N)__name__
__module____qualname__staticmethodr   r%    r   r   r   r      s    1 1r   r   c                       e Zd ZdZed        Zy)PandasBackendEntrypointzPandas-Backend Entrypoint Class for Dask-Expressions

    Note that all DataFrame-creation functions are defined
    and registered 'in-place'.
    c                2    ddl m}  |t        ||            S )Nr   )new_collection)$dask.dataframe.dask_expr._collectionr.   r   )clsdatakwargsr.   s       r   
to_backendz"PandasBackendEntrypoint.to_backend&   s    GodF;<<r   N)r&   r'   r(   __doc__classmethodr3   r*   r   r   r,   r,      s     = =r   r,   c                    ddl m} |S )Nr   )r"   )r/   r"   )_r"   s     r   get_collection_type_seriesr8   0   s
    ;Mr   c                    ddl m} |S )Nr   )r!   )r/   r!   )r7   r!   s     r   get_collection_type_dataframer:   7   s    >r   c                    ddl m} |S )Nr   )r#   )r/   r#   )r7   r#   s     r   get_collection_type_indexr<   >   s
    :Lr   cudfc                     dd l } y )Nr   	dask_cudfr?   s    r   _register_cudfrA   J   s    r   )
__future__r   r   r    dask._dispatchr   dask.backendsr   dask.dataframe.backendsr   dask.dataframe.dask_expr._exprr   dask.dataframe.dispatchr	   r   r   r,   register_backendregisterr"   r8   r!   r:   r#   r<   register_lazyrA   r*   r   r   <module>rK      s    "  . * > 4 6./	& i =8 =  , ,X7N7P Q bii( ) bll+ , bhh' ( #""6* +r   