Ë
    ðmxi(h  ã                  óž  — d dl mZ d dlZd dl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!m"Z" d dl#m$Z$ erGd 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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   «      ZCy)é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚCallableÚ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)ÚImplementationÚgenerate_temporary_column_nameÚ
no_defaultÚnot_implemented©ÚInvalidOperationError)ÚSequence)ÚSelf)Ú
AliasNamesÚ	EvalNamesÚ
EvalSeriesÚNarwhalsAggregation)ÚDaskLazyFrame©ÚDaskNamespace)Ú	NoDefault)ÚVersionÚ_LimitedContext)ÚFillNullStrategyÚ	IntoDTypeÚModeKeepStrategyÚRollingInterpolationMethodc                ó   ‡ — ˆ fd„S )Nc                ó0   •‡— | j                  ˆˆfd„«      S )Nc                óD   •—  t        | ‰«      di ‰¤Žj                  «       S ©N© )ÚgetattrÚ	to_series©ÚexprÚattrÚkwargss    €€úJ/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/_dask/expr.pyú<lambda>z6simple_aggregation.<locals>.<lambda>.<locals>.<lambda>7   s"   ø€ Ð(”W˜T 4Ó(Ñ2¨6Ñ2×<Ñ<Ó>€ ó    ©Ú_with_callable©Úselfr7   r6   s    `€r8   r9   z$simple_aggregation.<locals>.<lambda>6   s   ù€  $×"5Ñ"5Ü>ó#€ r:   r1   ©r6   s   `r8   Úsimple_aggregationr@   4   ó   ø€ óð r:   c                ó   ‡ — ˆ fd„S )Nc                ó0   •‡— | j                  ˆˆfd„«      S )Nc                ó(   •—  t        | ‰«      di ‰¤ŽS r0   ©r2   r4   s    €€r8   r9   z1simple_method.<locals>.<lambda>.<locals>.<lambda>>   s   ø€ Ð(”W˜T 4Ó(Ñ2¨6Ñ2€ r:   r;   r=   s    `€r8   r9   zsimple_method.<locals>.<lambda>=   s   ù€  $×"5Ñ"5Ü2ó#€ r:   r1   r?   s   `r8   Úsimple_methodrF   ;   rA   r:   c                ó   ‡ — ˆ fd„S )Nc                ó(   •— | j                  ‰|«      S ©N)Ú
_binary_op)r>   Úotherr6   s     €r8   r9   zsimple_binary.<locals>.<lambda>D   s   ø€ ˜tŸ™¨t°UÓ;€ r:   r1   r?   s   `r8   Úsimple_binaryrL   B   s	   ø€ ã;Ð;r:   c                ó   ‡ — ˆ fd„S )Nc                ó(   •— | j                  ‰|«      S rI   )Ú_reverse_binary_op)r>   rK   Úops     €r8   r9   z&trivial_binary_right.<locals>.<lambda>I   s   ø€ ˜t×6Ñ6°r¸5ÓA€ r:   r1   )rP   s   `r8   Útrivial_binary_rightrQ   G   s	   ø€ ãAÐAr:   c                  óV  — 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.	 	 	 	 	 	 	 	 	 	 d_d'„Z/d`d(„Z0dad)„Z1dbd*„Z2e3	 	 	 	 	 	 	 	 dcd+„«       Z4e3ddd,„«       Z5	 	 	 	 	 	 ded-„Z6dfd.„Z7	 	 	 	 	 	 dgd/„Z8dhd0„Z9	 	 	 	 	 	 did1„Z:djd2„Z;djd3„Z<dbd4„Z=dkd5„Z>dld6„Z?dld7„Z@dld8„ZAdld9„ZBdld:„ZCdmd;„ZDdmd<„ZE	 	 	 	 	 	 	 	 	 	 dnd=„ZF	 	 	 	 	 	 	 	 	 	 dnd>„ZGdbd?„ZHdbd@„ZIdodA„ZJ	 	 	 	 	 	 	 	 dpdB„ZKdqdC„ZLdrdD„ZMdsdE„ZNdbdF„ZOdbdG„ZPdbdH„ZQ	 	 	 	 	 	 dtdI„ZRdbdJ„ZSdbdK„ZTdbdL„ZUdjdM„ZVdbdN„ZWdudO„ZXdvdP„ZYdwdQ„ZZdbdR„Z[dxdS„Z\dbdT„Z]dbdU„Z^dbdV„Z_dydW„Z`	 	 	 	 	 	 	 	 	 	 dzdX„Zaebd{dY„«       Zcebd|dZ„«       Zd ee«       Zf ee«       Zg ee«       Zh ee«       Zi ee«       Zj ee«       Zkd[ed\<    ee«       Zld[ed]<   y^)}ÚDaskExprr   Ú_implementationÚ__add__Ú__sub__Ú__mul__Ú__truediv__Ú__pow__Ú__mod__Ú__eq__Ú__ne__Ú__gt__Ú__ge__Ú__lt__Ú__le__Ú__and__Ú__or__c                ó   — | |z
  S rI   r1   ©ÚxÚys     r8   r9   zDaskExpr.<lambda>b   ó
   € °°Q±€ r:   c                ó   — | |z  S rI   r1   rd   s     r8   r9   zDaskExpr.<lambda>c   s
   € °Q¸±U€ r:   c                ó   — | |z  S rI   r1   rd   s     r8   r9   zDaskExpr.<lambda>d   s
   € °°A±€ r:   c                ó   — | |z  S rI   r1   rd   s     r8   r9   zDaskExpr.<lambda>e   rg   r:   ÚallÚanyÚcountÚkurtosisÚmaxÚmeanÚminÚskewÚstdÚsumÚvarÚ
__invert__ÚabsÚdiffÚdropnaÚisnaÚroundÚuniquec               ó<   — || _         || _        || _        || _        y rI   )Ú_callÚ_evaluate_output_namesÚ_alias_output_namesÚ_version)r>   ÚcallÚevaluate_output_namesÚalias_output_namesÚversions        r8   Ú__init__zDaskExpr.__init__y   s"   € ð ˆŒ
Ø&;ˆÔ#Ø#5ˆÔ Øˆ�r:   c                ó$   — | j                  |«      S rI   )r~   )r>   Údfs     r8   Ú__call__zDaskExpr.__call__†   s   € Ø�z‰z˜"‹~Ðr:   c                ó4   — ddl m}  || j                  ¬«      S )Nr   r$   )r…   )Únarwhals._dask.namespacer%   r�   )r>   r%   s     r8   Ú__narwhals_namespace__zDaskExpr.__narwhals_namespace__‰   s   € Ý:á T§]¡]Ô3Ð3r:   c                óv   ‡ — dˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      S )Nc                óZ   •—  ‰| «      D �cg c]  }|j                   d   d   ‘Œ c}S c c}w ©Nr   )Úloc)rˆ   Úresultr>   s     €r8   Úfuncz DaskExpr.broadcast.<locals>.func�   s*   ø€ ñ 48¸³8Ö<¨�F—J‘J˜q‘M !Ó$Ò<Ð<ùÒ<s   Œ(©rƒ   r„   r…   ©rˆ   r#   Úreturnzlist[dx.Series]©Ú	__class__r   r€   r�   ©r>   r’   s   ` r8   Ú	broadcastzDaskExpr.broadcastŽ   s<   ø€ õ	=ð
 �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
ð 	
r:   c              ó<   ‡— dˆfd„} | |‰d |j                   ¬«      S )Nc                ó²   •— 	  ‰| «      D �cg c]  }| j                   |   ‘Œ c}S c c}w # t        $ r"}| j                   ‰| «      «      x}r||‚‚ d }~ww xY wrI   )Ú_native_frameÚKeyErrorÚ_check_columns_exist)rˆ   Úcolumn_nameÚeÚerrorÚevaluate_column_namess       €r8   r’   z(DaskExpr.from_column_names.<locals>.func£   ss   ø€ ðñ (=¸RÓ'@öà#ð ×$Ñ$ [Ó1òð ùò øô ò Ø×3Ñ3Ñ4IÈ"Ó4MÓNÐN�5ÐNØ QÐ&Øûðús    ƒ
+ �&£+ ¦+ «	A´AÁAr“   r”   )r�   )Úclsr¢   Úcontextr’   s    `  r8   Úfrom_column_nameszDaskExpr.from_column_names›   s)   ø€ õ		ñ ØØ"7Ø#Ø×$Ñ$ô	
ð 	
r:   c               óZ   ‡— dˆfd„} | || j                  ‰«      d |j                  ¬«      S )Nc                ód   •— ‰D �cg c]  }| j                   j                  d d …|f   ‘Œ! c}S c c}w rI   )ÚnativeÚiloc)rˆ   ÚiÚcolumn_indicess     €r8   r’   z*DaskExpr.from_column_indices.<locals>.func·   s(   ø€ Ø2@ÖA¨Q�B—I‘I—N‘N¢1 a 4Ó(ÒAÐAùÒAs   †$-r“   r”   )Ú_eval_names_indicesr�   )r£   r¤   r«   r’   s     ` r8   Úfrom_column_indiceszDaskExpr.from_column_indicesµ   s5   ø€ õ	Bñ ØØ"%×"9Ñ"9¸.Ó"IØ#Ø×$Ñ$ô	
ð 	
r:   c               ó~   ‡ ‡‡— dˆˆˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      S )Nc                óà   •— g }‰
j                  | «      }‰	j                  «       D ��ci c]  \  }}|| j                  |«      “Œ }}}|D ]  } ‰|fi |¤Ž}|j                  |«       Œ |S c c}}w rI   )r~   ÚitemsÚ_evaluate_single_output_exprÚappend)rˆ   Únative_resultsÚnative_series_listÚkeyÚvalueÚother_native_seriesÚnative_seriesÚresult_nativer‚   Úexpressifiable_argsr>   s           €€€r8   r’   z%DaskExpr._with_callable.<locals>.funcÈ   s�   ø€ Ø.0ˆNØ!%§¡¨B£Ðð #6×";Ñ";Ó"=÷#á�C˜ð �R×4Ñ4°UÓ;Ñ;ð#Ðñ #ð "4ò 5�Ù $ ]Ñ JÐ6IÑ J�Ø×%Ñ% mÕ4ð5ð "Ð!ùó#s   ¨A*r“   r”   r–   )r>   r‚   rº   r’   s   ``` r8   r<   zDaskExpr._with_callableÁ   s<   ú€ ÷
	"ð �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
ð 	
r:   c               ó    ‡‡— | j                   Š‰€d n	‰€‰nˆˆfd„} t        | «      | j                  | j                  || j                  ¬«      S )Nc                ó    •—  ‰ ‰| «      «      S rI   r1   )Úoutput_namesÚcurrent_alias_output_namesr’   s    €€r8   r9   z3DaskExpr._with_alias_output_names.<locals>.<lambda>â   s   ø€ ¡dÑ+EÀlÓ+SÓ&T€ r:   )r‚   rƒ   r„   r…   )r€   Útyper~   r   r�   )r>   r’   r„   r¾   s    ` @r8   Ú_with_alias_output_namesz!DaskExpr._with_alias_output_namesÛ   s_   ù€ Ø%)×%=Ñ%=Ð"ð ˆ|ñ ð *Ð1ñ äTð 	ð Œt�D‹zØ—‘Ø"&×"=Ñ"=Ø1Ø—M‘Mô	
ð 	
r:   c                ó0   ‡— | j                  ˆfd„|¬«      S )Nc                ó   •—  ‰| |«      S rI   r1   )r5   rK   r‚   s     €r8   r9   z'DaskExpr._with_binary.<locals>.<lambda>î   s   ø€ ±t¸DÀ%Ó7H€ r:   )rK   r;   )r>   r‚   rK   s    ` r8   Ú_with_binaryzDaskExpr._with_binaryë   s   ø€ ð ×"Ñ"Ó#HÐPUÐ"ÓVÐVr:   c                ó.   ‡— | j                  ˆfd„|«      S )Nc                ó(   •—  t        | ‰«      |«      S rI   rE   )r5   rK   Úop_names     €r8   r9   z%DaskExpr._binary_op.<locals>.<lambda>ñ   s   ø€ Ð5K´W¸TÀ7Ó5KÈEÓ5R€ r:   )rÃ   )r>   rÆ   rK   s    ` r8   rJ   zDaskExpr._binary_opð   s   ø€ Ø× Ñ Ó!RÐTYÓZÐZr:   c                óL   ‡— | j                  ˆfd„|«      j                  d«      S )Nc                ó   •—  ‰|| «      S rI   r1   )r5   rK   Úoperator_funcs     €r8   r9   z-DaskExpr._reverse_binary_op.<locals>.<lambda>÷   s   ø€ ¡¨e°TÓ :€ r:   Úliteral)rÃ   Úalias)r>   rÉ   rK   s    ` r8   rO   zDaskExpr._reverse_binary_opó   s'   ø€ ð × Ñ Û:¸Eó
ç
‰%�	Ó
ð	r:   c                ó–   ‡ ‡‡— 	 	 	 	 	 	 	 	 dd„Šdˆˆˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      S )Nc                ój   — t        | ||«      \  }}|j                  |«      j                  |dk7  d «      S r�   ©r   Ú__floordiv__Úwhere©rˆ   ÚseriesrK   s      r8   Ú	_floordivz(DaskExpr.__floordiv__.<locals>._floordivû   s8   € ô 8¸¸FÀEÓJ‰MˆF�EØ×'Ñ'¨Ó.×5Ñ5°e¸q±jÀ$ÓGÐGr:   c                ól   •— | j                  ‰«      } ‰| «      D �cg c]  } ‰| ||«      ‘Œ c}S c c}w rI   ©r±   )rˆ   Úother_seriesrÒ   rÓ   rK   r>   s      €€€r8   r’   z#DaskExpr.__floordiv__.<locals>.func  s4   ø€ Ø×:Ñ:¸5ÓAˆLÙFJÈ2ÃhÖO¸F‘I˜b &¨,Õ7ÒOÐOùÒOó   �1r“   ©rˆ   r#   rÒ   ú	dx.SeriesrK   rÙ   r•   rÙ   r”   r–   )r>   rK   r’   rÓ   s   `` @r8   rÏ   zDaskExpr.__floordiv__ú   sg   ú€ ð	HØð	HØ'0ð	HØ9Bð	Hàó	H÷	Pð �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
ð 	
r:   c                ó´   ‡ ‡‡— 	 	 	 	 	 	 	 	 dd„Šdˆˆˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      j	                  d«      S )Nc                ój   — t        | ||«      \  }}|j                  |«      j                  |dk7  d «      S r�   rÎ   rÑ   s      r8   Ú
_rfloordivz*DaskExpr.__rfloordiv__.<locals>._rfloordiv  s8   € ô 8¸¸FÀEÓJ‰MˆF�EØ×&Ñ& vÓ.×5Ñ5°fÀ±kÀ4ÓHÐHr:   c                ól   •— | j                  ‰«      } ‰| «      D �cg c]  } ‰| ||«      ‘Œ c}S c c}w rI   rÕ   )rˆ   Úother_nativerÒ   rÜ   rK   r>   s      €€€r8   r’   z$DaskExpr.__rfloordiv__.<locals>.func  s4   ø€ Ø×:Ñ:¸5ÓAˆLÙGKÈBÃxÖP¸V‘J˜r 6¨<Õ8ÒPÐPùÒPr×   r“   rÊ   rØ   r”   )r—   r   r€   r�   rË   )r>   rK   r’   rÜ   s   `` @r8   Ú__rfloordiv__zDaskExpr.__rfloordiv__  ss   ú€ ð	IØð	IØ'0ð	IØ9Bð	Iàó	I÷	Qð �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
÷
 ‰%�	Ó
ð	r:   c                óB   ‡ ‡— ddl mŠ dˆˆ fd„}‰ j                  |«      S )Nr   r   c                óÒ   •— t        | j                  ‰j                  t        j                  «      }|j                  «       s
d} ‰|«      ‚| j                  «       j                  «       S )Nz<`median` operation not supported for non-numeric input type.)r   Údtyper�   r   ÚDASKÚ
is_numericÚmedian_approximater3   )Úsrâ   Úmsgr   r>   s      €€r8   r’   zDaskExpr.median.<locals>.func!  sS   ø€ Ü,¨Q¯W©W°d·m±mÄ^×EXÑEXÓYˆEØ×#Ñ#Ô%ØT�Ù+¨CÓ0Ð0Ø×'Ñ'Ó)×3Ñ3Ó5Ð5r:   )ræ   rÙ   r•   rÙ   )Únarwhals.exceptionsr   r<   )r>   r’   r   s   ` @r8   ÚmedianzDaskExpr.median  s   ù€ Ý=ö	6ð ×"Ñ" 4Ó(Ð(r:   c                ó,   ‡— | j                  ˆfd„«      S )Nc                ó&   •— | j                  ‰«      S rI   )Úshift)r5   Úns    €r8   r9   z DaskExpr.shift.<locals>.<lambda>+  s   ø€ °·
±
¸1³€ r:   r;   )r>   rí   s    `r8   rì   zDaskExpr.shift*  s   ø€ Ø×"Ñ"Ó#=Ó>Ð>r:   c               óD   — |rd}t        |«      ‚| j                  d„ «      S )Nz:`cum_sum(reverse=True)` is not supported with Dask backendc                ó"   — | j                  «       S rI   )Úcumsum©r5   s    r8   r9   z"DaskExpr.cum_sum.<locals>.<lambda>3  ó   € °·±³€ r:   ©ÚNotImplementedErrorr<   ©r>   Úreverserç   s      r8   Úcum_sumzDaskExpr.cum_sum-  s'   € ÙàNˆCÜ% cÓ*Ð*à×"Ñ"Ñ#=Ó>Ð>r:   c               óD   — |rd}t        |«      ‚| j                  d„ «      S )Nz<`cum_count(reverse=True)` is not supported with Dask backendc                óf   — | j                  «        j                  t        «      j                  «       S rI   )rz   ÚastypeÚintrð   rñ   s    r8   r9   z$DaskExpr.cum_count.<locals>.<lambda>:  s"   € °$·)±)³+°×0EÑ0EÄcÓ0J×0QÑ0QÓ0S€ r:   ró   rõ   s      r8   Ú	cum_countzDaskExpr.cum_count5  s'   € ÙØPˆCÜ% cÓ*Ð*à×"Ñ"Ñ#SÓTÐTr:   c               óD   — |rd}t        |«      ‚| j                  d„ «      S )Nz:`cum_min(reverse=True)` is not supported with Dask backendc                ó"   — | j                  «       S rI   )Úcumminrñ   s    r8   r9   z"DaskExpr.cum_min.<locals>.<lambda>A  rò   r:   ró   rõ   s      r8   Úcum_minzDaskExpr.cum_min<  ó'   € ÙØNˆCÜ% cÓ*Ð*à×"Ñ"Ñ#=Ó>Ð>r:   c               óD   — |rd}t        |«      ‚| j                  d„ «      S )Nz:`cum_max(reverse=True)` is not supported with Dask backendc                ó"   — | j                  «       S rI   )Úcummaxrñ   s    r8   r9   z"DaskExpr.cum_max.<locals>.<lambda>H  rò   r:   ró   rõ   s      r8   Úcum_maxzDaskExpr.cum_maxC  r  r:   c               óD   — |rd}t        |«      ‚| j                  d„ «      S )Nz;`cum_prod(reverse=True)` is not supported with Dask backendc                ó"   — | j                  «       S rI   )Úcumprodrñ   s    r8   r9   z#DaskExpr.cum_prod.<locals>.<lambda>O  s   € °·±³€ r:   ró   rõ   s      r8   Úcum_prodzDaskExpr.cum_prodJ  s'   € ÙØOˆCÜ% cÓ*Ð*à×"Ñ"Ñ#>Ó?Ð?r:   c               ó4   ‡‡‡— | j                  ˆˆˆfd„«      S )Nc                óH   •— | j                  ‰‰‰¬«      j                  «       S ©N)ÚwindowÚmin_periodsÚcenter)Úrollingrt   ©r5   r  Úmin_samplesÚwindow_sizes    €€€r8   r9   z&DaskExpr.rolling_sum.<locals>.<lambda>S  s&   ø€ ˜Ÿ™Ø"°ÀFð &ó ç‰c‹eð r:   r;   ©r>   r  r  r  s    ```r8   Úrolling_sumzDaskExpr.rolling_sumQ  s   ú€ Ø×"Ñ"õó
ð 	
r:   c               ó4   ‡‡‡— | j                  ˆˆˆfd„«      S )Nc                óH   •— | j                  ‰‰‰¬«      j                  «       S r  )r  rp   r  s    €€€r8   r9   z'DaskExpr.rolling_mean.<locals>.<lambda>Z  s&   ø€ ˜Ÿ™Ø"°ÀFð &ó ç‰d‹fð r:   r;   r  s    ```r8   Úrolling_meanzDaskExpr.rolling_meanX  s   ú€ Ø×"Ñ"õó
ð 	
r:   c               óX   ‡‡‡— |dk(  r| j                  ˆˆˆfd„«      S d}t        |«      ‚)Né   c                óH   •— | j                  ‰‰‰¬«      j                  «       S r  )r  ru   r  s    €€€r8   r9   z&DaskExpr.rolling_var.<locals>.<lambda>d  ó&   ø€ ˜TŸ\™\Ø&°KÈð *ó ç‘#“%ð r:   z5Dask backend only supports `ddof=1` for `rolling_var`©r<   rô   ©r>   r  r  r  Úddofrç   s    ```  r8   Úrolling_varzDaskExpr.rolling_var_  ó7   ú€ ð �1Š9Ø×&Ñ&õóð ð
 FˆÜ! #Ó&Ð&r:   c               óX   ‡‡‡— |dk(  r| j                  ˆˆˆfd„«      S d}t        |«      ‚)Nr  c                óH   •— | j                  ‰‰‰¬«      j                  «       S r  )r  rs   r  s    €€€r8   r9   z&DaskExpr.rolling_std.<locals>.<lambda>p  r  r:   z5Dask backend only supports `ddof=1` for `rolling_std`r  r  s    ```  r8   Úrolling_stdzDaskExpr.rolling_stdk  r!  r:   c                óD   — dd l m} | j                  |j                  «      S r�   )Ú
dask.arrayÚarrayr<   Úfloor©r>   Údas     r8   r(  zDaskExpr.floorw  s   € Ýà×"Ñ" 2§8¡8Ó,Ð,r:   c                óD   — dd l m} | j                  |j                  «      S r�   )r&  r'  r<   Úceilr)  s     r8   r,  zDaskExpr.ceil|  ó   € Ýà×"Ñ" 2§7¡7Ó+Ð+r:   c                ó€   ‡ ‡‡— |€t         j                  n|Š|€t        d«      n|Šdˆ ˆˆfd„}‰ j                  |«      S )NÚnanc                ó°   •— t        d| | k7  «      }|j                  d«      }t        | j                  ‰j                  «      r‰n‰}| j                  ||«      S )NrÙ   F)r   Úfillnar   râ   rT   Úmask)r5   r2  Úfillr>   Úvalue_nullableÚvalue_numpys      €€€r8   r’   zDaskExpr.fill_nan.<locals>.func…  sW   ø€ ä˜ T¨T¡\Ó2ˆDØ—;‘;˜uÓ%ˆDô % T§Z¡Z°×1EÑ1EÔFñ à ð ð
 —9‘9˜T 4Ó(Ð(r:   ©r5   rÙ   r•   rÙ   )ÚpdÚNAÚfloatr<   )r>   r¶   r’   r4  r5  s   `  @@r8   Úfill_nanzDaskExpr.fill_nan�  s9   ú€ Ø"' -œŸš°UˆØ&+ m”e˜E”l¸ˆ÷		)ð ×"Ñ" 4Ó(Ð(r:   c                ó:   ‡‡‡— dˆˆˆfd„}| j                  |«      S )Nc                ó„   •— ‰�| j                  ‰«      }|S ‰dk(  r| j                  ‰¬«      n| j                  ‰¬«      }|S )NÚforward)Úlimit)r1  ÚffillÚbfill)r5   Úres_serr>  Ústrategyr¶   s     €€€r8   r’   z DaskExpr.fill_null.<locals>.func•  sR   ø€ ØÐ ØŸ+™+ eÓ,�ð ˆNð   9Ò,ð —J‘J U�JÔ+àŸ™¨%˜Ó0ð ð
 ˆNr:   r6  r;   )r>   r¶   rB  r>  r’   s    ``` r8   Ú	fill_nullzDaskExpr.fill_null’  s   ú€ ÷		ð ×"Ñ" 4Ó(Ð(r:   c                ó,   — | j                  d„ ||¬«      S )Nc                ó(   — | j                  ||¬«      S )N)ÚlowerÚupper©Úclip)r5   Úlower_boundÚupper_bounds      r8   r9   zDaskExpr.clip.<locals>.<lambda>¤  s   € °4·9±9Ø!¨ð 4=ó 4€ r:   )rJ  rK  r;   )r>   rJ  rK  s      r8   rI  zDaskExpr.clip¢  s'   € Ø×"Ñ"ñð $Ø#ð #ó 
ð 	
r:   c                ó*   — | j                  d„ |¬«      S )Nc                ó&   — | j                  |¬«      S )N)rF  rH  )r5   rJ  s     r8   r9   z%DaskExpr.clip_lower.<locals>.<lambda>­  ó   €  d§i¡i°k iÓ&B€ r:   )rJ  r;   )r>   rJ  s     r8   Ú
clip_lowerzDaskExpr.clip_lower«  ó    € Ø×"Ñ"ÙBØ#ð #ó 
ð 	
r:   c                ó*   — | j                  d„ |¬«      S )Nc                ó&   — | j                  |¬«      S )N)rG  rH  )r5   rK  s     r8   r9   z%DaskExpr.clip_upper.<locals>.<lambda>³  rN  r:   )rK  r;   )r>   rK  s     r8   Ú
clip_upperzDaskExpr.clip_upper±  rP  r:   c                ó&   — | j                  d„ «      S )Nc                óB   — | j                  d¬«      j                  «       S )NF)ry   )Únuniquer3   rñ   s    r8   r9   z#DaskExpr.n_unique.<locals>.<lambda>¸  s   € °·±ÀE°Ó0J×0TÑ0TÓ0V€ r:   r;   ©r>   s    r8   Ún_uniquezDaskExpr.n_unique·  s   € Ø×"Ñ"Ñ#VÓWÐWr:   c                ó2   ‡ — dˆ fd„}‰ j                  |«      S )Nc                ó¦   •— t        | j                  ‰j                  ‰j                  «      }|j	                  «       r| | k7  S d|› d�}t        |«      ‚)Nz4`.is_nan` only supported for numeric dtypes and not z, did you mean `.is_null`?)r   râ   r�   rT   rä   r   )r5   râ   rç   r>   s      €r8   r’   zDaskExpr.is_nan.<locals>.func»  sT   ø€ Ü,Ø—
‘
˜DŸM™M¨4×+?Ñ+?óˆEð ×ÑÔ!Ø˜t‘|Ð#ØHÈÈÐOiÐjˆCÜ'¨Ó,Ð,r:   r6  r;   r˜   s   ` r8   Úis_nanzDaskExpr.is_nanº  s   ø€ õ	-ð ×"Ñ" 4Ó(Ð(r:   c                ó&   — | j                  d„ «      S )Nc                ó6   — | j                   j                  «       S rI   )Úsizer3   rñ   s    r8   r9   zDaskExpr.len.<locals>.<lambda>Ç  s   € °·	±	×0CÑ0CÓ0E€ r:   r;   rW  s    r8   ÚlenzDaskExpr.lenÆ  s   € Ø×"Ñ"Ñ#EÓFÐFr:   c                óV   ‡— |dk(  rdˆfd„}| j                  |«      S d}t        |«      ‚)NÚlinearc                ó~   •— | j                   dkD  rd}t        |«      ‚| j                  ‰d¬«      j                  «       S )Nr  zK`Expr.quantile` is not supported for Dask backend with multiple partitions.Údask)ÚqÚmethod)Únpartitionsrô   Úquantiler3   )r5   rç   rg  s     €r8   r’   zDaskExpr.quantile.<locals>.funcÎ  sC   ø€ Ø×#Ñ# aÒ'Øg�CÜ-¨cÓ2Ð2Ø—}‘}Ø vð %ó ç‘)“+ðr:   zx`higher`, `lower`, `midpoint`, `nearest` - interpolation methods are not supported by Dask. Please use `linear` instead.r6  r  )r>   rg  Úinterpolationr’   rç   s    `   r8   rg  zDaskExpr.quantileÉ  s8   ø€ ð ˜HÒ$õð ×&Ñ& tÓ,Ð,ð IˆÜ! #Ó&Ð&r:   c                ó,   — dd„}| j                  |«      S )Nc                óú   — | j                   }t        d|gd¬«      }t        | j                  «       |«      }t	        d¬«      } |j
                  |fi |¤Žj                  |di«      |   }||   j                  |«      S )Né   Ú
row_index_©Ún_bytesÚcolumnsÚprefixF©Údrop_null_keysrq   ©Únamer   r   Úto_framer   ÚgroupbyÚaggÚisin)r5   Ú_nameÚ	col_tokenÚframeÚgroup_by_kwargsÚfirst_distinct_indexs         r8   r’   z(DaskExpr.is_first_distinct.<locals>.funcÛ  s†   € Ø—I‘IˆEÜ6Ø E 7°<ôˆIô " $§-¡-£/°9Ó=ˆEÜ2À%ÔHˆOØ#0 5§=¡=°Ñ#J¸/Ñ#J×#NÑ#NØ˜EÐ"ó$àñ$Ð ð ˜Ñ#×(Ñ(Ð)=Ó>Ð>r:   r6  r;   r˜   s     r8   Úis_first_distinctzDaskExpr.is_first_distinctÚ  s   € ó
	?ð ×"Ñ" 4Ó(Ð(r:   c                ó,   — dd„}| j                  |«      S )Nc                óú   — | j                   }t        d|gd¬«      }t        | j                  «       |«      }t	        d¬«      } |j
                  |fi |¤Žj                  |di«      |   }||   j                  |«      S )Nrk  rl  rm  Frq  ro   rs  )r5   ry  rz  r{  r|  Úlast_distinct_indexs         r8   r’   z'DaskExpr.is_last_distinct.<locals>.funcê  s†   € Ø—I‘IˆEÜ6Ø E 7°<ôˆIô " $§-¡-£/°9Ó=ˆEÜ2À%ÔHˆOØ"/ %§-¡-°Ñ"I¸Ñ"I×"MÑ"MØ˜EÐ"ó#àñ#Ðð ˜Ñ#×(Ñ(Ð)<Ó=Ð=r:   r6  r;   r˜   s     r8   Úis_last_distinctzDaskExpr.is_last_distincté  s   € ó
	>ð ×"Ñ" 4Ó(Ð(r:   c                ó,   — dd„}| j                  |«      S )Nc                ó¨   — | j                   }t        d¬«      } | j                  «       j                  |fi |¤Žj	                  d|t
        f¬«      dk(  S )NFrq  r^  )Úmetar  )rt  r   ru  rv  Ú	transformrû   )r5   ry  r|  s      r8   r’   z DaskExpr.is_unique.<locals>.funcù  sU   € Ø—I‘IˆEÜ2À%ÔHˆOð�—‘“ß‘˜ñ3Ø"1ñ3ç‘˜6¨´¨�Ó5Øñðr:   r6  r;   r˜   s     r8   Ú	is_uniquezDaskExpr.is_uniqueø  s   € ó	ð ×"Ñ" 4Ó(Ð(r:   c                ó,   ‡— | j                  ˆfd„«      S )Nc                ó&   •— | j                  ‰«      S rI   )rx  )r5   rK   s    €r8   r9   z DaskExpr.is_in.<locals>.<lambda>  s   ø€ °·	±	¸%Ó0@€ r:   r;   )r>   rK   s    `r8   Úis_inzDaskExpr.is_in  s   ø€ Ø×"Ñ"Ó#@ÓAÐAr:   c                ó&   — | j                  d„ «      S )Nc                óZ   — | j                  «       j                  «       j                  «       S rI   )rz   rt   r3   rñ   s    r8   r9   z%DaskExpr.null_count.<locals>.<lambda>	  s   € °·	±	³·±Ó0A×0KÑ0KÓ0M€ r:   r;   rW  s    r8   Ú
null_countzDaskExpr.null_count  s   € Ø×"Ñ"Ñ#MÓNÐNr:   c                óz   ‡ ‡— dˆˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      S )Nc                ó6   •—  ‰ | j                   ‰dddœŽ«      S )NF)Ú
descendingÚ
nulls_last)Úsort)rˆ   Úorder_byr>   s    €€r8   r’   z1DaskExpr._over_without_partition_by.<locals>.func  s   ø€ Ù˜˜Ÿ™ °eÈÒNÓOÐOr:   r“   ©rˆ   r#   r•   zSequence[dx.Series]r–   )r>   r“  r’   s   `` r8   Ú_over_without_partition_byz#DaskExpr._over_without_partition_by  s=   ù€ ö	Pð �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
ð 	
r:   c                ó¾  ‡ ‡‡‡	‡
‡— ‰s|sJ ‚‰ j                  |«      S ddlm} ‰ j                  Š
‰r/‰
j                  �#‰
j                  j
                  sd}t        |«      ‚|rd}t        |«      ‚t        t        t        ‰ j                  j                  «       «      «      «      Š‰d   }t        d|j                  «      }	 |j                  |   Št        ||j                   «      Š	dˆˆ	ˆ
ˆˆˆ fd„}‰ j#                  |‰ j$                  ‰ j&                  ‰ j(                  ¬«      S # t        $ r/ d|› dd	j                  |j                  «      › d
�}t        |«      d ‚w xY w)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, ú
c           
     ó¸  •— ‰j                  «       }‰j                  �(| j                  t        dt	        ‰d d |«      «      «      } t        ‰| g «      \  }}t        j                  «       5  t        j                  ddt        ¬«       t        d¬«      } | j                  j                  ‰fi |¤Ž}‰
dk(  rAt        |«      d	k7  rd
}t        |«      ‚ |j                  ‰
fi ‰¤Žj!                  |d   «      }n |t#        |«         j                  ‰
fi ‰¤Ž}d d d «       | j%                  «      j                  }|D �	cg c]  }	||	   ‘Œ	 c}	S # 1 sw Y   Œ7xY wc c}	w )NrS   r˜  Úignorez.*`meta` is not specified)ÚmessageÚcategoryFrq  r^  r  z)Safety check failed, please report a bug.r   )rŒ   ÚprevÚwith_columnsr   r   r   ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr   r¨   rv  r_  ÚAssertionErrorr†  ru  ÚlistÚ_with_native)rˆ   ÚplxÚ_Úaliasesr|  Úgroupedrç   Ú
res_nativeÚresult_framert  Údask_function_nameÚdask_kwargsr…  ÚnodesÚpartition_byr>   s             €€€€€€r8   r’   zDaskExpr.over.<locals>.funcE  sY  ø€ Ø×-Ñ-Ó/ˆCØ�y‰yÐ$Ø—_‘_¤T¨*´nÀUÈ3ÈBÀZÐQTÓ6UÓ%VÓW�Ü:¸4ÀÀRÓH‰JˆAˆwä×(Ñ(Ó*ñ ä×'Ñ'ØÐ&AÌKõô #7ÀeÔ"L�Ø+˜"Ÿ)™)×+Ñ+¨LÑL¸OÑL�Ø%¨Ò/Ü˜7“| qÒ(ØI˜Ü,¨SÓ1Ð1Ø!2 ×!2Ñ!2Ø*ñ"Ø.9ñ"ç‘h˜w q™zÓ*ñ ð "B ¬¨g«Ñ!7×!AÑ!AØ*ñ"Ø.9ñ"�J÷ð$ Ÿ?™?¨:Ó6×=Ñ=ˆLØ3:Ö;¨4�L Ó&Ò;Ð;÷'ð üò& <s   Á*B+EÄ<EÅEr“   r”  )r•  Únarwhals._pandas_like.group_byr—  Ú	_metadatarž  Úis_elementwiserô   r¥  ÚreversedÚiter_nodes_reversedr   rt  Ú_REMAP_AGGSr�   Újoinr   r7   r—   r   r€   r�   )r>   r°  r“  r—  rç   Ú	leaf_nodeÚfunction_namer’   r­  r®  r…  r¯  s   ``      @@@@r8   ÚoverzDaskExpr.over  sf  ý€ ÙÙˆO�8Ø×2Ñ2°8Ó<Ð<åDð �~‰~ˆÙØ�I‰IÐ!¨$¯)©)×*BÒ*Bð_ð ô & cÓ*Ð*áàHˆCÜ% cÓ*Ð*ä”Xœd 4§>¡>×#EÑ#EÓ#GÓHÓIÓJˆØ˜"‘Iˆ	ÜÐ2°I·N±NÓCˆð	5Ø!2×!>Ñ!>¸}Ñ!MÐô 9¸È	×HXÑHXÓYˆ÷	<ò 	<ð6 �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
ð 	
øôI ò 	5ð )¨¨ð 8+Ø+/¯9©9Ð5F×5RÑ5RÓ+SÐ*TÐTVðXð ô & cÓ*°Ð4ð	5ús   ÃD$ Ä$8Ec                ó6   ‡ ‡— dˆˆ fd„}‰ j                  |«      S )Nc                óR   •— t        ‰‰j                  «      }| j                  |«      S rI   )r   r�   rú   )r5   Únative_dtyperâ   r>   s     €€r8   r’   zDaskExpr.cast.<locals>.funch  s"   ø€ Ü3°E¸4¿=¹=ÓIˆLØ—;‘;˜|Ó,Ð,r:   r6  r;   )r>   râ   r’   s   `` r8   r   zDaskExpr.castg  s   ù€ ö	-ð ×"Ñ" 4Ó(Ð(r:   c                óD   — dd l m} | j                  |j                  «      S r�   )r&  r'  r<   Úisfiniter)  s     r8   Ú	is_finitezDaskExpr.is_finiten  s   € Ýà×"Ñ" 2§;¡;Ó/Ð/r:   c                óB   ‡‡— dd l mŠ dˆˆfd„}| j                  |«      S )Nr   c                óJ   •— ‰j                  | «      ‰j                  ‰«      z  S rI   )Úlog)r5   Úbaser*  s    €€r8   Ú_logzDaskExpr.log.<locals>._logv  s   ø€ Ø—6‘6˜$“< "§&¡&¨£,Ñ.Ð.r:   r6  )r&  r'  r<   )r>   rÄ  rÅ  r*  s    ` @r8   rÃ  zDaskExpr.logs  s   ù€ Ýö	/ð ×"Ñ" 4Ó(Ð(r:   c                óD   — dd l m} | j                  |j                  «      S r�   )r&  r'  r<   Úexpr)  s     r8   rÇ  zDaskExpr.exp{  ó   € Ýà×"Ñ" 2§6¡6Ó*Ð*r:   c                óD   — dd l m} | j                  |j                  «      S r�   )r&  r'  r<   Úsinr)  s     r8   rÊ  zDaskExpr.sin€  rÈ  r:   c                óD   — dd l m} | j                  |j                  «      S r�   )r&  r'  r<   Úsqrtr)  s     r8   rÌ  zDaskExpr.sqrt…  r-  r:   c               ó2   ‡— dˆfd„}| j                  |«      S )Nc                óŽ   •— | j                   }| j                  «       j                  «       |   }‰dk(  r|j                  d«      S |S )Nrl   r  )rt  ru  ÚmodeÚhead)r5   ry  r‘   Úkeeps      €r8   r’   zDaskExpr.mode.<locals>.func‹  s>   ø€ Ø—I‘IˆEØ—]‘]“_×)Ñ)Ó+¨EÑ2ˆFØ%)¨U¢]�6—;‘;˜q“>Ð>¸Ð>r:   r6  r;   )r>   rÑ  r’   s    ` r8   rÏ  zDaskExpr.modeŠ  s   ø€ õ	?ð
 ×"Ñ" 4Ó(Ð(r:   c               óð   ‡ ‡‡‡‡— ‰t         u rd}t        |«      ‚t        t        ||«      «      Št	        |«      Šdˆˆˆˆˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      S )NzK`replace_strict` requires an explicit value for `default` for dask backend.c                ó2  •— | j                  ‰«      } ‰
| «      D �cg c]2  }|j                  ‰«      j                  |j                  ‰«      |«      ‘Œ4 }}‰	r5t	        ‰	‰
j
                  «      }|D �cg c]  }|j                  |«      ‘Œ c}S |S c c}w c c}w rI   )r±   ÚreplacerÐ   rx  r   r�   rú   )rˆ   Údefault_seriesrÒ   Úresultsr½  ÚresÚdefaultÚmappingÚold_Úreturn_dtyper>   s         €€€€€r8   r’   z%DaskExpr.replace_strict.<locals>.func¡  s”   ø€ Ø×<Ñ<¸WÓEˆNñ # 2›höàð —‘˜wÓ'×-Ñ-¨f¯k©k¸$Ó.?ÀÕPðˆGð ñ
 Ü7¸ÀdÇmÁmÓT�Ø<CÖD°S˜Ÿ
™
 <Õ0ÒDÐDàˆNùòùò Es   �7BÁ2Br“   r”   )	r   Ú
ValueErrorÚdictÚzipr¥  r—   r   r€   r�   )	r>   rØ  ÚoldÚnewrÛ  rç   r’   rÙ  rÚ  s	   ``  `  @@r8   Úreplace_strictzDaskExpr.replace_strict’  ss   ü€ ð ”jÑ Ø_ˆCÜ˜S“/Ð!ä”s˜3 “}Ó%ˆÜ�C‹yˆ÷	ñ 	ð �~‰~ØØ"&×"=Ñ"=Ø#×7Ñ7Ø—M‘Mð	 ó 
ð 	
r:   c                ó   — t        | «      S rI   r   rW  s    r8   ÚstrzDaskExpr.strµ  s   € ä& tÓ,Ð,r:   c                ó   — t        | «      S rI   r
   rW  s    r8   ÚdtzDaskExpr.dt¹  s   € ä(¨Ó.Ð.r:   r   r¥  ÚstructN)
r‚   z$EvalSeries[DaskLazyFrame, dx.Series]rƒ   úEvalNames[DaskLazyFrame]r„   úAliasNames | Noner…   r'   r•   ÚNoner”  )r•   r%   )r•   r   )r£   z
type[Self]r¢   rç  r¤   r(   r•   r   )r«   rû   r¤   r(   r•   r   )r‚   úCallable[..., dx.Series]rº   r   r•   r   )r’   rè  r•   r   )r‚   z%Callable[[dx.Series, Any], dx.Series]rK   r   r•   r   )rÆ   rã  rK   r   r•   r   )rÉ   rê  rK   r   r•   r   )rK   r   r•   r   )rí   rû   r•   r   )rö   Úboolr•   r   )r  rû   r  rû   r  rë  r•   r   )
r  rû   r  rû   r  rë  r  rû   r•   r   )r¶   zfloat | Noner•   r   )r¶   zSelf | NonerB  zFillNullStrategy | Noner>  z
int | Noner•   r   )rJ  r   rK  r   r•   r   )rJ  r   r•   r   )rK  r   r•   r   )rg  r9  rh  r,   r•   r   )r“  úSequence[str]r•   r   )r°  rì  r“  rì  r•   r   )râ   r*   r•   r   )rÄ  r9  r•   r   )rÑ  r+   r•   r   )
rØ  zDaskExpr | NoDefaultrß  úSequence[Any]rà  rí  rÛ  zIntoDType | Noner•   r   )r•   r   )r•   r   )mÚ__name__Ú
__module__Ú__qualname__r   rã   rT   Ú__annotations__rL   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rQ   Ú__rsub__Ú__rtruediv__Ú__rpow__Ú__rmod__r@   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rF   rv   rw   rx   Ú
drop_nullsÚis_nullr{   r|   r†   r‰   rŒ   r™   Úclassmethodr¥   r­   r<   rÀ   rÃ   rJ   rO   rÏ   rß   ré   rì   r÷   rü   r   r  r	  r  r  r   r$  r(  r,  r:  rC  rI  rO  rS  rX  r[  r_  rg  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æ  r1   r:   r8   rS   rS   L   sp  … ð '5×&9Ñ&9€O�^Ó9ñ ˜IÓ&€GÙ˜IÓ&€GÙ˜IÓ&€GÙ Ó.€KÙ˜IÓ&€GÙ˜IÓ&€GÙ˜8Ó$€FÙ˜8Ó$€FÙ˜8Ó$€FÙ˜8Ó$€FÙ˜8Ó$€FÙ˜8Ó$€FÙ˜IÓ&€GÙ˜8Ó$€FÙ#Ñ$6Ó7€HÙ'Ñ(:Ó;€LÙ#Ñ$5Ó6€HÙ#Ñ$6Ó7€HÙ
˜UÓ
#€CÙ
˜UÓ
#€CÙ˜wÓ'€EÙ! *Ó-€HÙ
˜UÓ
#€CÙ˜fÓ%€DÙ
˜UÓ
#€CÙ˜fÓ%€DÙ
˜UÓ
#€CÙ
˜UÓ
#€CÙ
˜UÓ
#€CÙ˜|Ó,€JÙ
˜Ó
€CÙ˜Ó €DÙ˜xÓ(€JÙ˜FÓ#€GÙ˜'Ó"€EÙ˜8Ó$€Fð à2ð ð  8ð	 ð
 .ð ð ð ð 
ó óó4ó

ð ð
Øð
à7ð
ð
 !ð
ð 
ò
ó ð
ð2 ò	
ó ð	
ð
ð 'ð
ð
  $ð
ð 
ó
ó4
ð WØ9ðWØBEðWà	óWó
[ðØ5ðØ>Aðà	óó
ó$ó$
)ó?ó?óUó?ó?ó@ó
ó
ð
'Øð
'Ø03ð
'Ø=Að
'ØILð
'à	ó
'ð
'Øð
'Ø03ð
'Ø=Að
'ØILð
'à	ó
'ó-ó
,ó
)ð")Ø ð)Ø,Cð)ØLVð)à	ó)ó 
ó
ó
óXó
)óGð'Øð'Ø.Hð'à	ó'ó")ó)ó)óBóOó
óM
ó^)ó0ó
)ó+ó
+ó
,ó
)ð!
à%ð!
ð ð!
ð ð	!
ð 'ð!
ð 
ó!
ðF ò-ó ð-ð ò/ó ð/ñ  Ó!€IÙÓ€FÙÓ€EÙÓ€DÙÓ€Dñ ,Ó-€Dˆ/Ó-Ù-Ó/€FˆOÔ/r:   rS   )r#   rÙ   )r6   rã  r•   r   )rP   rê  r•   r   )DÚ
__future__r   r   Útypingr   r   r   r   Úpandasr7  Ú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   Ú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,   r@   rF   rL   rQ   rS   r1   r:   r8   ú<module>r     s¦   ðÝ "ã ß 5Ó 5ã ç ;Ý <Ý ;÷ó ÷ [Ý Iß S÷ó õ 6áÝ(ç)Ð)Ý&÷ó õ 7Ý6Ý*ß8÷ó óóó<ó
Bô
y	0ØÐ)Ñ*ØÐ2Ñ3õy	0r:   