§
    cŠtjIi  ã                  ó²  — d dl mZ d dlZd dl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 m!Z! d dl"m#Z# erId dl$m%Z%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l6m7Z7 d dlm8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z> d"d„Z?d"d„Z@d"d„ZAd#d„ZB G d„ d ed!         e
d!         ¦  «        ZCdS )$é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚcast)ÚDepthTrackingExprÚLazyExpr©ÚDaskExprDateTimeNamespace©ÚDaskExprStringNamespace)Úadd_row_indexÚalign_series_full_broadcastÚmake_group_by_kwargsÚnarwhals_to_native_dtype)Úevaluate_nodesÚ!evaluate_output_names_and_aliases)Ú"window_kwargs_to_pandas_equivalent)Úget_dtype_backendÚnative_to_narwhals_dtype)Ú
NO_DEFAULTÚImplementationÚgenerate_temporary_column_nameÚnot_implemented©ÚInvalidOperationError)ÚCallableÚSequence)ÚSelf)Ú
AliasNamesÚ	EvalNamesÚ
EvalSeriesÚNarwhalsAggregation)ÚDaskLazyFrame©ÚDaskNamespace)Ú	NoDefault)ÚVersionÚ_LimitedContext)ÚFillNullStrategyÚ	IntoDTypeÚModeKeepStrategyÚRollingInterpolationMethodÚattrÚstrÚreturnr   c                ó   ‡ — ˆ fd„S )Nc                ó8   •‡— |                       ˆˆfd„¦  «        S )Nc                óT   •—  t          | ‰¦  «        di ‰¤Ž                     ¦   «         S ©N© )ÚgetattrÚ	to_series©Úexprr-   Úkwargss    €€úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/narwhals/_dask/expr.pyú<lambda>z6simple_aggregation.<locals>.<lambda>.<locals>.<lambda>7   s.   ø€ Ð(•W˜T 4Ñ(Ô(Ð2Ð2¨6Ð2Ð2×<Ò<Ñ>Ô>€ ó    ©Ú_with_callable©Úselfr9   r-   s    `€r:   r;   z$simple_aggregation.<locals>.<lambda>6   s'   øø€  $×"5Ò"5Ø>Ð>Ð>Ð>Ð>ñ#ô #€ r<   r4   ©r-   s   `r:   Úsimple_aggregationrB   4   ó   ø€ ðð ð ð ð r<   c                ó   ‡ — ˆ fd„S )Nc                ó8   •‡— |                       ˆˆfd„¦  «        S )Nc                ó0   •—  t          | ‰¦  «        di ‰¤ŽS r3   ©r5   r7   s    €€r:   r;   z1simple_method.<locals>.<lambda>.<locals>.<lambda>>   s"   ø€ Ð(•W˜T 4Ñ(Ô(Ð2Ð2¨6Ð2Ð2€ r<   r=   r?   s    `€r:   r;   zsimple_method.<locals>.<lambda>=   s'   øø€  $×"5Ò"5Ø2Ð2Ð2Ð2Ð2ñ#ô #€ r<   r4   rA   s   `r:   Úsimple_methodrH   ;   rC   r<   c                ó   ‡ — ˆ fd„S )Nc                ó0   •— |                       ‰|¦  «        S ©N)Ú
_binary_op)r@   Úotherr-   s     €r:   r;   zsimple_binary.<locals>.<lambda>D   s   ø€ ˜tŸš¨t°UÑ;Ô;€ r<   r4   rA   s   `r:   Úsimple_binaryrN   B   s   ø€ à;Ð;Ð;Ð;Ð;r<   ÚopúCallable[..., dx.Series]c                ó   ‡ — ˆ fd„S )Nc                ó0   •— |                       ‰|¦  «        S rK   )Ú_reverse_binary_op)r@   rM   rO   s     €r:   r;   z&trivial_binary_right.<locals>.<lambda>I   s   ø€ ˜t×6Ò6°r¸5ÑAÔA€ r<   r4   )rO   s   `r:   Útrivial_binary_rightrT   G   s   ø€ àAÐAÐAÐAÐAr<   c                  óæ  — e Zd ZU ej        Zded<    ed¦  «        Z ed¦  «        Z	 ed¦  «        Z
 ed¦  «        Z ed¦  «        Z ed¦  «        Z ed	¦  «        Z ed
¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed„ ¦  «        Z ed„ ¦  «        Z ed„ ¦  «        Z ed„ ¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z  ed¦  «        Z! ed¦  «        Z" ed¦  «        Z# ed¦  «        Z$ ed¦  «        Z% ed¦  «        Z& e'd ¦  «        Z( e'd!¦  «        Z) e'd"¦  «        Z* e'd#¦  «        Z+ e'd$¦  «        Z, e'd%¦  «        Z- e'd&¦  «        Z. e'd'¦  «        Z/d¤d2„Z0d¥d6„Z1d¦d8„Z2d§d:„Z3e4d¨d@„¦   «         Z5e4d©dC„¦   «         Z6dªdF„Z7d«dH„Z8d¬dL„Z9d­dO„Z:d®dQ„Z;d¯dR„Z<d¯dS„Z=d§dT„Z>d°dV„Z?d±dY„Z@d±dZ„ZAd±d[„ZBd±d\„ZCd±d]„ZDd²da„ZEd²db„ZFd³dd„ZGd³de„ZHd§df„ZId§dg„ZJd´dj„ZKdµdp„ZLd¶ds„ZMd·dt„ZNd¸du„ZOd§dv„ZPd§dw„ZQd§dx„ZRd¹d}„ZSd§d~„ZTd§d„ZUd§d€„ZVd¯d�„ZWd§d‚„ZXdºd…„ZYd»d‡„ZZd¼dŠ„Z[d§d‹„Z\d½d�„Z]d§dŽ„Z^d§d�„Z_d§d�„Z`d§d‘„Zad¾d”„Zbd¿dœ„ZceddÀdž„¦   «         ZeeddÁd „¦   «         Zf eg¦   «         Zh eg¦   «         Zi eg¦   «         Zj eg¦   «         Zk eg¦   «         Zl eg¦   «         ZmdKed¡<    eg¦   «         ZndKed¢<   d£S )ÂÚDaskExprr   Ú_implementationÚ__add__Ú__sub__Ú__mul__Ú__truediv__Ú__pow__Ú__mod__Ú__eq__Ú__ne__Ú__gt__Ú__ge__Ú__lt__Ú__le__Ú__and__Ú__or__c                ó   — | |z
  S rK   r4   ©ÚxÚys     r:   r;   zDaskExpr.<lambda>b   ó
   € °°Q±€ r<   c                ó   — | |z  S rK   r4   rg   s     r:   r;   zDaskExpr.<lambda>c   s
   € °Q¸±U€ r<   c                ó   — | |z  S rK   r4   rg   s     r:   r;   zDaskExpr.<lambda>d   s
   € °°A±€ r<   c                ó   — | |z  S rK   r4   rg   s     r:   r;   zDaskExpr.<lambda>e   rj   r<   ÚallÚanyÚcountÚkurtosisÚmaxÚmeanÚminÚskewÚstdÚsumÚvarÚ
__invert__Ú__neg__ÚabsÚdiffÚdropnaÚisnaÚroundÚuniqueÚcallú$EvalSeries[DaskLazyFrame, dx.Series]Úevaluate_output_namesúEvalNames[DaskLazyFrame]Úalias_output_namesúAliasNames | NoneÚversionr'   r/   ÚNonec               ó>   — || _         || _        || _        || _        d S rK   )Ú_callÚ_evaluate_output_namesÚ_alias_output_namesÚ_version)r@   r�   rƒ   r…   r‡   s        r:   Ú__init__zDaskExpr.__init__z   s&   € ð ˆŒ
Ø&;ˆÔ#Ø#5ˆÔ ØˆŒˆˆr<   Údfr#   úSequence[dx.Series]c                ó,   — |                       |¦  «        S rK   )rŠ   )r@   r�   s     r:   Ú__call__zDaskExpr.__call__‡   s   € Ø�zŠz˜"‰~Œ~Ðr<   r%   c                ó0   — ddl m}  || j        ¬¦  «        S )Nr   r$   )r‡   )Únarwhals._dask.namespacer%   r�   )r@   r%   s     r:   Ú__narwhals_namespace__zDaskExpr.__narwhals_namespace__Š   s)   € Ø:Ð:Ð:Ð:Ð:Ð:àˆ} T¤]Ð3Ñ3Ô3Ð3r<   r   c                ó`   ‡ — dˆ fd„}‰                       |‰ j        ‰ j        ‰ j        ¬¦  «        S )Nr�   r#   r/   úlist[dx.Series]c                ó.   •— d„  ‰| ¦  «        D ¦   «         S )Nc                ó4   — g | ]}|j         d          d          ‘ŒS )r   )Úloc)Ú.0Úresults     r:   ú
<listcomp>z4DaskExpr.broadcast.<locals>.func.<locals>.<listcomp>“   s#   € Ð<Ð<Ð<¨�F”J˜q”M !Ô$Ð<Ð<Ð<r<   r4   )r�   r@   s    €r:   Úfuncz DaskExpr.broadcast.<locals>.func�   s!   ø€ ð =Ð<°4°4¸±8´8Ð<Ñ<Ô<Ð<r<   ©rƒ   r…   r‡   ©r�   r#   r/   r—   ©Ú	__class__r‹   rŒ   r�   ©r@   rž   s   ` r:   Ú	broadcastzDaskExpr.broadcast�   sR   ø€ ð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð
 �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
ð 	
r<   Úclsú
type[Self]Úevaluate_column_namesÚcontextr(   c              ó8   ‡— dˆfd„} | |‰d |j         ¬¦  «        S )Nr�   r#   r/   r—   c                ó¢   •‡ — 	 ˆ fd„ ‰‰ ¦  «        D ¦   «         S # t           $ r)}‰                       ‰‰ ¦  «        ¦  «        x}r||‚‚ d }~ww xY w)Nc                ó*   •— g | ]}‰j         |         ‘ŒS r4   )Ú_native_frame)r›   Úcolumn_namer�   s     €r:   r�   z<DaskExpr.from_column_names.<locals>.func.<locals>.<listcomp>¦   s1   ø€ ð ð ð à#ð Ô$ [Ô1ðð ð r<   )ÚKeyErrorÚ_check_columns_exist)r�   ÚeÚerrorr§   s   `  €r:   rž   z(DaskExpr.from_column_names.<locals>.func¤   s’   øø€ ððð ð ð à'<Ð'<¸RÑ'@Ô'@ðñ ô ð øõ ð ð ð Ø×3Ò3Ð4IÐ4IÈ"Ñ4MÔ4MÑNÔNÐN�5ð 'Ø QÐ&Øøøøøðøøøs   „ ›
A¥$A	Á	ArŸ   r    )r�   )r¥   r§   r¨   rž   s    `  r:   Úfrom_column_nameszDaskExpr.from_column_namesœ   sK   ø€ ð		ð 		ð 		ð 		ð 		ð 		ð ˆsØØ"7Ø#ØÔ$ð	
ñ 
ô 
ð 	
r<   Úcolumn_indicesÚintc               ó^   ‡— dˆfd„} | ||                       ‰¦  «        d |j        ¬¦  «        S )Nr�   r#   r/   r—   c                ó"   •‡ — ˆ fd„‰D ¦   «         S )Nc                ó<   •— g | ]}‰j         j        d d …|f         ‘ŒS rK   )ÚnativeÚiloc)r›   Úir�   s     €r:   r�   z>DaskExpr.from_column_indices.<locals>.func.<locals>.<listcomp>¹   s*   ø€ ÐAÐAÐA¨Q�B”I”N 1 1 1 a 4Ô(ÐAÐAÐAr<   r4   )r�   r³   s   `€r:   rž   z*DaskExpr.from_column_indices.<locals>.func¸   s   øø€ ØAÐAÐAÐA°.ÐAÑAÔAÐAr<   rŸ   r    )Ú_eval_names_indicesr�   )r¥   r¨   r³   rž   s     ` r:   Úfrom_column_indiceszDaskExpr.from_column_indices¶   s_   ø€ ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð ˆsØØ"%×"9Ò"9¸.Ñ"IÔ"IØ#ØÔ$ð	
ñ 
ô 
ð 	
r<   rP   Úexpressifiable_argsc               óh   ‡ ‡‡— dˆˆˆ fd„}‰                       |‰ j        ‰ j        ‰ j        ¬¦  «        S )Nr�   r#   r/   r—   c                ó¾   •‡ — g }‰                      ‰ ¦  «        }ˆ fd„‰                     ¦   «         D ¦   «         }|D ] } ‰|fi |¤Ž}|                     |¦  «         Œ!|S )Nc                óB   •— i | ]\  }}|‰                      |¦  «        “ŒS r4   ©Ú_evaluate_single_output_expr)r›   ÚkeyÚvaluer�   s      €r:   ú
<dictcomp>z9DaskExpr._with_callable.<locals>.func.<locals>.<dictcomp>Ì   s=   ø€ ð #ð #ð #á�C˜ð �R×4Ò4°UÑ;Ô;ð#ð #ð #r<   )rŠ   ÚitemsÚappend)	r�   Únative_resultsÚnative_series_listÚother_native_seriesÚnative_seriesÚresult_nativer�   r½   r@   s	   `     €€€r:   rž   z%DaskExpr._with_callable.<locals>.funcÉ   s”   øø€ Ø.0ˆNØ!%§¢¨B¡¤Ðð#ð #ð #ð #à"5×";Ò";Ñ"=Ô"=ð#ñ #ô #Ðð "4ð 5ð 5�Ø $  ]Ð JÐ JÐ6IÐ JÐ J�Ø×%Ò% mÑ4Ô4Ð4Ð4Ø!Ð!r<   rŸ   r    r¡   )r@   r�   r½   rž   s   ``` r:   r>   zDaskExpr._with_callableÂ   s^   øøø€ ð
	"ð 
	"ð 
	"ð 
	"ð 
	"ð 
	"ð 
	"ð 
	"ð �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
ð 	
r<   rž   c               ó†   ‡‡— | j         Š‰€d n	‰€‰nˆˆfd„} t          | ¦  «        | j        | j        || j        ¬¦  «        S )Nc                ó,   •—  ‰ ‰| ¦  «        ¦  «        S rK   r4   )Úoutput_namesÚcurrent_alias_output_namesrž   s    €€r:   r;   z3DaskExpr._with_alias_output_names.<locals>.<lambda>ã   s   ø€  d dÐ+EÐ+EÀlÑ+SÔ+SÑ&TÔ&T€ r<   )r�   rƒ   r…   r‡   )rŒ   ÚtyperŠ   r‹   r�   )r@   rž   r…   rÐ   s    ` @r:   Ú_with_alias_output_namesz!DaskExpr._with_alias_output_namesÜ   sr   øø€ Ø%)Ô%=Ð"ð ˆ|ð ˆDð *Ð1ð �àTÐTÐTÐTÐTð 	ð �t�D‰zŒzØ”Ø"&Ô"=Ø1Ø”Mð	
ñ 
ô 
ð 	
r<   ú%Callable[[dx.Series, Any], dx.Series]rM   r   c                ó0   — |                       ||¬¦  «        S )N)rM   r=   )r@   r�   rM   s      r:   Ú_with_binaryzDaskExpr._with_binaryì   s   € ð ×"Ò" 4¨uÐ"Ñ5Ô5Ð5r<   Úop_namer.   c                ó6   ‡— |                       ˆfd„|¦  «        S )Nc                ó6   •—  t          | ‰¦  «        |¦  «        S rK   rG   )r8   rM   rÖ   s     €r:   r;   z%DaskExpr._binary_op.<locals>.<lambda>ò   s   ø€ Ð5KµW¸TÀ7Ñ5KÔ5KÈEÑ5RÔ5R€ r<   )rÕ   )r@   rÖ   rM   s    ` r:   rL   zDaskExpr._binary_opñ   s$   ø€ Ø× Ò Ð!RÐ!RÐ!RÐ!RÐTYÑZÔZÐZr<   Úoperator_funcc                ó\   ‡— |                       ˆfd„|¦  «                             d¦  «        S )Nc                ó   •—  ‰|| ¦  «        S rK   r4   )r8   rM   rÙ   s     €r:   r;   z-DaskExpr._reverse_binary_op.<locals>.<lambda>ø   s   ø€   ¨e°TÑ :Ô :€ r<   Úliteral)rÕ   Úalias)r@   rÙ   rM   s    ` r:   rS   zDaskExpr._reverse_binary_opô   s8   ø€ ð × Ò Ø:Ð:Ð:Ð:¸Eñ
ô 
ç
Š%�	Ñ
Ô
ð	r<   c                óp   ‡ ‡‡— dd„Šdˆˆˆ fd	„}‰                       |‰ j        ‰ j        ‰ j        ¬
¦  «        S )Nr�   r#   Úseriesú	dx.SeriesrM   r/   c                ó„   — t          | ||¦  «        \  }}|                     |¦  «                             |dk    d ¦  «        S ©Nr   ©r   Ú__floordiv__Úwhere©r�   rß   rM   s      r:   Ú	_floordivz(DaskExpr.__floordiv__.<locals>._floordivü   sA   € õ 8¸¸FÀEÑJÔJ‰MˆF�EØ×'Ò'¨Ñ.Ô.×5Ò5°e¸q²jÀ$ÑGÔGÐGr<   r—   c                ód   •‡ ‡— ‰                       ‰¦  «        Šˆˆ ˆfd„ ‰‰ ¦  «        D ¦   «         S )Nc                ó*   •— g | ]} ‰‰|‰¦  «        ‘ŒS r4   r4   )r›   rß   rç   r�   Úother_seriess     €€€r:   r�   z7DaskExpr.__floordiv__.<locals>.func.<locals>.<listcomp>  s'   ø€ ÐOÐOÐO¸F�I�I˜b &¨,Ñ7Ô7ÐOÐOÐOr<   rÁ   )r�   rê   rç   rM   r@   s   `@€€€r:   rž   z#DaskExpr.__floordiv__.<locals>.func  s@   øøø€ Ø×:Ò:¸5ÑAÔAˆLØOÐOÐOÐOÐOÐOÀdÀdÈ2ÁhÄhÐOÑOÔOÐOr<   rŸ   ©r�   r#   rß   rà   rM   rà   r/   rà   r    r¡   )r@   rM   rž   rç   s   `` @r:   rä   zDaskExpr.__floordiv__û   s~   øøø€ ð	Hð 	Hð 	Hð 	Hð	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
ð 	
r<   c                ó–   ‡ ‡‡— dd„Šdˆˆˆ fd	„}‰                       |‰ j        ‰ j        ‰ j        ¬
¦  «                             d¦  «        S )Nr�   r#   rß   rà   rM   r/   c                ó„   — t          | ||¦  «        \  }}|                     |¦  «                             |dk    d ¦  «        S râ   rã   ræ   s      r:   Ú
_rfloordivz*DaskExpr.__rfloordiv__.<locals>._rfloordiv  sA   € õ 8¸¸FÀEÑJÔJ‰MˆF�EØ×&Ò& vÑ.Ô.×5Ò5°fÀ²kÀ4ÑHÔHÐHr<   r—   c                ód   •‡ ‡— ‰                       ‰¦  «        Šˆˆ ˆfd„ ‰‰ ¦  «        D ¦   «         S )Nc                ó*   •— g | ]} ‰‰|‰¦  «        ‘ŒS r4   r4   )r›   rß   rî   r�   Úother_natives     €€€r:   r�   z8DaskExpr.__rfloordiv__.<locals>.func.<locals>.<listcomp>  s'   ø€ ÐPÐPÐP¸V�J�J˜r 6¨<Ñ8Ô8ÐPÐPÐPr<   rÁ   )r�   rñ   rî   rM   r@   s   `@€€€r:   rž   z$DaskExpr.__rfloordiv__.<locals>.func  s@   øøø€ Ø×:Ò:¸5ÑAÔAˆLØPÐPÐPÐPÐPÐPÀtÀtÈBÁxÄxÐPÑPÔPÐPr<   rŸ   rÜ   rë   r    )r¢   r‹   rŒ   r�   rÝ   )r@   rM   rž   rî   s   `` @r:   Ú__rfloordiv__zDaskExpr.__rfloordiv__  s�   øøø€ ð	Ið 	Ið 	Ið 	Ið	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
÷
 Š%�	Ñ
Ô
ð	r<   c                óJ   ‡ ‡— ddl mŠ dˆˆ fd„}‰                      |¦  «        S )Nr   r   Úsrà   r/   c                óÜ   •— t          | j        ‰j        t          j        ¦  «        }|                     ¦   «         sd} ‰|¦  «        ‚|                      ¦   «                              ¦   «         S )Nz<`median` operation not supported for non-numeric input type.)r   Údtyper�   r   ÚDASKÚ
is_numericÚmedian_approximater6   )rô   rö   Úmsgr   r@   s      €€r:   rž   zDaskExpr.median.<locals>.func"  sc   ø€ Ý,¨Q¬W°d´mÅ^ÔEXÑYÔYˆEØ×#Ò#Ñ%Ô%ð 1ØT�Ø+Ð+¨CÑ0Ô0Ð0Ø×'Ò'Ñ)Ô)×3Ò3Ñ5Ô5Ð5r<   )rô   rà   r/   rà   )Únarwhals.exceptionsr   r>   )r@   rž   r   s   ` @r:   ÚmedianzDaskExpr.median  sO   øø€ Ø=Ð=Ð=Ð=Ð=Ð=ð	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð ×"Ò" 4Ñ(Ô(Ð(r<   Únc                ó4   ‡— |                       ˆfd„¦  «        S )Nc                ó.   •— |                       ‰¦  «        S rK   )Úshift)r8   rý   s    €r:   r;   z DaskExpr.shift.<locals>.<lambda>,  s   ø€ °·
²
¸1±´€ r<   r=   )r@   rý   s    `r:   r   zDaskExpr.shift+  s!   ø€ Ø×"Ò"Ð#=Ð#=Ð#=Ð#=Ñ>Ô>Ð>r<   ÚreverseÚboolc               óT   — |rd}t          |¦  «        ‚|                      d„ ¦  «        S )Nz:`cum_sum(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rK   )Úcumsum©r8   s    r:   r;   z"DaskExpr.cum_sum.<locals>.<lambda>4  ó   € °·²±´€ r<   ©ÚNotImplementedErrorr>   ©r@   r  rú   s      r:   Úcum_sumzDaskExpr.cum_sum.  s5   € Øð 	+àNˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#=Ð#=Ñ>Ô>Ð>r<   c               óT   — |rd}t          |¦  «        ‚|                      d„ ¦  «        S )Nz<`cum_count(reverse=True)` is not supported with Dask backendc                ó€   — |                       ¦   «                               t          ¦  «                             ¦   «         S rK   )r~   Úastyper´   r  r  s    r:   r;   z$DaskExpr.cum_count.<locals>.<lambda>;  s*   € °$·)²)±+´+°×0EÒ0EÅcÑ0JÔ0J×0QÒ0QÑ0SÔ0S€ r<   r  r
  s      r:   Ú	cum_countzDaskExpr.cum_count6  s5   € Øð 	+ØPˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#SÐ#SÑTÔTÐTr<   c               óT   — |rd}t          |¦  «        ‚|                      d„ ¦  «        S )Nz:`cum_min(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rK   )Úcumminr  s    r:   r;   z"DaskExpr.cum_min.<locals>.<lambda>B  r  r<   r  r
  s      r:   Úcum_minzDaskExpr.cum_min=  ó5   € Øð 	+ØNˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#=Ð#=Ñ>Ô>Ð>r<   c               óT   — |rd}t          |¦  «        ‚|                      d„ ¦  «        S )Nz:`cum_max(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rK   )Úcummaxr  s    r:   r;   z"DaskExpr.cum_max.<locals>.<lambda>I  r  r<   r  r
  s      r:   Úcum_maxzDaskExpr.cum_maxD  r  r<   c               óT   — |rd}t          |¦  «        ‚|                      d„ ¦  «        S )Nz;`cum_prod(reverse=True)` is not supported with Dask backendc                ó*   — |                       ¦   «         S rK   )Úcumprodr  s    r:   r;   z#DaskExpr.cum_prod.<locals>.<lambda>P  s   € °·²±´€ r<   r  r
  s      r:   Úcum_prodzDaskExpr.cum_prodK  s5   € Øð 	+ØOˆCÝ% cÑ*Ô*Ð*à×"Ò"Ð#>Ð#>Ñ?Ô?Ð?r<   Úwindow_sizeÚmin_samplesÚcenterc               ó<   ‡‡‡— |                       ˆˆˆfd„¦  «        S )Nc                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S ©N)ÚwindowÚmin_periodsr  )Úrollingrw   ©r8   r  r  r  s    €€€r:   r;   z&DaskExpr.rolling_sum.<locals>.<lambda>T  s-   ø€ ˜ŸšØ"°ÀFð &ñ ô çŠc‰eŒeð r<   r=   ©r@   r  r  r  s    ```r:   Úrolling_sumzDaskExpr.rolling_sumR  s;   øøø€ Ø×"Ò"ðð ð ð ð ð ñ
ô 
ð 	
r<   c               ó<   ‡‡‡— |                       ˆˆˆfd„¦  «        S )Nc                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S r"  )r%  rs   r&  s    €€€r:   r;   z'DaskExpr.rolling_mean.<locals>.<lambda>[  s-   ø€ ˜ŸšØ"°ÀFð &ñ ô çŠd‰fŒfð r<   r=   r'  s    ```r:   Úrolling_meanzDaskExpr.rolling_meanY  s;   øøø€ Ø×"Ò"ðð ð ð ð ð ñ
ô 
ð 	
r<   Úddofc               ój   ‡‡‡— |dk    r|                       ˆˆˆfd„¦  «        S d}t          |¦  «        ‚)Né   c                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S r"  )r%  rx   r&  s    €€€r:   r;   z&DaskExpr.rolling_var.<locals>.<lambda>e  ó-   ø€ ˜TŸ\š\Ø&°KÈð *ñ ô ç’#‘%”%ð r<   z5Dask backend only supports `ddof=1` for `rolling_var`©r>   r	  ©r@   r  r  r  r,  rú   s    ```  r:   Úrolling_varzDaskExpr.rolling_var`  ó\   øøø€ ð �1Š9ˆ9Ø×&Ò&ðð ð ð ð ð ñô ð ð
 FˆÝ! #Ñ&Ô&Ð&r<   c               ój   ‡‡‡— |dk    r|                       ˆˆˆfd„¦  «        S d}t          |¦  «        ‚)Nr.  c                óX   •— |                       ‰‰‰¬¦  «                             ¦   «         S r"  )r%  rv   r&  s    €€€r:   r;   z&DaskExpr.rolling_std.<locals>.<lambda>q  r0  r<   z5Dask backend only supports `ddof=1` for `rolling_std`r1  r2  s    ```  r:   Úrolling_stdzDaskExpr.rolling_stdl  r4  r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )Ú
dask.arrayÚarrayr>   Úfloor©r@   Údas     r:   r;  zDaskExpr.floorx  s*   € ØÐÐÐÐÐà×"Ò" 2¤8Ñ,Ô,Ð,r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )r9  r:  r>   Úceilr<  s     r:   r?  zDaskExpr.ceil}  ó*   € ØÐÐÐÐÐà×"Ò" 2¤7Ñ+Ô+Ð+r<   rÄ   úfloat | Nonec                óˆ   ‡ ‡‡— |€t           j        n|Š|€t          d¦  «        n|Šdˆ ˆˆfd„}‰                      |¦  «        S )NÚnanr8   rà   r/   c                ó¾   •— t          d| | k    ¦  «        }|                     d¦  «        }t          | j        ‰j        ¦  «        r‰n‰}|                      ||¦  «        S )Nrà   F)r   Úfillnar   rö   rW   Úmask)r8   rF  Úfillr@   Úvalue_nullableÚvalue_numpys      €€€r:   rž   zDaskExpr.fill_nan.<locals>.func†  sb   ø€ å˜ T¨T¢\Ñ2Ô2ˆDØ—;’;˜uÑ%Ô%ˆDõ % T¤Z°Ô1EÑFÔFð!��à ð ð
 —9’9˜T 4Ñ(Ô(Ð(r<   ©r8   rà   r/   rà   )ÚpdÚNAÚfloatr>   )r@   rÄ   rž   rH  rI  s   `  @@r:   Úfill_nanzDaskExpr.fill_nan‚  se   øøø€ Ø"' -�œ˜°UˆØ&+ m•e˜E‘l”l�l¸ˆð		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð ×"Ò" 4Ñ(Ô(Ð(r<   úSelf | NoneÚstrategyúFillNullStrategy | NoneÚlimitú
int | Nonec                ór   ‡‡— dd	ˆˆfd„}|�|                       ||¬¦  «        S |                       |¦  «        S )
Nr8   rà   rÄ   rO  r/   c                óœ   •— |�|                       |¦  «        }n2‰dk    r|                      ‰¬¦  «        n|                      ‰¬¦  «        }|S )NÚforward)rR  )rE  ÚffillÚbfill)r8   rÄ   Úres_serrR  rP  s      €€r:   rž   z DaskExpr.fill_null.<locals>.func–  s\   ø€ ØÐ ØŸ+š+ eÑ,Ô,��ð   9Ò,Ð,ð —J’J U�JÑ+Ô+Ð+àŸš¨%˜Ñ0Ô0ð ð
 ˆNr<   )rÄ   rK   )r8   rà   rÄ   rO  r/   rà   r=   )r@   rÄ   rP  rR  rž   s     `` r:   Ú	fill_nullzDaskExpr.fill_null“  sa   øø€ ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð ÐØ×&Ò& t°5Ð&Ñ9Ô9Ð9Ø×"Ò" 4Ñ(Ô(Ð(r<   Úlower_boundÚupper_boundc                ó4   — |                       d„ ||¬¦  «        S )Nc                ó0   — |                       ||¬¦  «        S )N)ÚlowerÚupper©Úclip)r8   r[  r\  s      r:   r;   zDaskExpr.clip.<locals>.<lambda>§  s   € °4·9²9Ø!¨ð 4=ñ 4ô 4€ r<   )r[  r\  r=   )r@   r[  r\  s      r:   rb  zDaskExpr.clip¥  s1   € Ø×"Ò"ðð ð $Ø#ð #ñ 
ô 
ð 	
r<   c                ó2   — |                       d„ |¬¦  «        S )Nc                ó.   — |                       |¬¦  «        S )N)r_  ra  )r8   r[  s     r:   r;   z%DaskExpr.clip_lower.<locals>.<lambda>°  ó   €  d§i¢i°k iÑ&BÔ&B€ r<   )r[  r=   )r@   r[  s     r:   Ú
clip_lowerzDaskExpr.clip_lower®  ó(   € Ø×"Ò"ØBÐBØ#ð #ñ 
ô 
ð 	
r<   c                ó2   — |                       d„ |¬¦  «        S )Nc                ó.   — |                       |¬¦  «        S )N)r`  ra  )r8   r\  s     r:   r;   z%DaskExpr.clip_upper.<locals>.<lambda>¶  re  r<   )r\  r=   )r@   r\  s     r:   Ú
clip_upperzDaskExpr.clip_upper´  rg  r<   c                ó.   — |                       d„ ¦  «        S )Nc                óR   — |                       d¬¦  «                             ¦   «         S )NF)r}   )Únuniquer6   r  s    r:   r;   z#DaskExpr.n_unique.<locals>.<lambda>»  s    € °·²ÀE°Ñ0JÔ0J×0TÒ0TÑ0VÔ0V€ r<   r=   ©r@   s    r:   Ún_uniquezDaskExpr.n_uniqueº  s   € Ø×"Ò"Ð#VÐ#VÑWÔWÐWr<   c                ó:   ‡ — dˆ fd„}‰                       |¦  «        S )Nr8   rà   r/   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ö   r�   rW   rø   r   )r8   rö   rú   r@   s      €r:   rž   zDaskExpr.is_nan.<locals>.func¾  s^   ø€ Ý,Ø”
˜DœM¨4Ô+?ñô ˆEð ×ÒÑ!Ô!ð $Ø˜t’|Ð#ØjÈÐjÐjÐjˆCÝ'¨Ñ,Ô,Ð,r<   rJ  r=   r£   s   ` r:   Úis_nanzDaskExpr.is_nan½  s7   ø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð ×"Ò" 4Ñ(Ô(Ð(r<   c                ó.   — |                       d„ ¦  «        S )Nc                ó4   — | j                              ¦   «         S rK   )Úsizer6   r  s    r:   r;   zDaskExpr.len.<locals>.<lambda>Ê  s   € °´	×0CÒ0CÑ0EÔ0E€ r<   r=   rn  s    r:   ÚlenzDaskExpr.lenÉ  s   € Ø×"Ò"Ð#EÐ#EÑFÔFÐFr<   ÚquantilerM  Úinterpolationr,   c                óh   ‡— |dk    rdˆfd„}|                       |¦  «        S d}t          |¦  «        ‚)NÚlinearr8   rà   r/   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)Únpartitionsr	  rw  r6   )r8   rú   rw  s     €r:   rž   zDaskExpr.quantile.<locals>.funcÑ  sM   ø€ ØÔ# aÒ'Ð'Øg�CÝ-¨cÑ2Ô2Ð2Ø—}’}Ø vð %ñ ô ç’)‘+”+ðr<   zx`higher`, `lower`, `midpoint`, `nearest` - interpolation methods are not supported by Dask. Please use `linear` instead.rJ  r1  )r@   rw  rx  rž   rú   s    `   r:   rw  zDaskExpr.quantileÌ  sZ   ø€ ð ˜HÒ$Ð$ðð ð ð ð ð ð ×&Ò& tÑ,Ô,Ð,ð IˆÝ! #Ñ&Ô&Ð&r<   c                ó4   — dd„}|                       |¦  «        S )Nr8   rà   r/   c                óB  — | j         }t          d|gd¬¦  «        }t          |                      ¦   «         |¦  «        }t	          d¬¦  «        }t          d |j        |fi |¤Ž                     |di¦  «        ¦  «        }||         }||                              |¦  «        S )Né   Ú
row_index_©Ún_bytesÚcolumnsÚprefixF©Údrop_null_keysúdx.DataFramert   ©	Únamer   r   Úto_framer   r   ÚgroupbyÚaggÚisin)r8   Ú_nameÚ	col_tokenÚframeÚgroup_by_kwargsÚaggedÚfirst_distinct_indexs          r:   rž   z(DaskExpr.is_first_distinct.<locals>.funcÞ  s²   € Ø”IˆEÝ6Ø E 7°<ðñ ô ˆIõ " $§-¢-¡/¤/°9Ñ=Ô=ˆEÝ2À%ÐHÑHÔHˆOÝØØ�”˜eÐ7Ð7 Ð7Ð7×;Ò;¸YÈÐ<NÑOÔOñô ˆEð $)¨Ô#3Ð Ø˜Ô#×(Ò(Ð)=Ñ>Ô>Ð>r<   rJ  r=   r£   s     r:   Úis_first_distinctzDaskExpr.is_first_distinctÝ  s,   € ð	?ð 	?ð 	?ð 	?ð ×"Ò" 4Ñ(Ô(Ð(r<   c                ó4   — dd„}|                       |¦  «        S )Nr8   rà   r/   c                óB  — | j         }t          d|gd¬¦  «        }t          |                      ¦   «         |¦  «        }t	          d¬¦  «        }t          d |j        |fi |¤Ž                     |di¦  «        ¦  «        }||         }||                              |¦  «        S )Nr‚  rƒ  r„  Frˆ  rŠ  rr   r‹  )r8   r‘  r’  r“  r”  r•  Úlast_distinct_indexs          r:   rž   z'DaskExpr.is_last_distinct.<locals>.funcï  s²   € Ø”IˆEÝ6Ø E 7°<ðñ ô ˆIõ " $§-¢-¡/¤/°9Ñ=Ô=ˆEÝ2À%ÐHÑHÔHˆOÝØØ�”˜eÐ7Ð7 Ð7Ð7×;Ò;¸YÈÐ<NÑOÔOñô ˆEð #(¨	Ô"2ÐØ˜Ô#×(Ò(Ð)<Ñ=Ô=Ð=r<   rJ  r=   r£   s     r:   Úis_last_distinctzDaskExpr.is_last_distinctî  s,   € ð	>ð 	>ð 	>ð 	>ð ×"Ò" 4Ñ(Ô(Ð(r<   c                ó4   — dd„}|                       |¦  «        S )Nr8   rà   r/   c                ó°   — | j         }t          d¬¦  «        } |                      ¦   «         j        |fi |¤Ž                     d|t
          f¬¦  «        dk    S )NFrˆ  ru  )Úmetar.  )rŒ  r   r�  rŽ  Ú	transformr´   )r8   r‘  r”  s      r:   rž   z DaskExpr.is_unique.<locals>.func   sf   € Ø”IˆEÝ2À%ÐHÑHÔHˆOð�—’‘”Ü˜ð3ð 3Ø"1ð3ð 3ç’˜6¨µ¨�Ñ5Ô5Øòðr<   rJ  r=   r£   s     r:   Ú	is_uniquezDaskExpr.is_uniqueÿ  s,   € ð	ð 	ð 	ð 	ð ×"Ò" 4Ñ(Ô(Ð(r<   c                ó4   ‡— |                       ˆfd„¦  «        S )Nc                ó.   •— |                       ‰¦  «        S rK   )r�  )r8   rM   s    €r:   r;   z DaskExpr.is_in.<locals>.<lambda>  s   ø€ °·	²	¸%Ñ0@Ô0@€ r<   r=   )r@   rM   s    `r:   Úis_inzDaskExpr.is_in  s!   ø€ Ø×"Ò"Ð#@Ð#@Ð#@Ð#@ÑAÔAÐAr<   c                ó.   — |                       d„ ¦  «        S )Nc                ór   — |                       ¦   «                              ¦   «                              ¦   «         S rK   )r~   rw   r6   r  s    r:   r;   z%DaskExpr.null_count.<locals>.<lambda>  s$   € °·	²	±´·²Ñ0AÔ0A×0KÒ0KÑ0MÔ0M€ r<   r=   rn  s    r:   Ú
null_countzDaskExpr.null_count  s   € Ø×"Ò"Ð#MÐ#MÑNÔNÐNr<   Úorder_byúSequence[str]c                ód   ‡ ‡— dˆˆ fd„}‰                       |‰ j        ‰ j        ‰ j        ¬¦  «        S )Nr�   r#   r/   r�   c                ó2   •—  ‰ | j         ‰dddœŽ¦  «        S )NF)Ú
descendingÚ
nulls_last)Úsort)r�   r§  r@   s    €€r:   rž   z1DaskExpr._over_without_partition_by.<locals>.func  s&   ø€ Ø�4˜˜œ °eÈÐNÐNÐNÑOÔOÐOr<   rŸ   ©r�   r#   r/   r�   r¡   )r@   r§  rž   s   `` r:   Ú_over_without_partition_byz#DaskExpr._over_without_partition_by  s_   øø€ ð	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
ð 	
r<   Úpartition_byc                ó¶  ‡ ‡‡‡	‡
‡— ‰s|sJ ‚‰                       |¦  «        S ddlm} ‰ j        Š
‰r$‰
j        �‰
j        j        sd}t          |¦  «        ‚|rd}t          |¦  «        ‚t          t          t          ‰ j         	                    ¦   «         ¦  «        ¦  «        ¦  «        Š‰d         }t          d|j        ¦  «        }	 |j        |         Šn?# t          $ r2 d|› dd	                     |j        ¦  «        › d
�}t          |¦  «        d ‚w xY wt          ||j        ¦  «        Š	dˆˆ	ˆ
ˆˆˆ fd„}‰                      |‰ j        ‰ j        ‰ j        ¬¦  «        S )Nr   )ÚPandasLikeGroupByzÁOnly elementary expressions are supported for `.over` in dask backend when `partition_by` is specified.

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

Supported functions are z, ú
r�   r#   r/   r�   c           
     óà  •‡— ‰                      ¦   «         }‰j        �9|                      t          dt	          ‰d d…         |¦  «        ¦  «        ¦  «        } t          ‰| g ¦  «        \  }}t          j        ¦   «         5  t          j        ddt          ¬¦  «         t          d¬¦  «        } | j        j        ‰fi |¤Ž}‰	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   |                      |¦  «        j        Šˆfd„|D ¦   «         S )NrV   r³  Úignorez.*`meta` is not specified)ÚmessageÚcategoryFrˆ  ru  r.  z)Safety check failed, please report a bug.r   c                ó    •— g | ]
}‰|         ‘ŒS r4   r4   )r›   rŒ  Úresult_frames     €r:   r�   z/DaskExpr.over.<locals>.func.<locals>.<listcomp>e  s   ø€ Ð;Ð;Ð;¨4�L Ô&Ð;Ð;Ð;r<   )r•   ÚprevÚwith_columnsr   r   r   ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr   r¸   rŽ  rv  ÚAssertionErrorrŸ  r�  ÚlistÚ_with_native)r�   ÚplxÚ_Úaliasesr”  Úgroupedrú   Ú
res_nativerº  Údask_function_nameÚdask_kwargsrž  Únodesr°  r@   s           @€€€€€€r:   rž   zDaskExpr.over.<locals>.funcL  sß  øø€ Ø×-Ò-Ñ/Ô/ˆCØŒyÐ$Ø—_’_¥T¨*µnÀUÈ3ÈBÈ3ÄZÐQTÑ6UÔ6UÑ%VÔ%VÑWÔW�Ý:¸4ÀÀRÑHÔH‰JˆAˆwåÔ(Ñ*Ô*ð ð åÔ'ØÐ&AÍKðñ ô ð õ #7ÀeÐ"LÑ"LÔ"L�Ø+˜"œ)Ô+¨LÐLÐL¸OÐLÐL�Ø%¨Ò/Ð/Ý˜7‘|”| qÒ(Ð(ØI˜Ý,¨SÑ1Ô1Ð1Ø!2 Ô!2Ø*ð"ð "Ø.9ð"ð "ç’h˜w qœzÑ*Ô*ð �Jð "B ­¨g©¬Ô!7Ô!AØ*ð"ð "Ø.9ð"ð "�Jðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð$ Ÿ?š?¨:Ñ6Ô6Ô=ˆLØ;Ð;Ð;Ð;°7Ð;Ñ;Ô;Ð;s   Á>B3D=Ä=EÅErŸ   r®  )r¯  Únarwhals._pandas_like.group_byr²  Ú	_metadatar»  Úis_elementwiser	  rÂ  ÚreversedÚiter_nodes_reversedr   rŒ  Ú_REMAP_AGGSr®   Újoinr   r9   r¢   r‹   rŒ   r�   )r@   r°  r§  r²  rú   Ú	leaf_nodeÚfunction_namerž   rÉ  rÊ  rž  rË  s   ``      @@@@r:   ÚoverzDaskExpr.over  sÛ  øøøøøø€ Øð 	=ØˆOˆO�8Ø×2Ò2°8Ñ<Ô<Ð<àDÐDÐDÐDÐDÐDð Œ~ˆØð 		+ØŒIÐ!¨$¬)Ô*BÐ!ð_ð õ & cÑ*Ô*Ð*àð 	+àHˆCÝ% cÑ*Ô*Ð*å•X�d 4¤>×#EÒ#EÑ#GÔ#GÑHÔHÑIÔIÑJÔJˆØ˜"”Iˆ	ÝÐ2°I´NÑCÔCˆð	5Ø!2Ô!>¸}Ô!MÐÐøÝð 	5ð 	5ð 	5ðX¨ð Xð XØ+/¯9ª9Ð5FÔ5RÑ+SÔ+SðXð Xð Xð õ & cÑ*Ô*°Ð4ð	5øøøõ 9¸È	ÔHXÑYÔYˆð	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð6 �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
ð 	
s   ÃC Ã<Drö   r*   c                ó>   ‡ ‡— dˆˆ fd„}‰                       |¦  «        S )Nr8   rà   r/   c                óX   •— t          ‰‰j        ¦  «        }|                      |¦  «        S rK   )r   r�   r  )r8   Únative_dtyperö   r@   s     €€r:   rž   zDaskExpr.cast.<locals>.funco  s&   ø€ Ý3°E¸4¼=ÑIÔIˆLØ—;’;˜|Ñ,Ô,Ð,r<   rJ  r=   )r@   rö   rž   s   `` r:   r   zDaskExpr.castn  s=   øø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð ×"Ò" 4Ñ(Ô(Ð(r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )r9  r:  r>   Úisfiniter<  s     r:   Ú	is_finitezDaskExpr.is_finiteu  s*   € ØÐÐÐÐÐà×"Ò" 2¤;Ñ/Ô/Ð/r<   Úbasec                óJ   ‡‡— dd l mŠ dˆˆfd„}|                      |¦  «        S )Nr   r8   rà   r/   c                óZ   •— ‰                      | ¦  «        ‰                      ‰¦  «        z  S rK   )Úlog)r8   rÜ  r=  s    €€r:   Ú_logzDaskExpr.log.<locals>._log}  s"   ø€ Ø—6’6˜$‘<”< "§&¢&¨¡,¤,Ñ.Ð.r<   rJ  )r9  r:  r>   )r@   rÜ  rà  r=  s    ` @r:   rß  zDaskExpr.logz  sO   øø€ ØÐÐÐÐÐð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð ×"Ò" 4Ñ(Ô(Ð(r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )r9  r:  r>   Úexpr<  s     r:   râ  zDaskExpr.exp‚  ó*   € ØÐÐÐÐÐà×"Ò" 2¤6Ñ*Ô*Ð*r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )r9  r:  r>   Úsinr<  s     r:   rå  zDaskExpr.sin‡  rã  r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )r9  r:  r>   Úcosr<  s     r:   rç  zDaskExpr.cosŒ  rã  r<   c                óB   — dd l m} |                      |j        ¦  «        S râ   )r9  r:  r>   Úsqrtr<  s     r:   ré  zDaskExpr.sqrt‘  r@  r<   Úkeepr+   c               ó:   ‡— dˆfd„}|                       |¦  «        S )Nr8   rà   r/   c                ó¤   •— | j         }|                      ¦   «                              ¦   «         |         }‰dk    r|                     d¦  «        n|S )Nro   r.  )rŒ  r�  ÚmodeÚhead)r8   r‘  rœ   rê  s      €r:   rž   zDaskExpr.mode.<locals>.func—  sD   ø€ Ø”IˆEØ—]’]‘_”_×)Ò)Ñ+Ô+¨EÔ2ˆFØ%)¨U¢] ]�6—;’;˜q‘>”>�>¸Ð>r<   rJ  r=   )r@   rê  rž   s    ` r:   rí  zDaskExpr.mode–  s7   ø€ ð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð
 ×"Ò" 4Ñ(Ô(Ð(r<   ÚdefaultúDaskExpr | NoDefaultÚoldúSequence[Any]ÚnewÚreturn_dtypeúIntoDType | Nonec               ó   ‡ ‡‡‡‡— ‰t           u rd}t          |¦  «        ‚t          t          ||d¬¦  «        ¦  «        Št	          |¦  «        Šd
ˆˆˆˆˆ fd„}‰                      |‰ j        ‰ j        ‰ j        ¬	¦  «        S )NzK`replace_strict` requires an explicit value for `default` for dask backend.F)Ústrictr�   r#   r/   r—   c                ó²   •‡‡— |                       ‰¦  «        Šˆˆˆfd„ ‰| ¦  «        D ¦   «         }‰r#t          ‰‰j        ¦  «        Šˆfd„|D ¦   «         S |S )Nc                óˆ   •— g | ]>}|                      ‰¦  «                             |                     ‰¦  «        ‰¦  «        ‘Œ?S r4   )Úreplacerå   r�  )r›   rß   Údefault_seriesÚmappingÚold_s     €€€r:   r�   z9DaskExpr.replace_strict.<locals>.func.<locals>.<listcomp>¯  sQ   ø€ ð ð ð àð —’˜wÑ'Ô'×-Ò-¨f¯kªk¸$Ñ.?Ô.?ÀÑPÔPðð ð r<   c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r4   )r  )r›   ÚresrØ  s     €r:   r�   z9DaskExpr.replace_strict.<locals>.func.<locals>.<listcomp>¶  s%   ø€ ÐDÐDÐD°S˜Ÿ
š
 <Ñ0Ô0ÐDÐDÐDr<   )rÂ   r   r�   )	r�   Úresultsrû  rØ  rï  rü  rý  rô  r@   s	     @@€€€€€r:   rž   z%DaskExpr.replace_strict.<locals>.func­  s�   øøø€ Ø×<Ò<¸WÑEÔEˆNðð ð ð ð ð à"˜d 2™hœhðñ ô ˆGð
 ð EÝ7¸ÀdÄmÑTÔT�ØDÐDÐDÐD¸GÐDÑDÔDÐDàˆNr<   rŸ   r    )	r   Ú
ValueErrorÚdictÚziprÂ  r¢   r‹   rŒ   r�   )	r@   rï  rñ  ró  rô  rú   rž   rü  rý  s	   ``  `  @@r:   Úreplace_strictzDaskExpr.replace_strictž  s¯   øøøøø€ ð •jÐ Ð Ø_ˆCÝ˜S‘/”/Ð!å•s˜3 ¨EÐ2Ñ2Ô2Ñ3Ô3ˆÝ�C‰yŒyˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð �~Š~ØØ"&Ô"=Ø#Ô7Ø”Mð	 ñ 
ô 
ð 	
r<   r   c                ó    — t          | ¦  «        S rK   r   rn  s    r:   r.   zDaskExpr.strÁ  s   € å& tÑ,Ô,Ð,r<   r
   c                ó    — t          | ¦  «        S rK   r	   rn  s    r:   ÚdtzDaskExpr.dtÅ  s   € å(¨Ñ.Ô.Ð.r<   rÂ  ÚstructN)
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�   rP   r½   r   r/   r   )rž   r†   r/   r   )r�   rÓ   rM   r   r/   r   )rÖ   r.   rM   r   r/   r   )rÙ   rP   rM   r   r/   r   )rM   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Ä   rA  r/   r   )rÄ   rO  rP  rQ  rR  rS  r/   r   )r[  r   r\  r   r/   r   )r[  r   r/   r   )r\  r   r/   r   )rw  rM  rx  r,   r/   r   )r§  r¨  r/   r   )r°  r¨  r§  r¨  r/   r   )rö   r*   r/   r   )rÜ  rM  r/   r   )rê  r+   r/   r   )
rï  rð  rñ  rò  ró  rò  rô  rõ  r/   r   )r/   r   )r/   r
   )oÚ__name__Ú
__module__Ú__qualname__r   r÷   rW   Ú__annotations__rN   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rT   Ú__rsub__Ú__rtruediv__Ú__rpow__Ú__rmod__rB   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rH   ry   rz   r{   r|   Ú
drop_nullsÚis_nullr   r€   rŽ   r’   r•   r¤   Úclassmethodr²   r¼   r>   rÒ   rÕ   rL   rS   rä   rò   rü   r   r  r  r  r  r  r(  r+  r3  r7  r;  r?  rN  rZ  rb  rf  rj  ro  rr  rv  rw  r—  r›  r   r£  r¦  r¯  rÕ  r   rÛ  rß  râ  rå  rç  ré  rí  r  Úpropertyr.   r  r   Ú	any_valueÚfilterÚfirstÚrankÚlastrÂ  r  r4   r<   r:   rV   rV   L   sa  € € € € € € ð '5Ô&9€OÐ9Ð9Ð9Ñ9ð ˆm˜IÑ&Ô&€GØˆm˜IÑ&Ô&€GØˆm˜IÑ&Ô&€GØ�- Ñ.Ô.€KØˆm˜IÑ&Ô&€GØˆm˜IÑ&Ô&€GØˆ]˜8Ñ$Ô$€FØˆ]˜8Ñ$Ô$€FØˆ]˜8Ñ$Ô$€FØˆ]˜8Ñ$Ô$€FØˆ]˜8Ñ$Ô$€FØˆ]˜8Ñ$Ô$€FØˆm˜IÑ&Ô&€GØˆ]˜8Ñ$Ô$€FØ#Ð#Ð$6Ð$6Ñ7Ô7€HØ'Ð'Ð(:Ð(:Ñ;Ô;€LØ#Ð#Ð$5Ð$5Ñ6Ô6€HØ#Ð#Ð$6Ð$6Ñ7Ô7€HØ
Ð
˜UÑ
#Ô
#€CØ
Ð
˜UÑ
#Ô
#€CØÐ˜wÑ'Ô'€EØ!Ð! *Ñ-Ô-€HØ
Ð
˜UÑ
#Ô
#€CØÐ˜fÑ%Ô%€DØ
Ð
˜UÑ
#Ô
#€CØÐ˜fÑ%Ô%€DØ
Ð
˜UÑ
#Ô
#€CØ
Ð
˜UÑ
#Ô
#€CØ
Ð
˜UÑ
#Ô
#€CØ�˜|Ñ,Ô,€JØˆm˜IÑ&Ô&€GØ
ˆ-˜Ñ
Ô
€CØˆ=˜Ñ Ô €DØ�˜xÑ(Ô(€JØˆm˜FÑ#Ô#€GØˆM˜'Ñ"Ô"€EØˆ]˜8Ñ$Ô$€Fð ð  ð  ð  ðð ð ð ð4ð 4ð 4ð 4ð

ð 
ð 
ð 
ð ð
ð 
ð 
ñ „[ð
ð2 ð	
ð 	
ð 	
ñ „[ð	
ð
ð 
ð 
ð 
ð4
ð 
ð 
ð 
ð 6ð 6ð 6ð 6ð
[ð [ð [ð [ðð ð ð ð
ð 
ð 
ð 
ð$ð ð ð ð$
)ð 
)ð 
)ð 
)ð?ð ?ð ?ð ?ð?ð ?ð ?ð ?ðUð Uð Uð Uð?ð ?ð ?ð ?ð?ð ?ð ?ð ?ð@ð @ð @ð @ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
'ð 
'ð 
'ð 
'ð
'ð 
'ð 
'ð 
'ð-ð -ð -ð -ð
,ð ,ð ,ð ,ð
)ð )ð )ð )ð")ð )ð )ð )ð$
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ðXð Xð Xð Xð
)ð 
)ð 
)ð 
)ðGð Gð Gð Gð'ð 'ð 'ð 'ð")ð )ð )ð )ð")ð )ð )ð )ð")ð )ð )ð )ðBð Bð Bð BðOð Oð Oð Oð
ð 
ð 
ð 
ðM
ð M
ð M
ð M
ð^)ð )ð )ð )ð0ð 0ð 0ð 0ð
)ð )ð )ð )ð+ð +ð +ð +ð
+ð +ð +ð +ð
+ð +ð +ð +ð
,ð ,ð ,ð ,ð
)ð )ð )ð )ð!
ð !
ð !
ð !
ðF ð-ð -ð -ñ „Xð-ð ð/ð /ð /ñ „Xð/ð  �Ñ!Ô!€IØˆ_ÑÔ€FØˆOÑÔ€EØˆ?ÑÔ€DØˆ?ÑÔ€Dð  �Ñ!Ô!€DÐ!Ð!Ð!Ñ!Ø!�/Ñ#Ô#€FÐ#Ð#Ð#Ñ#Ð#Ð#r<   rV   )r#   rà   )r-   r.   r/   r   )rO   rP   r/   r   )DÚ
__future__r   r½  Útypingr   r   r   ÚpandasrK  Ú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û   r   Úcollections.abcr   r   Údask.dataframe.dask_exprÚ	dataframeÚ	dask_exprÚdxÚtyping_extensionsr   Únarwhals._compliant.typingr   r    r!   r"   Únarwhals._dask.dataframer#   r”   r%   Únarwhals._typingr&   r'   r(   Únarwhals.typingr)   r*   r+   r,   rB   rH   rN   rT   rV   r4   r<   r:   ú<module>r/     s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð [Ð ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZØ IÐ IÐ IÐ IÐ IÐ IØ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sðð ð ð ð ð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5àð Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø&Ð&Ð&Ð&Ð&Ð&ðð ð ð ð ð ð ð ð ð ð ð ð 7Ð6Ð6Ð6Ð6Ð6Ø6Ð6Ð6Ð6Ð6Ð6Ø*Ð*Ð*Ð*Ð*Ð*Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ðð ð ð ð<ð <ð <ð <ð
Bð Bð Bð Bð
E
$ð E
$ð E
$ð E
$ð E
$ØÐ)Ô*ØÐ2Ô3ñE
$ô E
$ð E
$ð E
$ð E
$r<   