Ë
    ýéñioh  ã                  óž  — 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    €€úU/var/www/pod-logistic/pod-ai/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                  ó^  — 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/dad(„Z0dbd)„Z1dcd*„Z2e3	 	 	 	 	 	 	 	 ddd+„«       Z4e3ded,„«       Z5	 	 	 	 	 	 dfd-„Z6dgd.„Z7	 	 	 	 	 	 dhd/„Z8did0„Z9	 	 	 	 	 	 djd1„Z:dkd2„Z;dkd3„Z<dcd4„Z=dld5„Z>dmd6„Z?dmd7„Z@dmd8„ZAdmd9„ZBdmd:„ZCdnd;„ZDdnd<„ZE	 	 	 	 	 	 	 	 	 	 dod=„ZF	 	 	 	 	 	 	 	 	 	 dod>„ZGdcd?„ZHdcd@„ZIdpdA„ZJ	 	 	 	 	 	 	 	 dqdB„ZKdrdC„ZLdsdD„ZMdtdE„ZNdcdF„ZOdcdG„ZPdcdH„ZQ	 	 	 	 	 	 dudI„ZRdcdJ„ZSdcdK„ZTdcdL„ZUdkdM„ZVdcdN„ZWdvdO„ZXdwdP„ZYdxdQ„ZZdcdR„Z[dydS„Z\dcdT„Z]dcdU„Z^dcdV„Z_dcdW„Z`dzdX„Za	 	 	 	 	 	 	 	 	 	 d{dY„Zbecd|dZ„«       Zdecd}d[„«       Ze ef«       Zg ef«       Zh ef«       Zi ef«       Zj ef«       Zk ef«       Zld\ed]<    ef«       Zmd\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                ó(   — | 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>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   r1  Ú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’   r3  r4  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)r0  Ú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:   r5  r;   )r>   r¶   rA  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:   )rI  rJ  r;   )r>   rI  rJ  s      r8   rH  zDaskExpr.clip¢  s'   € Ø×"Ñ"ñð $Ø#ð #ó 
ð 	
r:   c                ó*   — | j                  d„ |¬«      S )Nc                ó&   — | j                  |¬«      S )N)rE  rG  )r5   rI  s     r8   r9   z%DaskExpr.clip_lower.<locals>.<lambda>­  ó   €  d§i¡i°k iÓ&B€ r:   )rI  r;   )r>   rI  s     r8   Ú
clip_lowerzDaskExpr.clip_lower«  ó    € Ø×"Ñ"ÙBØ#ð #ó 
ð 	
r:   c                ó*   — | j                  d„ |¬«      S )Nc                ó&   — | j                  |¬«      S )N)rF  rG  )r5   rJ  s     r8   r9   z%DaskExpr.clip_upper.<locals>.<lambda>³  rM  r:   )rJ  r;   )r>   rJ  s     r8   Ú
clip_upperzDaskExpr.clip_upper±  rO  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:   r5  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;   rV  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æ   rf  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.r5  r  )r>   rf  Úinterpolationr’   ræ   s    `   r8   rf  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:   r5  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 )Nrj  rk  rl  Frp  ro   rr  )r5   rx  ry  rz  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:   r5  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 )NFrp  r]  )Úmetar  )rs  r   rt  ru  Ú	transformrú   )r5   rx  r{  s      r8   r’   z DaskExpr.is_unique.<locals>.funcù  sU   € Ø—I‘IˆEÜ2À%ÔHˆOð�—‘“ß‘˜ñ3Ø"1ñ3ç‘˜6¨´¨�Ó5Øñðr:   r5  r;   r˜   s     r8   Ú	is_uniquezDaskExpr.is_uniqueø  s   € ó	ð ×"Ñ" 4Ó(Ð(r:   c                ó,   ‡— | j                  ˆfd„«      S )Nc                ó&   •— | j                  ‰«      S rI   )rw  )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;   rV  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ÚcategoryFrp  r]  r  z)Safety check failed, please report a bug.r   )rŒ   ÚprevÚwith_columnsr   r   r   ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr   r¨   ru  r^  ÚAssertionErrorr…  rt  ÚlistÚ_with_native)rˆ   ÚplxÚ_Úaliasesr{  Úgroupedræ   Ú
res_nativeÚresult_framers  Ú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   rs  Ú_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:   r5  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:   r5  )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<   Ú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  )rs  rt  ÚmodeÚhead)r5   rx  r‘   Úkeeps      €r8   r’   zDaskExpr.mode.<locals>.func�  s>   ø€ Ø—I‘IˆEØ—]‘]“_×)Ñ)Ó+¨EÑ2ˆFØ%)¨U¢]�6—;‘;˜q“>Ð>¸Ð>r:   r5  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Ï   rw  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   rV  s    r8   ÚstrzDaskExpr.strº  s   € ä& tÓ,Ð,r:   c                ó   — t        | «      S rI   r
   rV  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 | NonerA  zFillNullStrategy | Noner=  z
int | Noner•   r   )rI  r   rJ  r   r•   r   )rI  r   r•   r   )rJ  r   r•   r   )rf  r8  rg  r,   r•   r   )r’  úSequence[str]r•   r   )r¯  rí  r’  rí  r•   r   )rá   r*   r•   r   )rÃ  r8  r•   r   )rÒ  r+   r•   r   )
rÙ  zDaskExpr | NoDefaultrà  úSequence[Any]rá  rî  rÜ  zIntoDType | Noner•   r   )r•   r   )r•   r   )nÚ__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+  r9  rB  rH  rN  rR  rW  rZ  r^  rf  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   sq  … ð '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
ð 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ˆOÔ/r:   rS   )r#   rØ   )r6   rä  r•   r   )rP   rë  r•   r   )DÚ
__future__r   rŸ  Útypingr   r   r   r   Úpandasr6  Ú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ô
~	0ØÐ)Ñ*ØÐ2Ñ3õ~	0r:   