
    7^jr                       U d dl mZ d dlmZmZ d dlmZmZ d dl	m
Z
mZmZ d dlmZ er2d dlmZmZ d dlmZ d dlmc mZ d dlmZmZ d d	lmZ d d
lmZ d dlm Z  n
	 d dlmc mZ d$dZ"	 	 	 	 	 	 d%dZ#d&dZ$d'dZ%ejL                  jN                  Z'ejP                  jN                  Z)i e'jT                  de'jV                  de'jX                  de'jZ                  de'j\                  de'j^                  de'j`                  de'jb                  de'jd                  de'jf                  de'jh                  de'jj                  de'jl                  de'jn                  de'jp                  de'jr                  de)jp                  de)jr                  diZ:d e;d!<   e'jx                  e'jz                  e'j|                  e'j~                  e'j                  e'j                  fZBd(d"ZCd)d#Zy# e!$ r d dlZY w xY w)*    )annotations)TYPE_CHECKINGAny)make_group_by_kwargsselect_columns_by_name)ImplementationVersionisinstance_or_issubclass)get_pyarrow)MappingSequenceN)DaskLazyFrame
Incomplete)DaskExpr)DType)	IntoDTypec                   g }|D ]l  } ||       }|j                  |       }t        |      t        |      k7  rd| dt        |       d}t        |      |j                  t	        ||d             n |S )NzInternal error: got aliases z, but only got z resultsF)strict)_evaluate_aliaseslenAssertionErrorextendzip)dfexprsnative_resultsexprnative_series_listaliasesmsgs          _/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/narwhals/_dask/utils.pyevaluate_exprsr"      s    24N N!"X((,w<31220	M_I`HaaijC %%c'+=eLMN     c                    |D cg c]=  }t        |t        j                        r|n| j                  j	                  |      d   ? c}S c c}w )N)_tmpr%   )
isinstancedxSeries_native_frameassign)r   seriesss      r!   align_series_full_broadcastr-   )   sO    
  299%2+;+;+B+B+B+J6+RR  s   AA
c           
         | j                   } | j                  di |di}t         |j                  di |||   j                  d      dz
  i|g|t        j
                        S )N   blelloch)method )columnsr*   r   cumsumr   DASK)framenameoriginal_colsr   s       r!   add_row_indexr9   2   sm    MMM!U\\.T1I.B!		CT2d8??*?=ABC	 r#   c                    t         j                  j                  | j                  |j                        sd}t	        |      y )NzOObjects are not co-aligned, so this operation is not supported for Dask backend)r'   r   are_co_aligned_exprRuntimeError)lhsrhsr    s      r!   validate_comparandr@   <   s6    77!!#))SYY7 `3 8r#   float64float32float16boolcategoryzdate32[day][pyarrow]int8int16int32int64uint8uint16uint32uint64zdatetime64[us]ztimedelta64[ns]zMapping[type[DType], str]NW_TO_DASK_DTYPESc                `   |j                   }| j                         }t        j                  |      x}r|S t	        | |j
                        r0t        j                  j                         dk\  rt               rdS dS yt	        | |j                        rc|t        j                  u rd}t        |      t        | |j                        r!dd l}|j!                  | j"                  d      S d	}t%        |      t'        |t(              rd
|j*                   d}t        |      d|  }t-        |      )N)   r   r   zstring[pyarrow]zstring[python]objectz9Converting to Enum is not supported in narwhals.stable.v1r   T)orderedz9Can not cast / initialize Enum without categories presentzConverting to z! dtype is not supported for Dask.zUnknown dtype: )dtypes	base_typerN   getr
   Stringr   PANDAS_backend_versionr   Enumr	   V1NotImplementedErrorr&   pandasCategoricalDtype
categories
ValueError
issubclassUNSUPPORTED_DTYPES__name__r   )dtypeversionrS   rT   	dask_typer    pds          r!   narwhals_to_native_dtyperg   l   s   ^^F!I%)))44y4v}}5  113y@(3$K;KKv{{3gjj MC%c**eV[[)
 &&u'7'7&FFIo)/0y1122ST!#&&E7
#C

r#   c                @    t        |       }|j                  d       |S )N)drop_null_keysas_index)pd_make_group_by_kwargspop)ri   kwargss     r!   r   r      s    $NCF
JJzMr#   )r   r   r   r   returnzlist[tuple[str, dx.Series]])r   r   r+   zdx.Series | objectrn   zSequence[dx.Series])r6   dd.DataFramer7   strrn   ro   )r>   	dx.Seriesr?   rq   rn   None)rc   r   rd   r	   rn   r   )ri   rD   rn   zdict[str, bool])D
__future__r   typingr   r   narwhals._pandas_like.utilsr   rk   r   narwhals._utilsr   r	   r
   narwhals.dependenciesr   collections.abcr   r   dask.dataframe	dataframedddask.dataframe.dask_expr	dask_exprr'   narwhals._dask.dataframer   r   narwhals._dask.exprr   narwhals.dtypesr   narwhals.typingr   ModuleNotFoundErrorr"   r-   r9   r@   MAINrS   rZ   	dtypes_v1Float64Float32Float16BooleanCategoricalDateInt8Int16Int32Int64UInt8UInt16UInt32UInt64DatetimeDurationrN   __annotations__ListStructArrayTimeBinaryDecimalra   rg   r2   r#   r!   <module>r      s   " % N M -1))B,%)--
	 2   
		JJ	0
NNI0
NNI0 NNI0 NNF	0
 
0 KK'0 KK0 LL'0 LL'0 LL'0 LL'0 MM80 MM80 MM80 OO%0  OO&!0" (#0$ )%0 , * KK
MM
LL
KK
MM
NN :a  s   	G' '	G43G4