Ë
    ÚÍ:jÖh  ã                  óž  — 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   «      ZCy)é    )Ú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ÚRollingInterpolationMethodc                ó   ‡ — ˆ fd„S )Nc                ó0   •‡— | j                  ˆˆfd„«      S )Nc                óD   •—  t        | ‰«      di ‰¤Žj                  «       S ©N© )ÚgetattrÚ	to_series©ÚexprÚattrÚkwargss    €€úh/home/mcse/projects/srt_converter/srt-converter-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                  ón  — 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/	 	 	 	 	 	 	 	 	 	 dad(„Z0dbd)„Z1dcd*„Z2ddd+„Z3e4	 	 	 	 	 	 	 	 ded,„«       Z5e4dfd-„«       Z6	 	 	 	 	 	 dgd.„Z7dhd/„Z8	 	 	 	 	 	 did1„Z9djd2„Z:	 	 	 	 	 	 dkd3„Z;dld4„Z<dld5„Z=ddd6„Z>dmd7„Z?dnd8„Z@dnd9„ZAdnd:„ZBdnd;„ZCdnd<„ZDdod=„ZEdod>„ZF	 	 	 	 	 	 	 	 	 	 dpd?„ZG	 	 	 	 	 	 	 	 	 	 dpd@„ZHdddA„ZIdddB„ZJdqdC„ZK	 	 	 	 	 	 	 	 drdD„ZLdsdE„ZMdtdF„ZNdudG„ZOdddH„ZPdddI„ZQdddJ„ZR	 	 	 	 	 	 dvdK„ZSdddL„ZTdddM„ZUdddN„ZVdldO„ZWdddP„ZXdwdQ„ZYdxdR„ZZdydS„Z[dddT„Z\dzdU„Z]dddV„Z^dddW„Z_dddX„Z`dddY„Zad{dZ„Zb	 	 	 	 	 	 	 	 	 	 d|d[„Zcedd}d\„«       Zeedd~d]„«       Zf eg«       Zh eg«       Zi eg«       Zj eg«       Zk eg«       Zl eg«       Zmd0ed^<    eg«       Znd0e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__Ú__neg__Ú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__z   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:   r   c                ó(   — | j                  ||¬«      S )N)rK   r;   )r>   rƒ   rK   s      r8   Ú_with_binaryzDaskExpr._with_binaryì   s   € ð ×"Ñ" 4¨uÐ"Ó5Ð5r:   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>4  ó   € °·±³€ 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   )r{   Ú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_count6  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>B  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>I  rò   r:   ró   rõ   s      r8   Úcum_maxzDaskExpr.cum_maxD  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>P  s   € °·±³€ r:   ró   rõ   s      r8   Úcum_prodzDaskExpr.cum_prodK  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>T  s&   ø€ ˜Ÿ™Ø"°ÀFð &ó ç‰c‹eð r:   r;   ©r>   r  r  r  s    ```r8   Úrolling_sumzDaskExpr.rolling_sumR  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>[  s&   ø€ ˜Ÿ™Ø"°ÀFð &ó ç‰d‹fð r:   r;   r  s    ```r8   Úrolling_meanzDaskExpr.rolling_meanY  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>e  ó&   ø€ ˜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>q  r  r:   z5Dask backend only supports `ddof=1` for `rolling_std`r  r  s    ```  r8   Úrolling_stdzDaskExpr.rolling_stdl  r!  r:   c                óD   — dd l m} | j                  |j                  «      S r�   )Ú
dask.arrayÚarrayr<   Úfloor©r>   Údas     r8   r(  zDaskExpr.floorx  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)rz   )Ú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¬«      }t        d |j                  |fi |¤Žj                  |di«      «      }||   }||   j                  |«      S )Né   Ú
row_index_©Ún_bytesÚcolumnsÚprefixF©Údrop_null_keysúdx.DataFramerq   ©	Únamer   r   Úto_framer   r   ÚgroupbyÚaggÚisin)r5   Ú_nameÚ	col_tokenÚframeÚgroup_by_kwargsÚaggedÚ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ÜØØ�—‘˜eÑ7 Ñ7×;Ñ;¸YÈÐ<NÓOóˆEð $)¨Ñ#3Ð Ø˜Ñ#×(Ñ(Ð)=Ó>Ð>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¬«      }t        d |j                  |fi |¤Žj                  |di«      «      }||   }||   j                  |«      S )Nrk  rl  rm  Frq  rs  ro   rt  )r5   rz  r{  r|  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ÜØØ�—‘˜eÑ7 Ñ7×;Ñ;¸YÈÐ<NÓOóˆEð #(¨	Ñ"2ÐØ˜Ñ#×(Ñ(Ð)<Ó=Ð=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  )ru  r   rv  rw  Ú	transformrû   )r5   rz  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   )ry  )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   )r{   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©   rw  r_  ÚAssertionErrorrˆ  rv  ÚlistÚ_with_native)r‰   ÚplxÚ_Úaliasesr}  Úgroupedrç   Ú
res_nativeÚresult_frameru  Údask_function_nameÚdask_kwargsr‡  ÚnodesÚpartition_byr>   s             €€€€€€r8   r“   zDaskExpr.over.<locals>.funcJ  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   ru  Ú_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>.funcm  s"   ø€ Ü3°E¸4¿=¹=ÓIˆLØ—;‘;˜|Ó,Ð,r:   r6  r;   )r>   râ   r“   s   `` r8   r   zDaskExpr.castl  s   ù€ ö	-ð ×"Ñ" 4Ó(Ð(r:   c                óD   — dd l m} | j                  |j                  «      S r�   )r&  r'  r<   Úisfiniter)  s     r8   Ú	is_finitezDaskExpr.is_finites  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>._log{  s   ø€ Ø—6‘6˜$“< "§&¡&¨£,Ñ.Ð.r:   r6  )r&  r'  r<   )r>   rÆ  rÇ  r*  s    ` @r8   rÅ  zDaskExpr.logx  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<   Úcosr)  s     r8   rÎ  zDaskExpr.cosŠ  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  )ru  rv  ÚmodeÚhead)r5   rz  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        ||d¬«      «      Št	        |«      Šdˆˆˆˆˆ fd„}‰ j                  |‰ j                  ‰ j                  ‰ j                  ¬«      S )NzK`replace_strict` requires an explicit value for `default` for dask backend.F)Ústrictc                ó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Ð   ry  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œ  sv   ü€ ð ”jÑ Ø_ˆCÜ˜S“/Ð!ä”s˜3 ¨EÔ2Ó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§  Ú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
   )oÚ__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   ry   Ú
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Ó  ræ  Úpropertyrè  rê  r   Ú	any_valueÚfilterÚfirstÚrankÚlastr§  rë  r1   r:   r8   rS   rS   L   s{  … ð '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Ù˜IÓ&€GÙ
˜Ó
€CÙ˜Ó €DÙ˜xÓ(€JÙ˜FÓ#€GÙ˜'Ó"€EÙ˜8Ó$€Fð à2ð ð  8ð	 ð
 .ð ð ð ð 
ó óó4ó

ð ð
Øð
à7ð
ð
 !ð
ð 
ò
ó ð
ð2 ò	
ó ð	
ð
ð 'ð
ð
  $ð
ð 
ó
ó4
ð 6Ø9ð6ØBEð6à	ó6ó
[ðØ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ˆCÔ#r:   rS   )r#   rÙ   )r6   rè  r–   r   )rP   rï  r–   r   )DÚ
__future__r   r¢  Útypingr   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   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,   r@   rF   rL   rQ   rS   r1   r:   r8   ú<module>r     s¦   ðÝ "ã ß +Ñ +ã ç ;Ý <Ý ;÷ó ÷ [Ý Iß S÷ó õ 6áß2ç)Ð)Ý&÷ó õ 7Ý6Ý*ß8÷ó óóó<ó
Bô
C
$ØÐ)Ñ*ØÐ2Ñ3õC
$r:   