§
    Šhþhl  ã                  ó¢  — d dl mZ d dlZd dlmZmZmZmZmZ d dl	Z
d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlm Z m!Z!m"Z" d dl#m$Z$ erOd dl%m&Z& d dl'm(c m)Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dlmZm6Z6 d dlm7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@  G d„ ded         ed         ¦  «        ZAdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚCallableÚLiteralÚcast)ÚDepthTrackingExprÚLazyExpr©ÚDaskExprDateTimeNamespace©ÚDaskExprStringNamespace)Úadd_row_indexÚalign_series_full_broadcastÚmaybe_evaluate_exprÚnarwhals_to_native_dtype)ÚExprKindÚ!evaluate_output_names_and_aliases)Ú"window_kwargs_to_pandas_equivalent)Úget_dtype_backendÚnative_to_narwhals_dtype)ÚImplementationÚgenerate_temporary_column_nameÚnot_implemented©ÚInvalidOperationError)ÚSequence)ÚSelf)Ú
AliasNamesÚ	EvalNamesÚ
EvalSeriesÚScalarKwargs)ÚDaskLazyFrame©ÚDaskNamespace)r   ÚExprMetadata)ÚVersionÚ_LimitedContext)ÚFillNullStrategyÚ	IntoDTypeÚModeKeepStrategyÚNonNestedLiteralÚNumericLiteralÚRollingInterpolationMethodÚTemporalLiteralc                  ó�  — e Zd ZU ej        Zded<   ddœd¨d„Zd©d„Zdªd„Z	d«d„Z
ed d!œd¬d'„¦   «         Zed­d)„¦   «         Z	 	 d®d¯d.„Zd°d0„Zd1d2œd±d9„Zd²d;„Zd³d=„Zd´d>„Zd´d?„Zd´d@„Zd´dA„Zd´dB„Zd´dC„Zd´dD„ZdµdF„ZdµdG„Zd´dH„Zd´dI„Zd´dJ„Zd´dK„Zd´dL„Z d´dM„Z!d´dN„Z"d´dO„Z#d´dP„Z$d´dQ„Z%d´dR„Z&d¶dS„Z'd¶dT„Z(d¶dU„Z)d¶dV„Z*d¶dW„Z+d·dY„Z,d·dZ„Z-d¶d[„Z.d¶d\„Z/d¸d^„Z0d¹d_„Z1d¹d`„Z2d¹da„Z3d¹db„Z4d¹dc„Z5dºdg„Z6dºdh„Z7d»di„Z8d»dj„Z9d¶dk„Z:d¶dl„Z;d¼dn„Z<d¶do„Z=d¶dp„Z>d¶dq„Z?d¶dr„Z@d¶ds„ZAd¶dt„ZBd¶du„ZCd½dx„ZDd¾d~„ZEd¿d‚„ZFd¶dƒ„ZGd¶d„„ZHd¶d…„ZId¶d†„ZJd¶d‡„ZKdÀdŒ„ZLd¶d�„ZMd¶dŽ„ZNd¶d�„ZOd´d�„ZPd¶d‘„ZQdÁd•„ZRdÂd˜„ZSd¶d™„ZTdÃd›„ZUd¶dœ„ZVd¶d�„ZWdÄd „ZXeYdÅd¢„¦   «         ZZeYdÆd¤„¦   «         Z[ e\¦   «         Z] e\¦   «         Z^ e\¦   «         Z_ e\¦   «         Z`d¥ed¦<    e\¦   «         Zad¥ed§<   dS )ÇÚDaskExprr   Ú_implementationN©Úscalar_kwargsÚcallú$EvalSeries[DaskLazyFrame, dx.Series]ÚdepthÚintÚfunction_nameÚstrÚevaluate_output_namesúEvalNames[DaskLazyFrame]Úalias_output_namesúAliasNames | NoneÚversionr'   r4   úScalarKwargs | NoneÚreturnÚNonec               óz   — || _         || _        || _        || _        || _        || _        |pi | _        d | _        d S ©N)Ú_callÚ_depthÚ_function_nameÚ_evaluate_output_namesÚ_alias_output_namesÚ_versionÚ_scalar_kwargsÚ	_metadata)Úselfr5   r7   r9   r;   r=   r?   r4   s           úJ/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_dask/expr.pyÚ__init__zDaskExpr.__init__7   sI   € ð ˆŒ
ØˆŒØ+ˆÔØ&;ˆÔ#Ø#5ˆÔ ØˆŒØ+Ð1¨rˆÔØ.2ˆŒˆˆó    Údfr#   úSequence[dx.Series]c                ó,   — |                       |¦  «        S rD   )rE   )rM   rQ   s     rN   Ú__call__zDaskExpr.__call__K   s   € Ø�zŠz˜"‰~Œ~ÐrP   r%   c                ó0   — ddl m}  || j        ¬¦  «        S )Nr   r$   )r?   )Únarwhals._dask.namespacer%   rJ   )rM   r%   s     rN   Ú__narwhals_namespace__zDaskExpr.__narwhals_namespace__N   s)   € Ø:Ð:Ð:Ð:Ð:Ð:àˆ} T¤]Ð3Ñ3Ô3Ð3rP   Úkindú/Literal[ExprKind.AGGREGATION, ExprKind.LITERAL]r   c           	     ó„   ‡ — dˆ fd„}‰                       |‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ¬¦  «        S )NrQ   r#   rA   úlist[dx.Series]c                ó.   •— d„  ‰| ¦  «        D ¦   «         S )Nc                ó4   — g | ]}|j         d          d          ‘ŒS )r   )Úloc)Ú.0Úresults     rN   ú
<listcomp>z4DaskExpr.broadcast.<locals>.func.<locals>.<listcomp>W   s#   € Ð<Ð<Ð<¨�F”J˜q”M !Ô$Ð<Ð<Ð<rP   © )rQ   rM   s    €rN   Úfuncz DaskExpr.broadcast.<locals>.funcT   s!   ø€ ð =Ð<°4°4¸±8´8Ð<Ñ<Ô<Ð<rP   ©r7   r9   r;   r=   r?   r4   ©rQ   r#   rA   r[   )Ú	__class__rF   rG   rH   rI   rJ   rK   )rM   rX   rc   s   `  rN   Ú	broadcastzDaskExpr.broadcastS   sc   ø€ ð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð
 �~Š~ØØ”+ØÔ-Ø"&Ô"=Ø#Ô7Ø”MØÔ-ð ñ 
ô 
ð 	
rP   Ú )r9   Úclsú
type[Self]Úevaluate_column_namesÚcontextr(   c              ó<   ‡— dˆfd„} | |d|‰d |j         ¬¦  «        S )	NrQ   r#   rA   r[   c                ó¢   •‡ — 	 ˆ fd„ ‰‰ ¦  «        D ¦   «         S # t           $ r)}‰                       ‰‰ ¦  «        ¦  «        x}r||‚‚ d }~ww xY w)Nc                ó*   •— g | ]}‰j         |         ‘ŒS rb   )Ú_native_frame)r_   Úcolumn_namerQ   s     €rN   ra   z<DaskExpr.from_column_names.<locals>.func.<locals>.<listcomp>n   s1   ø€ ð ð ð à#ð Ô$ [Ô1ðð ð rP   )ÚKeyErrorÚ_check_columns_exist)rQ   ÚeÚerrorrk   s   `  €rN   rc   z(DaskExpr.from_column_names.<locals>.funcl   s’   øø€ ððð ð ð à'<Ð'<¸RÑ'@Ô'@ðñ ô ð øõ ð ð ð Ø×3Ò3Ð4IÐ4IÈ"Ñ4MÔ4MÑNÔNÐN�5ð 'Ø QÐ&Øøøøøðøøøs   „ ›
A¥$A	Á	Ar   ©r7   r9   r;   r=   r?   re   )rJ   )ri   rk   rl   r9   rc   s    `   rN   Úfrom_column_nameszDaskExpr.from_column_namesc   sQ   ø€ ð		ð 		ð 		ð 		ð 		ð 		ð ˆsØØØ'Ø"7Ø#ØÔ$ð
ñ 
ô 
ð 	
rP   Úcolumn_indicesc               ób   ‡— d	ˆfd„} | |dd|                       ‰¦  «        d |j        ¬¦  «        S )
NrQ   r#   rA   r[   c                ó"   •‡ — ˆ fd„‰D ¦   «         S )Nc                ó<   •— g | ]}‰j         j        d d …|f         ‘ŒS rD   )ÚnativeÚiloc)r_   ÚirQ   s     €rN   ra   z>DaskExpr.from_column_indices.<locals>.func.<locals>.<listcomp>ƒ   s*   ø€ ÐAÐAÐA¨Q�B”I”N 1 1 1 a 4Ô(ÐAÐAÐArP   rb   )rQ   rx   s   `€rN   rc   z*DaskExpr.from_column_indices.<locals>.func‚   s   øø€ ØAÐAÐAÐA°.ÐAÑAÔAÐArP   r   Únthrv   re   )Ú_eval_names_indicesrJ   )ri   rl   rx   rc   s     ` rN   Úfrom_column_indiceszDaskExpr.from_column_indices€   se   ø€ ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð ˆsØØØØ"%×"9Ò"9¸.Ñ"IÔ"IØ#ØÔ$ð
ñ 
ô 
ð 	
rP   Ú	expr_nameúCallable[..., dx.Series]Úexpressifiable_argsú
Self | Anyc          	     ó’   ‡ ‡‡— d	ˆˆˆ fd„}‰                       |‰ j        dz   ‰ j        › d|› �‰ j        ‰ j        ‰ j        |¬¦  «        S )
NrQ   r#   rA   r[   c                ó¾   •‡ — g }‰                      ‰ ¦  «        }ˆ fd„‰                     ¦   «         D ¦   «         }|D ] } ‰|fi |¤Ž}|                     |¦  «         Œ!|S )Nc                ó8   •— i | ]\  }}|t          ‰|¦  «        “ŒS rb   ©r   )r_   ÚkeyÚvaluerQ   s      €rN   ú
<dictcomp>z9DaskExpr._with_callable.<locals>.func.<locals>.<dictcomp>š   s:   ø€ ð #ð #ð #á�C˜ð Õ(¨¨UÑ3Ô3ð#ð #ð #rP   )rE   ÚitemsÚappend)	rQ   Únative_resultsÚnative_series_listÚother_native_seriesÚnative_seriesÚresult_nativer5   r„   rM   s	   `     €€€rN   rc   z%DaskExpr._with_callable.<locals>.func—   s”   øø€ Ø.0ˆNØ!%§¢¨B¡¤Ðð#ð #ð #ð #à"5×";Ò";Ñ"=Ô"=ð#ñ #ô #Ðð "4ð 5ð 5�Ø $  ]Ð JÐ JÐ6IÐ JÐ J�Ø×%Ò% mÑ4Ô4Ð4Ð4Ø!Ð!rP   é   z->rd   re   ©rf   rF   rG   rH   rI   rJ   )rM   r5   r‚   r4   r„   rc   s   ``  ` rN   Ú_with_callablezDaskExpr._with_callableŽ   s~   øøø€ ð
	"ð 
	"ð 
	"ð 
	"ð 
	"ð 
	"ð 
	"ð 
	"ð �~Š~ØØ”+ ‘/Ø!Ô0Ð?Ð?°IÐ?Ð?Ø"&Ô"=Ø#Ô7Ø”MØ'ð ñ 
ô 
ð 	
rP   rc   c          	     óª   ‡‡— | j         Š‰€d n	‰€‰nˆˆfd„} t          | ¦  «        | j        | j        | j        | j        || j        | j        ¬¦  «        S )Nc                ó,   •—  ‰ ‰| ¦  «        ¦  «        S rD   rb   )Úoutput_namesÚcurrent_alias_output_namesrc   s    €€rN   ú<lambda>z3DaskExpr._with_alias_output_names.<locals>.<lambda>´   s   ø€  d dÐ+EÐ+EÀlÑ+SÔ+SÑ&TÔ&T€ rP   )r5   r7   r9   r;   r=   r?   r4   )rI   ÚtyperE   rF   rG   rH   rJ   rK   )rM   rc   r=   rš   s    ` @rN   Ú_with_alias_output_namesz!DaskExpr._with_alias_output_names­   sƒ   øø€ Ø%)Ô%=Ð"ð ˆ|ð ˆDð *Ð1ð �àTÐTÐTÐTÐTð 	ð �t�D‰zŒzØ”Ø”+ØÔ-Ø"&Ô"=Ø1Ø”MØÔ-ð
ñ 
ô 
ð 	
rP   F©Úreverseú%Callable[[dx.Series, Any], dx.Series]ÚnameÚotherr   rŸ   Úboolc               ól   ‡— |                       ˆfd„||¬¦  «        }|r|                     d¦  «        }|S )Nc                ó   •—  ‰| |¦  «        S rD   rb   )Úexprr¢   r5   s     €rN   r›   z'DaskExpr._with_binary.<locals>.<lambda>É   s   ø€    T¨5Ñ 1Ô 1€ rP   )r¢   Úliteral)r–   Úalias)rM   r5   r¡   r¢   rŸ   r`   s    `    rN   Ú_with_binaryzDaskExpr._with_binaryÀ   sO   ø€ ð ×$Ò$Ø1Ð1Ð1Ð1°4¸uð %ñ 
ô 
ˆð ð 	-Ø—\’\ )Ñ,Ô,ˆFØˆrP   Úop_namec                ó8   ‡— |                       ˆfd„‰|¦  «        S )Nc                ó6   •—  t          | ‰¦  «        |¦  «        S rD   )Úgetattr)r¦   r¢   rª   s     €rN   r›   z%DaskExpr._binary_op.<locals>.<lambda>Ñ   s   ø€ Ð 6¥¨¨gÑ 6Ô 6°uÑ =Ô =€ rP   ©r©   )rM   rª   r¢   s    ` rN   Ú
_binary_opzDaskExpr._binary_opÏ   s+   ø€ Ø× Ò Ø=Ð=Ð=Ð=¸wÈñ
ô 
ð 	
rP   Úoperator_funcc                ó<   ‡— |                       ˆfd„||d¬¦  «        S )Nc                ó   •—  ‰|| ¦  «        S rD   rb   )r¦   r¢   r°   s     €rN   r›   z-DaskExpr._reverse_binary_op.<locals>.<lambda>Ø   s   ø€   ¨e°TÑ :Ô :€ rP   Trž   r®   )rM   rª   r°   r¢   s     ` rN   Ú_reverse_binary_opzDaskExpr._reverse_binary_opÔ   s5   ø€ ð × Ò Ø:Ð:Ð:Ð:¸GÀUÐTXð !ñ 
ô 
ð 	
rP   c                ó.   — |                       d|¦  «        S )NÚ__add__©r¯   ©rM   r¢   s     rN   rµ   zDaskExpr.__add__Û   ó   € Ø�Š˜y¨%Ñ0Ô0Ð0rP   c                ó.   — |                       d|¦  «        S )NÚ__sub__r¶   r·   s     rN   rº   zDaskExpr.__sub__Þ   r¸   rP   c                ó.   — |                       d|¦  «        S )NÚ__mul__r¶   r·   s     rN   r¼   zDaskExpr.__mul__á   r¸   rP   c                ó.   — |                       d|¦  «        S )NÚ__truediv__r¶   r·   s     rN   r¾   zDaskExpr.__truediv__ä   s   € Ø�Š˜}¨eÑ4Ô4Ð4rP   c                ó”   ‡ ‡‡— dd„Šdˆˆˆ fd
„}‰                       |‰ j        dz   ‰ j        dz   ‰ j        ‰ j        ‰ j        ¬¦  «        S )NrQ   r#   Úseriesú	dx.Seriesr¢   údx.Series | AnyrA   c                ó„   — t          | ||¦  «        \  }}|                     |¦  «                             |dk    d ¦  «        S ©Nr   ©r   Ú__floordiv__Úwhere©rQ   rÀ   r¢   s      rN   Ú	_floordivz(DaskExpr.__floordiv__.<locals>._floordivè   sA   € õ 8¸¸FÀEÑJÔJ‰MˆF�EØ×'Ò'¨Ñ.Ô.×5Ò5°e¸q²jÀ$ÑGÔGÐGrP   r[   c                óZ   •‡ ‡— t          ‰ ‰¦  «        Šˆˆ ˆfd„ ‰‰ ¦  «        D ¦   «         S )Nc                ó*   •— g | ]} ‰‰|‰¦  «        ‘ŒS rb   rb   )r_   rÀ   rÉ   rQ   Úother_seriess     €€€rN   ra   z7DaskExpr.__floordiv__.<locals>.func.<locals>.<listcomp>ð   s'   ø€ ÐOÐOÐO¸F�I�I˜b &¨,Ñ7Ô7ÐOÐOÐOrP   r‰   )rQ   rÌ   rÉ   r¢   rM   s   `@€€€rN   rc   z#DaskExpr.__floordiv__.<locals>.funcî   s<   øøø€ Ý.¨r°5Ñ9Ô9ˆLØOÐOÐOÐOÐOÐOÀdÀdÈ2ÁhÄhÐOÑOÔOÐOrP   r”   z->__floordiv__rv   ©rQ   r#   rÀ   rÁ   r¢   rÂ   rA   rÁ   re   r•   )rM   r¢   rc   rÉ   s   `` @rN   rÆ   zDaskExpr.__floordiv__ç   s“   øøø€ ð	Hð 	Hð 	Hð 	Hð	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð �~Š~ØØ”+ ‘/ØÔ-Ð0@Ñ@Ø"&Ô"=Ø#Ô7Ø”Mð ñ 
ô 
ð 	
rP   c                ó.   — |                       d|¦  «        S )NÚ__pow__r¶   r·   s     rN   rÏ   zDaskExpr.__pow__û   r¸   rP   c                ó.   — |                       d|¦  «        S )NÚ__mod__r¶   r·   s     rN   rÑ   zDaskExpr.__mod__þ   r¸   rP   Úobjectc                ó.   — |                       d|¦  «        S )NÚ__eq__r¶   r·   s     rN   rÔ   zDaskExpr.__eq__  ó   € Ø�Š˜x¨Ñ/Ô/Ð/rP   c                ó.   — |                       d|¦  «        S )NÚ__ne__r¶   r·   s     rN   r×   zDaskExpr.__ne__  rÕ   rP   c                ó.   — |                       d|¦  «        S )NÚ__ge__r¶   r·   s     rN   rÙ   zDaskExpr.__ge__  rÕ   rP   c                ó.   — |                       d|¦  «        S )NÚ__gt__r¶   r·   s     rN   rÛ   zDaskExpr.__gt__
  rÕ   rP   c                ó.   — |                       d|¦  «        S )NÚ__le__r¶   r·   s     rN   rÝ   zDaskExpr.__le__  rÕ   rP   c                ó.   — |                       d|¦  «        S )NÚ__lt__r¶   r·   s     rN   rß   zDaskExpr.__lt__  rÕ   rP   c                ó.   — |                       d|¦  «        S )NÚ__and__r¶   r·   s     rN   rá   zDaskExpr.__and__  r¸   rP   c                ó.   — |                       d|¦  «        S )NÚ__or__r¶   r·   s     rN   rã   zDaskExpr.__or__  rÕ   rP   c                ó2   — |                       dd„ |¦  «        S )NÚ__rsub__c                ó   — | |z
  S rD   rb   ©ÚaÚbs     rN   r›   z#DaskExpr.__rsub__.<locals>.<lambda>  ó
   € ÀÀAÁ€ rP   ©r³   r·   s     rN   rå   zDaskExpr.__rsub__  ó   € Ø×&Ò& zÐ3EÐ3EÀuÑMÔMÐMrP   c                ó2   — |                       dd„ |¦  «        S )NÚ__rtruediv__c                ó   — | |z  S rD   rb   rç   s     rN   r›   z'DaskExpr.__rtruediv__.<locals>.<lambda>  s
   € ÀAÈÁE€ rP   rë   r·   s     rN   rî   zDaskExpr.__rtruediv__  s   € Ø×&Ò& ~Ð7IÐ7IÈ5ÑQÔQÐQrP   c                óº   ‡ ‡‡— dd„Šdˆˆˆ fd
„}‰                       |‰ j        dz   ‰ j        dz   ‰ j        ‰ j        ‰ j        ¬¦  «                             d¦  «        S )NrQ   r#   rÀ   rÁ   r¢   rÂ   rA   c                ó„   — t          | ||¦  «        \  }}|                     |¦  «                             |dk    d ¦  «        S rÄ   rÅ   rÈ   s      rN   Ú
_rfloordivz*DaskExpr.__rfloordiv__.<locals>._rfloordiv   sA   € õ 8¸¸FÀEÑJÔJ‰MˆF�EØ×&Ò& vÑ.Ô.×5Ò5°fÀ²kÀ4ÑHÔHÐHrP   r[   c                ó8   •‡ — ˆˆ ˆfd„ ‰‰ ¦  «        D ¦   «         S )Nc                ó*   •— g | ]} ‰‰|‰¦  «        ‘ŒS rb   rb   )r_   rÀ   rò   rQ   r¢   s     €€€rN   ra   z8DaskExpr.__rfloordiv__.<locals>.func.<locals>.<listcomp>'  s'   ø€ ÐIÐIÐI°f�J�J˜r 6¨5Ñ1Ô1ÐIÐIÐIrP   rb   )rQ   rò   r¢   rM   s   `€€€rN   rc   z$DaskExpr.__rfloordiv__.<locals>.func&  s,   øø€ ØIÐIÐIÐIÐIÐIÀÀÀRÁÄÐIÑIÔIÐIrP   r”   z->__rfloordiv__rv   r§   rÍ   re   )rf   rF   rG   rH   rI   rJ   r¨   )rM   r¢   rc   rò   s   `` @rN   Ú__rfloordiv__zDaskExpr.__rfloordiv__  s¢   øøø€ ð	Ið 	Ið 	Ið 	Ið	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð �~Š~ØØ”+ ‘/ØÔ-Ð0AÑAØ"&Ô"=Ø#Ô7Ø”Mð ñ 
ô 
÷ Š%�	Ñ
Ô
ð	rP   c                ó2   — |                       dd„ |¦  «        S )NÚ__rpow__c                ó   — | |z  S rD   rb   rç   s     rN   r›   z#DaskExpr.__rpow__.<locals>.<lambda>3  s
   € ÀÀ1Á€ rP   rë   r·   s     rN   r÷   zDaskExpr.__rpow__2  s   € Ø×&Ò& zÐ3DÐ3DÀeÑLÔLÐLrP   c                ó2   — |                       dd„ |¦  «        S )NÚ__rmod__c                ó   — | |z  S rD   rb   rç   s     rN   r›   z#DaskExpr.__rmod__.<locals>.<lambda>6  rê   rP   rë   r·   s     rN   rú   zDaskExpr.__rmod__5  rì   rP   c                ó0   — |                       d„ d¦  «        S )Nc                ó*   — |                       ¦   «         S rD   )Ú
__invert__©r¦   s    rN   r›   z%DaskExpr.__invert__.<locals>.<lambda>9  s   € °·²Ñ0AÔ0A€ rP   rþ   ©r–   ©rM   s    rN   rþ   zDaskExpr.__invert__8  s   € Ø×"Ò"Ð#AÐ#AÀ<ÑPÔPÐPrP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )ÚmeanÚ	to_seriesrÿ   s    rN   r›   zDaskExpr.mean.<locals>.<lambda><  ó   € °·	²	±´×0EÒ0EÑ0GÔ0G€ rP   r  r   r  s    rN   r  zDaskExpr.mean;  ó   € Ø×"Ò"Ð#GÐ#GÈÑPÔPÐPrP   c                óL   ‡ ‡— ddl mŠ dˆˆ fd„}‰                      |d¦  «        S )	Nr   r   ÚsrÁ   rA   c                óÜ   •— t          | j        ‰j        t          j        ¦  «        }|                     ¦   «         sd} ‰|¦  «        ‚|                      ¦   «                              ¦   «         S )Nz<`median` operation not supported for non-numeric input type.)r   ÚdtyperJ   r   ÚDASKÚ
is_numericÚmedian_approximater  )r	  r  Úmsgr   rM   s      €€rN   rc   zDaskExpr.median.<locals>.funcA  sc   ø€ Ý,¨Q¬W°d´mÅ^ÔEXÑYÔYˆEØ×#Ò#Ñ%Ô%ð 1ØT�Ø+Ð+¨CÑ0Ô0Ð0Ø×'Ò'Ñ)Ô)×3Ò3Ñ5Ô5Ð5rP   Úmedian)r	  rÁ   rA   rÁ   )Únarwhals.exceptionsr   r–   )rM   rc   r   s   ` @rN   r  zDaskExpr.median>  sQ   øø€ Ø=Ð=Ð=Ð=Ð=Ð=ð	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð ×"Ò" 4¨Ñ2Ô2Ð2rP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )Úminr  rÿ   s    rN   r›   zDaskExpr.min.<locals>.<lambda>K  ó   € °·²±
´
×0DÒ0DÑ0FÔ0F€ rP   r  r   r  s    rN   r  zDaskExpr.minJ  ó   € Ø×"Ò"Ð#FÐ#FÈÑNÔNÐNrP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )Úmaxr  rÿ   s    rN   r›   zDaskExpr.max.<locals>.<lambda>N  r  rP   r  r   r  s    rN   r  zDaskExpr.maxM  r  rP   Úddofc               ó>   ‡— |                       ˆfd„dd‰i¬¦  «        S )Nc                óT   •— |                       ‰¬¦  «                             ¦   «         S ©N)r  )Ústdr  ©r¦   r  s    €rN   r›   zDaskExpr.std.<locals>.<lambda>R  ó!   ø€ ˜Ÿš t˜Ñ,Ô,×6Ò6Ñ8Ô8€ rP   r  r  r3   r   ©rM   r  s    `rN   r  zDaskExpr.stdP  ó6   ø€ Ø×"Ò"Ø8Ð8Ð8Ð8ØØ! 4˜.ð #ñ 
ô 
ð 	
rP   c               ó>   ‡— |                       ˆfd„dd‰i¬¦  «        S )Nc                óT   •— |                       ‰¬¦  «                             ¦   «         S r  )Úvarr  r  s    €rN   r›   zDaskExpr.var.<locals>.<lambda>Y  r   rP   r%  r  r3   r   r!  s    `rN   r%  zDaskExpr.varW  r"  rP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )Úskewr  rÿ   s    rN   r›   zDaskExpr.skew.<locals>.<lambda>_  r  rP   r(  r   r  s    rN   r(  zDaskExpr.skew^  r  rP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )Úkurtosisr  rÿ   s    rN   r›   z#DaskExpr.kurtosis.<locals>.<lambda>b  s   € °·²±´×0IÒ0IÑ0KÔ0K€ rP   r+  r   r  s    rN   r+  zDaskExpr.kurtosisa  s   € Ø×"Ò"Ð#KÐ#KÈZÑXÔXÐXrP   Únc                ó6   ‡— |                       ˆfd„d¦  «        S )Nc                ó.   •— |                       ‰¦  «        S rD   )Úshift)r¦   r,  s    €rN   r›   z DaskExpr.shift.<locals>.<lambda>e  s   ø€ °·
²
¸1±´€ rP   r/  r   )rM   r,  s    `rN   r/  zDaskExpr.shiftd  s#   ø€ Ø×"Ò"Ð#=Ð#=Ð#=Ð#=¸wÑGÔGÐGrP   c               óV   — |rd}t          |¦  «        ‚|                      d„ d¦  «        S )Nz:`cum_sum(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rD   )Úcumsumrÿ   s    rN   r›   z"DaskExpr.cum_sum.<locals>.<lambda>m  ó   € °·²±´€ rP   Úcum_sum©ÚNotImplementedErrorr–   ©rM   rŸ   r  s      rN   r4  zDaskExpr.cum_sumg  s7   € Øð 	+àNˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#=Ð#=¸yÑIÔIÐIrP   c               óV   — |rd}t          |¦  «        ‚|                      d„ d¦  «        S )Nz<`cum_count(reverse=True)` is not supported with Dask backendc                ó€   — |                       ¦   «                               t          ¦  «                             ¦   «         S rD   )ÚisnaÚastyper8   r2  rÿ   s    rN   r›   z$DaskExpr.cum_count.<locals>.<lambda>u  s*   € ˜4Ÿ9š9™;œ;˜,×.Ò.­sÑ3Ô3×:Ò:Ñ<Ô<€ rP   Ú	cum_countr5  r7  s      rN   r<  zDaskExpr.cum_counto  s=   € Øð 	+ØPˆCÝ% cÑ*Ô*Ð*à×"Ò"Ø<Ð<¸kñ
ô 
ð 	
rP   c               óV   — |rd}t          |¦  «        ‚|                      d„ d¦  «        S )Nz:`cum_min(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rD   )Úcumminrÿ   s    rN   r›   z"DaskExpr.cum_min.<locals>.<lambda>}  r3  rP   Úcum_minr5  r7  s      rN   r@  zDaskExpr.cum_minx  ó7   € Øð 	+ØNˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#=Ð#=¸yÑIÔIÐIrP   c               óV   — |rd}t          |¦  «        ‚|                      d„ d¦  «        S )Nz:`cum_max(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rD   )Úcummaxrÿ   s    rN   r›   z"DaskExpr.cum_max.<locals>.<lambda>„  r3  rP   Úcum_maxr5  r7  s      rN   rE  zDaskExpr.cum_max  rA  rP   c               óV   — |rd}t          |¦  «        ‚|                      d„ d¦  «        S )Nz;`cum_prod(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rD   )Úcumprodrÿ   s    rN   r›   z#DaskExpr.cum_prod.<locals>.<lambda>‹  s   € °·²±´€ rP   Úcum_prodr5  r7  s      rN   rI  zDaskExpr.cum_prod†  s7   € Øð 	+ØOˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#>Ð#>À
ÑKÔKÐKrP   Úwindow_sizeÚmin_samplesÚcenterc               ó>   ‡‡‡— |                       ˆˆˆfd„d¦  «        S )Nc                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S ©N)ÚwindowÚmin_periodsrL  )ÚrollingÚsum©r¦   rL  rK  rJ  s    €€€rN   r›   z&DaskExpr.rolling_sum.<locals>.<lambda>�  s-   ø€ ˜ŸšØ"°ÀFð &ñ ô çŠc‰eŒeð rP   Úrolling_sumr   ©rM   rJ  rK  rL  s    ```rN   rU  zDaskExpr.rolling_sum�  s@   øøø€ Ø×"Ò"ðð ð ð ð ð ð ñ	
ô 
ð 	
rP   c               ó>   ‡‡‡— |                       ˆˆˆfd„d¦  «        S )Nc                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S rO  )rR  r  rT  s    €€€rN   r›   z'DaskExpr.rolling_mean.<locals>.<lambda>—  s-   ø€ ˜ŸšØ"°ÀFð &ñ ô çŠd‰fŒfð rP   Úrolling_meanr   rV  s    ```rN   rY  zDaskExpr.rolling_mean•  s@   øøø€ Ø×"Ò"ðð ð ð ð ð ð ñ	
ô 
ð 	
rP   c               ól   ‡‡‡— |dk    r|                       ˆˆˆfd„d¦  «        S d}t          |¦  «        ‚)Nr”   c                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S rO  )rR  r%  rT  s    €€€rN   r›   z&DaskExpr.rolling_var.<locals>.<lambda>¢  ó-   ø€ ˜TŸ\š\Ø&°KÈð *ñ ô ç’#‘%”%ð rP   Úrolling_varz5Dask backend only supports `ddof=1` for `rolling_var`©r–   r6  ©rM   rJ  rK  rL  r  r  s    ```  rN   r]  zDaskExpr.rolling_var�  óa   øøø€ ð �1Š9ˆ9Ø×&Ò&ðð ð ð ð ð ð ñ	ô ð ð FˆÝ! #Ñ&Ô&Ð&rP   c               ól   ‡‡‡— |dk    r|                       ˆˆˆfd„d¦  «        S d}t          |¦  «        ‚)Nr”   c                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S rO  )rR  r  rT  s    €€€rN   r›   z&DaskExpr.rolling_std.<locals>.<lambda>¯  r\  rP   Úrolling_stdz5Dask backend only supports `ddof=1` for `rolling_std`r^  r_  s    ```  rN   rc  zDaskExpr.rolling_stdª  r`  rP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )rS  r  rÿ   s    rN   r›   zDaskExpr.sum.<locals>.<lambda>¸  r  rP   rS  r   r  s    rN   rS  zDaskExpr.sum·  r  rP   c                ó0   — |                       d„ d¦  «        S )Nc                óN   — |                       ¦   «                              ¦   «         S rD   )Úcountr  rÿ   s    rN   r›   z DaskExpr.count.<locals>.<lambda>»  s   € °·
²
±´×0FÒ0FÑ0HÔ0H€ rP   rh  r   r  s    rN   rh  zDaskExpr.countº  s   € Ø×"Ò"Ð#HÐ#HÈ'ÑRÔRÐRrP   Údecimalsc                ó6   ‡— |                       ˆfd„d¦  «        S )Nc                ó.   •— |                       ‰¦  «        S rD   )Úround)r¦   ri  s    €rN   r›   z DaskExpr.round.<locals>.<lambda>¾  s   ø€ °·
²
¸8Ñ0DÔ0D€ rP   rl  r   )rM   ri  s    `rN   rl  zDaskExpr.round½  s#   ø€ Ø×"Ò"Ð#DÐ#DÐ#DÐ#DÀgÑNÔNÐNrP   c                óD   — dd l m} |                      |j        d¦  «        S )Nr   Úfloor)Ú
dask.arrayÚarrayr–   rn  ©rM   Údas     rN   rn  zDaskExpr.floorÀ  s,   € ØÐÐÐÐÐà×"Ò" 2¤8¨WÑ5Ô5Ð5rP   c                óD   — dd l m} |                      |j        d¦  «        S )Nr   Úceil)ro  rp  r–   rt  rq  s     rN   rt  zDaskExpr.ceilÅ  ó,   € ØÐÐÐÐÐà×"Ò" 2¤7¨FÑ3Ô3Ð3rP   c                ó0   — |                       d„ d¦  «        S )Nc                ó*   — |                       ¦   «         S rD   )Úuniquerÿ   s    rN   r›   z!DaskExpr.unique.<locals>.<lambda>Ë  r3  rP   rx  r   r  s    rN   rx  zDaskExpr.uniqueÊ  s   € Ø×"Ò"Ð#=Ð#=¸xÑHÔHÐHrP   c                ó0   — |                       d„ d¦  «        S )Nc                ó*   — |                       ¦   «         S rD   ©Údropnarÿ   s    rN   r›   z%DaskExpr.drop_nulls.<locals>.<lambda>Î  r3  rP   Ú
drop_nullsr   r  s    rN   r}  zDaskExpr.drop_nullsÍ  s   € Ø×"Ò"Ð#=Ð#=¸|ÑLÔLÐLrP   c                ó0   — |                       d„ d¦  «        S )Nc                ó*   — |                       ¦   «         S rD   )Úabsrÿ   s    rN   r›   zDaskExpr.abs.<locals>.<lambda>Ñ  s   € °·²±
´
€ rP   r€  r   r  s    rN   r€  zDaskExpr.absÐ  s   € Ø×"Ò"Ð#:Ð#:¸EÑBÔBÐBrP   c                ó0   — |                       d„ d¦  «        S )Nc                óX   — |                       d ddd ¬¦  «                             ¦   «         S )NTF)ÚaxisÚskipnaÚsplit_everyÚout)Úallr  rÿ   s    rN   r›   zDaskExpr.all.<locals>.<lambda>Õ  s.   € ˜ŸšØ $°E¸tð "ñ ô çŠi‰kŒkð rP   r‡  r   r  s    rN   r‡  zDaskExpr.allÓ  s)   € Ø×"Ò"ðð ð ñ	
ô 
ð 	
rP   c                ó0   — |                       d„ d¦  «        S )Nc                óV   — |                       ddd¬¦  «                             ¦   «         S )Nr   TF)rƒ  r„  r…  )Úanyr  rÿ   s    rN   r›   zDaskExpr.any.<locals>.<lambda>Ý  s$   € ˜Ÿš q°À5˜ÑIÔI×SÒSÑUÔU€ rP   rŠ  r   r  s    rN   rŠ  zDaskExpr.anyÛ  s#   € Ø×"Ò"ØUÐUØñ
ô 
ð 	
rP   r‹   úfloat | Nonec                óŠ   ‡ ‡‡— |€t           j        n|Š|€t          d¦  «        n|Šdˆ ˆˆfd„}‰                      |d¦  «        S )NÚnanr¦   rÁ   rA   c                ó¾   •— t          d| | k    ¦  «        }|                     d¦  «        }t          | j        ‰j        ¦  «        r‰n‰}|                      ||¦  «        S )NrÁ   F)r   Úfillnar   r  r2   Úmask)r¦   r�  ÚfillrM   Úvalue_nullableÚvalue_numpys      €€€rN   rc   zDaskExpr.fill_nan.<locals>.funcå  sb   ø€ å˜ T¨T¢\Ñ2Ô2ˆDØ—;’;˜uÑ%Ô%ˆDõ % T¤Z°Ô1EÑFÔFð!��à ð ð
 —9’9˜T 4Ñ(Ô(Ð(rP   Úfill_nan©r¦   rÁ   rA   rÁ   )ÚpdÚNAÚfloatr–   )rM   r‹   rc   r’  r“  s   `  @@rN   r”  zDaskExpr.fill_naná  sg   øøø€ Ø"' -�œ˜°UˆØ&+ m•e˜E‘l”l�l¸ˆð		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð ×"Ò" 4¨Ñ4Ô4Ð4rP   úSelf | NonNestedLiteralÚstrategyúFillNullStrategy | NoneÚlimitú
int | Nonec                óD   ‡‡‡— dˆˆˆfd„}|                       |d¦  «        S )Nr¦   rÁ   rA   c                óœ   •— ‰�|                       ‰¦  «        }n2‰dk    r|                      ‰¬¦  «        n|                      ‰¬¦  «        }|S )NÚforward)rœ  )r�  ÚffillÚbfill)r¦   Úres_serrœ  rš  r‹   s     €€€rN   rc   z DaskExpr.fill_null.<locals>.funcø  s\   ø€ ØÐ ØŸ+š+ eÑ,Ô,��ð   9Ò,Ð,ð —J’J U�JÑ+Ô+Ð+àŸš¨%˜Ñ0Ô0ð ð
 ˆNrP   Ú	fill_nullr•  r   )rM   r‹   rš  rœ  rc   s    ``` rN   r¤  zDaskExpr.fill_nullò  sE   øøø€ ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð ×"Ò" 4¨Ñ5Ô5Ð5rP   Úlower_boundú.Self | NumericLiteral | TemporalLiteral | NoneÚupper_boundc                ó6   — |                       d„ d||¬¦  «        S )Nc                ó0   — |                       ||¬¦  «        S )N)ÚlowerÚupper)Úclip)r¦   r¥  r§  s      rN   r›   zDaskExpr.clip.<locals>.<lambda>  s   € °4·9²9Ø!¨ð 4=ñ 4ô 4€ rP   r¬  )r¥  r§  r   )rM   r¥  r§  s      rN   r¬  zDaskExpr.clip  s6   € ð
 ×"Ò"ðð ð Ø#Ø#ð #ñ 
ô 
ð 	
rP   c                ó0   — |                       d„ d¦  «        S )Nc                ó*   — |                       ¦   «         S rD   )Údiffrÿ   s    rN   r›   zDaskExpr.diff.<locals>.<lambda>  ó   € °·	²	±´€ rP   r¯  r   r  s    rN   r¯  zDaskExpr.diff  s   € Ø×"Ò"Ð#;Ð#;¸VÑDÔDÐDrP   c                ó0   — |                       d„ d¦  «        S )Nc                óR   — |                       d¬¦  «                             ¦   «         S )NFr{  )Únuniquer  rÿ   s    rN   r›   z#DaskExpr.n_unique.<locals>.<lambda>  s    € ˜Ÿš¨U˜Ñ3Ô3×=Ò=Ñ?Ô?€ rP   Ún_uniquer   r  s    rN   r´  zDaskExpr.n_unique  s"   € Ø×"Ò"Ø?Ð?Àñ
ô 
ð 	
rP   c                ó0   — |                       d„ d¦  «        S )Nc                ó*   — |                       ¦   «         S rD   )r:  rÿ   s    rN   r›   z"DaskExpr.is_null.<locals>.<lambda>  r°  rP   Úis_nullr   r  s    rN   r·  zDaskExpr.is_null  s   € Ø×"Ò"Ð#;Ð#;¸YÑGÔGÐGrP   c                ó<   ‡ — dˆ fd„}‰                       |d¦  «        S )Nr¦   rÁ   rA   c                ó¢   •— t          | j        ‰j        ‰j        ¦  «        }|                     ¦   «         r| | k    S d|› d�}t          |¦  «        ‚)Nz4`.is_nan` only supported for numeric dtypes and not z, did you mean `.is_null`?)r   r  rJ   r2   r  r   )r¦   r  r  rM   s      €rN   rc   zDaskExpr.is_nan.<locals>.func  s^   ø€ Ý,Ø”
˜DœM¨4Ô+?ñô ˆEð ×ÒÑ!Ô!ð $Ø˜t’|Ð#ØjÈÐjÐjÐjˆCÝ'¨Ñ,Ô,Ð,rP   r·  r•  r   ©rM   rc   s   ` rN   Úis_nanzDaskExpr.is_nan  s9   ø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð ×"Ò" 4¨Ñ3Ô3Ð3rP   c                ó0   — |                       d„ d¦  «        S )Nc                ó4   — | j                              ¦   «         S rD   )Úsizer  rÿ   s    rN   r›   zDaskExpr.len.<locals>.<lambda>+  s   € °´	×0CÒ0CÑ0EÔ0E€ rP   Úlenr   r  s    rN   r¿  zDaskExpr.len*  s   € Ø×"Ò"Ð#EÐ#EÀuÑMÔMÐMrP   Úquantiler˜  Úinterpolationr.   c                ót   ‡— |dk    r!d
ˆfd„}|                       |d‰ddœ¬¦  «        S d	}t          |¦  «        ‚)NÚlinearr¦   rÁ   rA   c                óŽ   •— | j         dk    rd}t          |¦  «        ‚|                      ‰d¬¦  «                             ¦   «         S )Nr”   zK`Expr.quantile` is not supported for Dask backend with multiple partitions.Údask)ÚqÚmethod)Únpartitionsr6  rÀ  r  )r¦   r  rÀ  s     €rN   rc   zDaskExpr.quantile.<locals>.func2  sM   ø€ ØÔ# aÒ'Ð'Øg�CÝ-¨cÑ2Ô2Ð2Ø—}’}Ø vð %ñ ô ç’)‘+”+ðrP   rÀ  )rÀ  rÁ  r3   zx`higher`, `lower`, `midpoint`, `nearest` - interpolation methods are not supported by Dask. Please use `linear` instead.r•  r^  )rM   rÀ  rÁ  rc   r  s    `   rN   rÀ  zDaskExpr.quantile-  st   ø€ ð ˜HÒ$Ð$ðð ð ð ð ð ð ×&Ò&ØØØ+3ÀhÐOÐOð 'ñ ô ð ð
 IˆÝ! #Ñ&Ô&Ð&rP   c                ó6   — dd„}|                       |d¦  «        S )Nr¦   rÁ   rA   c                ó  — | j         }t          d|gd¬¦  «        }t          |                      ¦   «         |¦  «        }|                     |¦  «                             |di¦  «        |         }||                              |¦  «        S )Né   Ú
row_index_©Ún_bytesÚcolumnsÚprefixr  ©r¡   r   r   Úto_frameÚgroupbyÚaggÚisin)r¦   Ú_nameÚ	col_tokenÚframeÚfirst_distinct_indexs        rN   rc   z(DaskExpr.is_first_distinct.<locals>.funcC  s„   € Ø”IˆEÝ6Ø E 7°<ðñ ô ˆIõ " $§-¢-¡/¤/°9Ñ=Ô=ˆEØ#(§=¢=°Ñ#7Ô#7×#;Ò#;¸YÈÐ<NÑ#OÔ#OÐPYÔ#ZÐ Ø˜Ô#×(Ò(Ð)=Ñ>Ô>Ð>rP   Úis_first_distinctr•  r   rº  s     rN   rÚ  zDaskExpr.is_first_distinctB  s/   € ð	?ð 	?ð 	?ð 	?ð ×"Ò" 4Ð)<Ñ=Ô=Ð=rP   c                ó6   — dd„}|                       |d¦  «        S )Nr¦   rÁ   rA   c                ó  — | j         }t          d|gd¬¦  «        }t          |                      ¦   «         |¦  «        }|                     |¦  «                             |di¦  «        |         }||                              |¦  «        S )NrË  rÌ  rÍ  r  rÑ  )r¦   rÖ  r×  rØ  Úlast_distinct_indexs        rN   rc   z'DaskExpr.is_last_distinct.<locals>.funcO  sƒ   € Ø”IˆEÝ6Ø E 7°<ðñ ô ˆIõ " $§-¢-¡/¤/°9Ñ=Ô=ˆEØ"'§-¢-°Ñ"6Ô"6×":Ò":¸IÀuÐ;MÑ"NÔ"NÈyÔ"YÐØ˜Ô#×(Ò(Ð)<Ñ=Ô=Ð=rP   Úis_last_distinctr•  r   rº  s     rN   rÞ  zDaskExpr.is_last_distinctN  s/   € ð	>ð 	>ð 	>ð 	>ð ×"Ò" 4Ð);Ñ<Ô<Ð<rP   c                ó6   — dd„}|                       |d¦  «        S )Nr¦   rÁ   rA   c                ó¢   — | j         }|                      ¦   «                              |d¬¦  «                             d|t          f¬¦  «        dk    S )NFr{  r¾  )Úmetar”   )r¡   rÒ  rÓ  Ú	transformr8   )r¦   rÖ  s     rN   rc   z DaskExpr.is_unique.<locals>.func[  sG   € Ø”IˆEà—’‘”ß’˜ u�Ñ-Ô-ß’˜6¨µ¨�Ñ5Ô5ØòðrP   Ú	is_uniquer•  r   rº  s     rN   rã  zDaskExpr.is_uniqueZ  s.   € ð	ð 	ð 	ð 	ð ×"Ò" 4¨Ñ5Ô5Ð5rP   c                ó6   ‡— |                       ˆfd„d¦  «        S )Nc                ó.   •— |                       ‰¦  «        S rD   )rÕ  )r¦   r¢   s    €rN   r›   z DaskExpr.is_in.<locals>.<lambda>g  s   ø€ °·	²	¸%Ñ0@Ô0@€ rP   Úis_inr   r·   s    `rN   ræ  zDaskExpr.is_inf  s#   ø€ Ø×"Ò"Ð#@Ð#@Ð#@Ð#@À'ÑJÔJÐJrP   c                ó0   — |                       d„ d¦  «        S )Nc                ór   — |                       ¦   «                              ¦   «                              ¦   «         S rD   )r:  rS  r  rÿ   s    rN   r›   z%DaskExpr.null_count.<locals>.<lambda>k  s$   € ˜Ÿš™œŸšÑ*Ô*×4Ò4Ñ6Ô6€ rP   Ú
null_countr   r  s    rN   ré  zDaskExpr.null_counti  s"   € Ø×"Ò"Ø6Ð6¸ñ
ô 
ð 	
rP   Úpartition_byúSequence[str]Úorder_byc                ó  ‡ ‡‡‡‡— ddl m} ‰s‰sJ ‚dˆˆ fd„}n¹‰                      ¦   «         sd}t          |¦  «        ‚‰rd	}t          |¦  «        ‚|                     ‰ ¦  «        }	 |j        |         Šn?# t          $ r2 d
|› dd                     |j        ¦  «        › d�}t          |¦  «        d ‚w xY wt          |‰ j	        ¦  «        Šdˆˆˆˆ fd„}‰  
                    |‰ j        dz   ‰ j        dz   ‰ j        ‰ j        ‰ j        ¬¦  «        S )Nr   )ÚPandasLikeGroupByrQ   r#   rA   rR   c                ó2   •—  ‰ | j         ‰dddœŽ¦  «        S )NF)Ú
descendingÚ
nulls_last)Úsort)rQ   rì  rM   s    €€rN   rc   zDaskExpr.over.<locals>.funcw  s&   ø€ Ø�t˜G˜BœG X¸%ÈEÐRÐRÐRÑSÔSÐSrP   z˜Only elementary expressions are supported for `.over` in dask.

Please see: https://narwhals-dev.github.io/narwhals/concepts/improve_group_by_operation/z4`over` with `order_by` is not yet supported in Dask.zUnsupported function: z- in `over` context.

Supported functions are z, ú
c           
     ó„  •‡— t          ‰
| g ¦  «        \  }}t          j        ¦   «         5  t          j        ddt          ¬¦  «         | j                             ‰	¦  «        }‰dk    rLt          |¦  «        dk    rd}t          |¦  «        ‚ |j	        ‰fi ‰¤Ž 
                    |d         ¦  «        }n! |t          |¦  «                 j	        ‰fi ‰¤Ž}d d d ¦  «         n# 1 swxY w Y   |                      |                     t          t          ||¦  «        ¦  «        ¬¦  «        ¦  «        j        Šˆfd	„|D ¦   «         S )
NÚignorez.*`meta` is not specified)ÚmessageÚcategoryr¾  r”   z)Safety check failed, please report a bug.r   )rÏ  c                ó    •— g | ]
}‰|         ‘ŒS rb   rb   )r_   r¡   Úresult_frames     €rN   ra   z/DaskExpr.over.<locals>.func.<locals>.<listcomp>¬  s   ø€ Ð?Ð?Ð?¨t˜ TÔ*Ð?Ð?Ð?rP   )r   ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr|   rÓ  r¿  ÚAssertionErrorrâ  rÒ  ÚlistÚ_with_nativeÚrenameÚdictÚzip)rQ   r™   ÚaliasesÚgroupedr  Ú
res_nativerù  Údask_function_nameÚdask_kwargsrê  rM   s         @€€€€rN   rc   zDaskExpr.over.<locals>.func“  s·  øø€ Ý(IÈ$ÐPRÐTVÑ(WÔ(WÑ%�˜gåÔ,Ñ.Ô.ð ð åÔ+Ø Ø ;Ý!,ðñ ô ð ð
 !œi×/Ò/°Ñ=Ô=�GØ)¨VÒ3Ð3Ý˜|Ñ,Ô,°Ò1Ð1Ø"M˜CÝ"0°Ñ"5Ô"5Ð5Ø%6 WÔ%6Ø.ð&ð &Ø2=ð&ð &ç"š( <°¤?Ñ3Ô3ð #˜
ð &K W­T°,Ñ-?Ô-?Ô%@Ô%JØ.ð&ð &Ø2=ð&ð &˜
ð!ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð&  "ŸšØ×%Ò%­dµ3°|ÀWÑ3MÔ3MÑ.NÔ.NÐ%ÑOÔOñ ô  äð ð @Ð?Ð?Ð?°wÐ?Ñ?Ô?Ð?s   ªB*C Ã C$Ã'C$r”   z->overrv   ©rQ   r#   rA   rR   )Únarwhals._pandas_like.group_byrî  Ú_is_elementaryr6  Ú
_leaf_nameÚ_REMAP_AGGSrr   Újoinr   rK   rf   rF   rG   rH   rI   rJ   )	rM   rê  rì  rî  rc   r  r9   r  r  s	   ```    @@rN   ÚoverzDaskExpr.overn  sÏ  øøøøø€ àDÐDÐDÐDÐDÐDàð :	@ØˆOˆOˆOðTð Tð Tð Tð Tð Tð Tð Tà×$Ò$Ñ&Ô&ð 3	@ð_ð õ
 & cÑ*Ô*Ð*Øð ,	@àHˆCÝ% cÑ*Ô*Ð*à-×8Ò8¸Ñ>Ô>ˆMð9Ø%6Ô%BÀ=Ô%QÐ"Ð"øÝð 9ð 9ð 9ð\¨]ð \ð \Ø/3¯yªyÐ9JÔ9VÑ/WÔ/Wð\ð \ð \ð õ *¨#Ñ.Ô.°DÐ8ð9øøøõ =Ø˜tÔ2ñô ˆKð@ð @ð @ð @ð @ð @ð @ð @ð @ð6 �~Š~ØØ”+ ‘/ØÔ-°Ñ8Ø"&Ô"=Ø#Ô7Ø”Mð ñ 
ô 
ð 	
s   Á(A6 Á6<B2r  r*   c                ó@   ‡ ‡— dˆˆ fd„}‰                       |d¦  «        S )Nr¦   rÁ   rA   c                óX   •— t          ‰‰j        ¦  «        }|                      |¦  «        S rD   )r   rJ   r;  )r¦   Únative_dtyper  rM   s     €€rN   rc   zDaskExpr.cast.<locals>.func¸  s&   ø€ Ý3°E¸4¼=ÑIÔIˆLØ—;’;˜|Ñ,Ô,Ð,rP   r   r•  r   )rM   r  rc   s   `` rN   r   zDaskExpr.cast·  s?   øø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð ×"Ò" 4¨Ñ0Ô0Ð0rP   c                óD   — dd l m} |                      |j        d¦  «        S )Nr   Ú	is_finite)ro  rp  r–   Úisfiniterq  s     rN   r  zDaskExpr.is_finite¾  s,   € ØÐÐÐÐÐà×"Ò" 2¤;°Ñ<Ô<Ð<rP   Úbasec                óL   ‡‡— dd l mŠ dˆˆfd„}|                      |d¦  «        S )Nr   r¦   rÁ   rA   c                óZ   •— ‰                      | ¦  «        ‰                      ‰¦  «        z  S rD   )Úlog)r¦   r  rr  s    €€rN   Ú_logzDaskExpr.log.<locals>._logÆ  s"   ø€ Ø—6’6˜$‘<”< "§&¢&¨¡,¤,Ñ.Ð.rP   r  r•  )ro  rp  r–   )rM   r  r  rr  s    ` @rN   r  zDaskExpr.logÃ  sQ   øø€ ØÐÐÐÐÐð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð ×"Ò" 4¨Ñ/Ô/Ð/rP   c                óD   — dd l m} |                      |j        d¦  «        S )Nr   Úexp)ro  rp  r–   r  rq  s     rN   r  zDaskExpr.expË  s,   € ØÐÐÐÐÐà×"Ò" 2¤6¨5Ñ1Ô1Ð1rP   c                óD   — dd l m} |                      |j        d¦  «        S )Nr   Úsqrt)ro  rp  r–   r  rq  s     rN   r  zDaskExpr.sqrtÐ  ru  rP   Úkeepr+   c               óD   ‡— dˆfd„}|                       |dd‰i¬¦  «        S )	Nr¦   rÁ   rA   c                ó¤   •— | j         }|                      ¦   «                              ¦   «         |         }‰dk    r|                     d¦  «        n|S )NrŠ  r”   )r¡   rÒ  ÚmodeÚhead)r¦   rÖ  r`   r  s      €rN   rc   zDaskExpr.mode.<locals>.funcÖ  sD   ø€ Ø”IˆEØ—]’]‘_”_×)Ò)Ñ+Ô+¨EÔ2ˆFØ%)¨U¢] ]�6—;’;˜q‘>”>�>¸Ð>rP   r"  r  r3   r•  r   )rM   r  rc   s    ` rN   r"  zDaskExpr.modeÕ  sB   ø€ ð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð
 ×"Ò" 4¨ÀÈ¸~Ð"ÑNÔNÐNrP   r   c                ó    — t          | ¦  «        S rD   r   r  s    rN   r:   zDaskExpr.strÝ  s   € å& tÑ,Ô,Ð,rP   r   c                ó    — t          | ¦  «        S rD   r   r  s    rN   ÚdtzDaskExpr.dtá  s   € å(¨Ñ.Ô.Ð.rP   r   rÿ  Ústruct)r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r'   r4   r@   rA   rB   r	  )rA   r%   )rX   rY   rA   r   )
ri   rj   rk   r<   rl   r(   r9   r:   rA   r   )rx   r8   rl   r(   rA   r   )rh   N)
r‚   r:   r4   r@   r5   rƒ   r„   r…   rA   r   )rc   r>   rA   r   )
r5   r    r¡   r:   r¢   r   rŸ   r£   rA   r   )rª   r:   r¢   r   rA   r   )rª   r:   r°   rƒ   r¢   r   rA   r   )r¢   r   rA   r   )r¢   rÒ   rA   r   )rA   r   )r  r8   rA   r   )r,  r8   rA   r   )rŸ   r£   rA   r   )rJ  r8   rK  r8   rL  r£   rA   r   )
rJ  r8   rK  r8   rL  r£   r  r8   rA   r   )ri  r8   rA   r   )r‹   r‹  rA   r   )r‹   r™  rš  r›  rœ  r�  rA   r   )r¥  r¦  r§  r¦  rA   r   )rÀ  r˜  rÁ  r.   rA   r   )rê  rë  rì  rë  rA   r   )r  r*   rA   r   )r  r˜  rA   r   )r  r+   rA   r   )rA   r   )rA   r   )bÚ__name__Ú
__module__Ú__qualname__r   r  r2   Ú__annotations__rO   rT   rW   rg   Úclassmethodrw   r�   r–   r�   r©   r¯   r³   rµ   rº   r¼   r¾   rÆ   rÏ   rÑ   rÔ   r×   rÙ   rÛ   rÝ   rß   rá   rã   rå   rî   rõ   r÷   rú   rþ   r  r  r  r  r  r%  r(  r+  r/  r4  r<  r@  rE  rI  rU  rY  r]  rc  rS  rh  rl  rn  rt  rx  r}  r€  r‡  rŠ  r”  r¤  r¬  r¯  r´  r·  r»  r¿  rÀ  rÚ  rÞ  rã  ræ  ré  r  r   r  r  r  r  r"  Úpropertyr:   r&  r   ÚrankÚfirstÚlastrÿ  r'  rb   rP   rN   r1   r1   1   sØ  € € € € € € ð '5Ô&9€OÐ9Ð9Ð9Ñ9ð .2ð3ð 3ð 3ð 3ð 3ð 3ð(ð ð ð ð4ð 4ð 4ð 4ð

ð 
ð 
ð 
ð  ð  ð
ð 
ð 
ð 
ð 
ñ „[ð
ð8 ð
ð 
ð 
ñ „[ð
ð$ Ø-1ð
ð 
ð 
ð 
ð 
ð>
ð 
ð 
ð 
ð2 ðð ð ð ð ð ð
ð 
ð 
ð 
ð

ð 
ð 
ð 
ð1ð 1ð 1ð 1ð1ð 1ð 1ð 1ð1ð 1ð 1ð 1ð5ð 5ð 5ð 5ð
ð 
ð 
ð 
ð(1ð 1ð 1ð 1ð1ð 1ð 1ð 1ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð1ð 1ð 1ð 1ð0ð 0ð 0ð 0ðNð Nð Nð NðRð Rð Rð Rðð ð ð ð&Mð Mð Mð MðNð Nð Nð NðQð Qð Qð QðQð Qð Qð Qð
3ð 
3ð 
3ð 
3ðOð Oð Oð OðOð Oð Oð Oð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ðQð Qð Qð QðYð Yð Yð YðHð Hð Hð HðJð Jð Jð Jð
ð 
ð 
ð 
ðJð Jð Jð JðJð Jð Jð JðLð Lð Lð Lð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð'ð 'ð 'ð 'ð'ð 'ð 'ð 'ðOð Oð Oð OðSð Sð Sð SðOð Oð Oð Oð6ð 6ð 6ð 6ð
4ð 4ð 4ð 4ð
Ið Ið Ið IðMð Mð Mð MðCð Cð Cð Cð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð5ð 5ð 5ð 5ð"6ð 6ð 6ð 6ð&
ð 
ð 
ð 
ðEð Eð Eð Eð
ð 
ð 
ð 
ð
Hð Hð Hð Hð
4ð 
4ð 
4ð 
4ðNð Nð Nð Nð'ð 'ð 'ð 'ð*
>ð 
>ð 
>ð 
>ð
=ð 
=ð 
=ð 
=ð
6ð 
6ð 
6ð 
6ðKð Kð Kð Kð
ð 
ð 
ð 
ð
G
ð G
ð G
ð G
ðR1ð 1ð 1ð 1ð=ð =ð =ð =ð
0ð 0ð 0ð 0ð2ð 2ð 2ð 2ð
4ð 4ð 4ð 4ð
Oð Oð Oð Oð ð-ð -ð -ñ „Xð-ð ð/ð /ð /ñ „Xð/ð ˆ?ÑÔ€DØˆOÑÔ€EØˆ?ÑÔ€Dð ,˜OÑ-Ô-€DÐ-Ð-Ð-Ñ-Ø-˜oÑ/Ô/€FÐ/Ð/Ð/Ñ/Ð/Ð/rP   r1   )r#   rÁ   )BÚ
__future__r   rú  Útypingr   r   r   r   r   Úpandasr–  Únarwhals._compliantr	   r
   Únarwhals._dask.expr_dtr   Únarwhals._dask.expr_strr   Únarwhals._dask.utilsr   r   r   r   Únarwhals._expression_parsingr   r   Únarwhals._pandas_like.exprr   Únarwhals._pandas_like.utilsr   r   Únarwhals._utilsr   r   r   r  r   Úcollections.abcr   Údask.dataframe.dask_exprÚ	dataframeÚ	dask_exprÚdxÚtyping_extensionsr   Únarwhals._compliant.typingr   r    r!   r"   Únarwhals._dask.dataframer#   rV   r%   r&   r'   r(   Únarwhals.typingr)   r*   r+   r,   r-   r.   r/   r1   rb   rP   rN   ú<module>rE     sÀ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >à Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð UÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ IÐ IÐ IÐ IÐ IÐ IØ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sðð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5àð Ø(Ð(Ð(Ð(Ð(Ð(à)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø&Ð&Ð&Ð&Ð&Ð&àZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZØ6Ð6Ð6Ð6Ð6Ð6Ø6Ð6Ð6Ð6Ð6Ð6ØCÐCÐCÐCÐCÐCÐCÐCØ8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðz
0ð z
0ð z
0ð z
0ð z
0ØÐ)Ô*ØÐ2Ô3ñz
0ô z
0ð z
0ð z
0ð z
0rP   