
    ei1                       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)jn                  de)jp                  dZ9de:d <   e'jv                  e'jx                  e'jz                  e'j|                  e'j~                  fZ@d'd!ZAd(d"Zy# e!$ r d dlZY tw 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 ]j  } ||       }|j                  |       }t        |      t        |      k7  rd| dt        |       d}t        |      |j                  t	        ||             l |S )NzInternal error: got aliases z, but only got z results)_evaluate_aliaseslenAssertionErrorextendzip)dfexprsnative_resultsexprnative_series_listaliasesmsgs          V/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/narwhals/_dask/utils.pyevaluate_exprsr!      s    24N @!"X((,w<31220	M_I`HaaijC %%c'+=>?@     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_indexr8   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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_typerL   getr
   Stringr   PANDAS_backend_versionr   Enumr	   V1NotImplementedErrorr%   pandasCategoricalDtype
categories
ValueError
issubclassUNSUPPORTED_DTYPES__name__r   )dtypeversionrQ   rR   	dask_typer   pds          r    narwhals_to_native_dtypere   j   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)rg   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 | objectrl   zSequence[dx.Series])r5   dd.DataFramer6   strrl   rm   )r=   	dx.Seriesr>   ro   rl   None)ra   r   rb   r	   rl   r   )rg   rB   rl   zdict[str, bool])B
__future__r   typingr   r   narwhals._pandas_like.utilsr   ri   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,   r8   r?   MAINrQ   rX   	dtypes_v1Float64Float32BooleanCategoricalDateInt8Int16Int32Int64UInt8UInt16UInt32UInt64DatetimeDurationrL   __annotations__ListStructArrayTimeBinaryr_   re   r1   r"   r    <module>r      s   " % N M -1))B,%)--
	 2   
		JJ	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 :]  s   	G 	GG