
    h                       S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SK
Jr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr   S SKJs  Jr  \(       a  S SKJr  S SKJr  S SKJr  S SKJr  SS jr SS jr!      SS jr"          SS jr#SS jr$SS jr%S S jr&S S jr'g! \ a    S SKr Ndf = f)!    )annotations)TYPE_CHECKING)Any)Sequence)!evaluate_output_names_and_aliases)select_columns_by_name)
get_pandas)get_pyarrow)Implementation)Version)import_dtypes_module)isinstance_or_issubclass)parse_versionN)DaskLazyFrameDaskExpr)DTypec                    SSK Jn  [        X5      (       a'  UR                  U 5      n[	        U5      S:X  d   eUS   $ U$ )Nr   r      )narwhals._dask.exprr   
isinstance_calllen)dfobjr   resultss       F/var/www/html/env/lib/python3.13/site-packages/narwhals/_dask/utils.pymaybe_evaluate_exprr      s>    ,#  ))B-7|q   qzJ    c                   / nU Hq  nUR                  U 5      n[        X0/ 5      u  pV[        U5      [        U5      :w  a  SU S[        U5       S3n[        U5      eUR	                  [        Xd5      5        Ms     U$ )NzInternal error: got aliases z, but only got z results)r   r   r   AssertionErrorextendzip)r   exprsnative_resultsexprnative_series_list_aliasesmsgs           r   evaluate_exprsr+   (   s    24N!ZZ^6tD
w<31220	M_I`HaaijC %%c'>?  r   c                    U Vs/ s H@  n[        U[        R                  5      (       a  UOU R                  R	                  US9S   PMB     sn$ s  snf )N)_tmpr-   )r   dxSeries_native_frameassign)r   seriesss      r   align_series_full_broadcastr4   4   sW    
 A 299%%2+;+;+B+B+B+J6+RR  s   AAc                    U R                   nU R                  " S0 US0D6n [        U R                  " S0 XU   R                  SS9S-
  0D6U/UQUU5      $ )Nr   blelloch)method )columnsr1   r   cumsum)framenamebackend_versionimplementationoriginal_colss        r   add_row_indexr@   =   si     MMMLL%D!9%E!IDk00
0CaGHI		 r   c                     SS K Js  Jn  UR                  R                  U R                  UR                  5      (       d  Sn[        U5      eg ! [         a    SS Kn NSf = f)Nr   zOObjects are not co-aligned, so this operation is not supported for Dask backend)dask.dataframe.dask_expr	dataframe	dask_exprModuleNotFoundErrorr&   are_co_aligned_exprRuntimeError)lhsrhsr.   r*   s       r   validate_comparandrK   M   sZ    -- 77!!#))SYY77 `3 8  s   	A AAc                n   [        U5      n[        XR                  5      (       a  g[        XR                  5      (       a  g[        XR                  5      (       a  g[        XR
                  5      (       a  g[        XR                  5      (       a  g[        XR                  5      (       a  g[        XR                  5      (       a  g[        XR                  5      (       a  g[        XR                  5      (       a  g	[        XR                  5      (       a  g
[        XR                  5      (       a*  [        5       =nb  [        U5      S:  a  [        5       b  ggg[        XR                   5      (       a  g[        XR"                  5      (       ae  U[$        R&                  L a  Sn[)        U5      e[+        XR"                  5      (       a  SS KnUR/                  U R0                  SS9$ Sn[3        U5      e[        XR4                  5      (       a  g[        XR6                  5      (       a  g[        XR8                  5      (       a  g[        XR:                  5      (       a  g[        XR<                  5      (       a  Sn[)        U5      $ [        XR>                  5      (       a  Sn[)        U5      $ [        XR@                  5      (       a  Sn[)        U5      $ [        XRB                  5      (       a  Sn[)        U5      $ [        XRD                  5      (       a  Sn[)        U5      $ SU  3n[G        U5      e)Nfloat64float32int64int32int16int8uint64uint32uint16uint8)   r   r   zstring[pyarrow]zstring[python]objectboolz9Converting to Enum is not supported in narwhals.stable.v1r   T)orderedz9Can not cast / initialize Enum without categories presentcategoryzdatetime64[us]zdate32[day][pyarrow]ztimedelta64[ns]z-Converting to List dtype is not supported yetz/Converting to Struct dtype is not supported yetz.Converting to Array dtype is not supported yetz-Converting to Time dtype is not supported yetz/Converting to Binary dtype is not supported yetzUnknown dtype: )$r   r   Float64Float32Int64Int32Int16Int8UInt64UInt32UInt16UInt8Stringr	   r   r
   BooleanEnumr   V1NotImplementedErrorr   pandasCategoricalDtype
categories
ValueErrorCategoricalDatetimeDateDurationListStructArrayTimeBinaryr!   )dtypeversiondtypespdr*   s        r   narwhals_to_native_dtyper|   b   sq   !'*F~~66~~66||44||44||44{{33}}55}}55}}55||44}}55,B+b0AY0N}((#~~66{{33gjj MC%c**e[[))
 &&u'7'7&FFIo'9'9::77{{33%77 {{33="3''}}55?"3''||44>"3''{{33="3''}}55?"3''E7
#C

r   c                <    X-   R                  U R                  5      $ Nrenamer<   s1s2s     r   name_preserving_sumr          GBGG$$r   c                <    X-  R                  U R                  5      $ r~   r   r   s     r   name_preserving_divr      r   r   )r   r   r   zDaskExpr | objectreturndx.Series | object)r   r   r$   r   r   zlist[tuple[str, dx.Series]])r   r   r2   r   r   zSequence[dx.Series])
r;   dd.DataFramer<   strr=   ztuple[int, ...]r>   r   r   r   )rI   	dx.SeriesrJ   r   r   None)rx   zDType | type[DType]ry   r   r   r   )r   r   r   r   r   r   )(
__future__r   typingr   r   r   narwhals._expression_parsingr   narwhals._pandas_like.utilsr   narwhals.dependenciesr	   r
   narwhals.utilsr   r   r   r   r   rB   rC   rD   r.   rE   dask.dataframeddnarwhals._dask.dataframer   r   r   narwhals.dtypesr   r   r+   r4   r@   rK   r|   r   r   r8   r   r   <module>r      s    "     J > , - ) " / 3 ()) 6,%	 2
 % #	
   *EP%%w  s   	B1 1
B>=B>