Ë
    ðmxi�M  ã                  ó¶  — U d dl 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 d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d d	lmZ ersd d
lmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)mc m*Z+ d dl,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dlm:Z:m;Z; d dl<m=Z= d dl>m?Z? d dlm@Z@ d dlmAZAmBZBmCZC dZDdeEd<   	  G d„ ded   e«      ZFy)é    )Úannotations)ÚTYPE_CHECKINGÚAnyN)Úadd_row_indexÚevaluate_exprs)Únative_to_narwhals_dtypeÚselect_columns_by_name)Úassert_never)	ÚImplementationÚValidateBackendVersionÚ_remap_full_join_keysÚcheck_column_names_are_uniqueÚcheck_columns_existÚgenerate_temporary_column_nameÚnot_implementedÚparse_columns_to_dropÚ
zip_strict)ÚMultiOutputExpressionError)ÚCompliantLazyFrame)ÚIterableÚIteratorÚMappingÚSequence)ÚBytesIO)ÚPath)Ú
ModuleType)ÚSelfÚ	TypeAliasÚTypeIs)ÚCompliantDataFrameAny)ÚDaskExpr©ÚDaskLazyGroupBy©ÚDaskNamespace)Ú_EagerAllowedImpl)ÚVersionÚ_LimitedContext)Ú	LazyFrame)ÚDType)ÚColumnNotFoundError)ÚAsofJoinStrategyÚJoinStrategyÚUniqueKeepStrategyr   r   Ú
Incompletec                  ó¦  — e Zd Zej                  Zddœ	 	 	 	 	 	 	 d/d„Zed0d„«       Ze	d1d„«       Z
d2d„Zd3d„Zd4d„Zd5d	„Zd6d
„Zd7d„Zd8d„Zd9d„Zd:d„Zd;d„Z	 	 	 	 	 	 d<d„Zed=d„«       Zd>d„Zd?d„Zd;d„Zd;d„Zd@d„ZedAd„«       ZdAd„ZdBd„ZdCd„Z dDd„Z!dEd„Z"	 	 	 	 	 	 	 	 dFd„Z#dGd„Z$dHd„Z%	 	 	 	 	 	 	 	 	 	 dId „Z&	 	 	 	 	 	 	 	 	 	 dId!„Z'	 	 	 	 	 	 	 	 	 	 dId"„Z(dJd#„Z)	 	 	 	 	 	 	 	 dKd$„Z*	 	 	 	 	 	 	 	 dKd%„Z+	 	 	 	 	 	 	 	 dLd&„Z,	 	 	 	 	 	 	 	 	 	 	 	 dMd'„Z-	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dNd(„Z.	 	 	 	 	 	 dOd)„Z/dEd*„Z0dPd+„Z1	 	 	 	 	 	 	 	 	 	 dQd,„Z2dRd-„Z3 e4«       Z5y.)SÚDaskLazyFrameF)Úvalidate_backend_versionc               ób   — || _         || _        d | _        d | _        |r| j	                  «        y y ©N)Ú_native_frameÚ_versionÚ_cached_schemaÚ_cached_columnsÚ_validate_backend_version)ÚselfÚnative_dataframeÚversionr2   s       úO/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/_dask/dataframe.pyÚ__init__zDaskLazyFrame.__init__:   s7   € ð ,<ˆÔØˆŒØ7;ˆÔØ15ˆÔÙ#Ø×*Ñ*Õ,ð $ó    c                ó6   — t        | t        j                  «      S r4   )Ú
isinstanceÚddÚ	DataFrame)Úobjs    r=   Ú
_is_nativezDaskLazyFrame._is_nativeH   s   € ä˜#œrŸ|™|Ó,Ð,r?   c              ó*   —  | ||j                   ¬«      S ©N©r<   )r6   )ÚclsÚdataÚcontexts      r=   Úfrom_nativezDaskLazyFrame.from_nativeL   s   € á�4 ×!1Ñ!1Ô2Ð2r?   c                ó<   — | j                   j                  | d¬«      S )NÚlazy)Úlevel)r6   Ú	lazyframe©r:   s    r=   Úto_narwhalszDaskLazyFrame.to_narwhalsP   s   € Ø�}‰}×&Ñ& t°6Ð&Ó:Ð:r?   c                ó´   — | j                   t        j                  u r| j                   j                  «       S dt	        | j                   «      › �}t        |«      ‚)NzExpected dask, got: )Ú_implementationr   ÚDASKÚto_native_namespaceÚtypeÚAssertionError)r:   Úmsgs     r=   Ú__native_namespace__z"DaskLazyFrame.__native_namespace__S   sN   € Ø×Ñ¤>×#6Ñ#6Ñ6Ø×'Ñ'×;Ñ;Ó=Ð=à$¤T¨$×*>Ñ*>Ó%?Ð$@ÐAˆÜ˜SÓ!Ð!r?   c                ó4   — ddl m}  || j                  ¬«      S )Nr   r$   rH   )Únarwhals._dask.namespacer%   r6   )r:   r%   s     r=   Ú__narwhals_namespace__z$DaskLazyFrame.__narwhals_namespace__Z   s   € Ý:á T§]¡]Ô3Ð3r?   c                ó   — | S r4   © rQ   s    r=   Ú__narwhals_lazyframe__z$DaskLazyFrame.__narwhals_lazyframe___   s   € Øˆr?   c                ó<   — | j                  | j                  |¬«      S rG   )Ú	__class__Únative)r:   r<   s     r=   Ú_with_versionzDaskLazyFrame._with_versionb   s   € Ø�~‰~˜dŸk™k°7ˆ~Ó;Ð;r?   c                ó<   — | j                  || j                  ¬«      S rG   )rb   r6   )r:   Údfs     r=   Ú_with_nativezDaskLazyFrame._with_nativee   s   € Ø�~‰~˜b¨$¯-©-ˆ~Ó8Ð8r?   c                ó0   — t        || j                  ¬«      S )N)Ú	available)r   Úcolumns)r:   Úsubsets     r=   Ú_check_columns_existz"DaskLazyFrame._check_columns_existh   s   € Ü" 6°T·\±\ÔBÐBr?   c              #  óX   K  — | j                   j                  «       D ]	  \  }}|–— Œ y ­wr4   )rc   Úitems)r:   Ú_colÚsers      r=   Ú_iter_columnszDaskLazyFrame._iter_columnsk   s+   è ø€ ØŸ™×*Ñ*Ó,ò 	‰IˆD�#Ø‹Iñ	ùs   ‚(*c                ód   — |j                  | «      }t        |«      dk7  rd}t        |«      ‚|d   S )Né   z4multi-output expressions not allowed in this contextr   )Ú_callÚlenr   )r:   rD   ÚresultsrY   s       r=   Ú_evaluate_single_output_exprz*DaskLazyFrame._evaluate_single_output_expro   s5   € Ø—)‘)˜D“/ˆÜˆw‹<˜1ÒØHˆCÜ,¨SÓ1Ð1Ø�q‰zÐr?   c           	     ó‚   — t        | g|¢­Ž }| j                   | j                  j                  di t	        |«      ¤Ž«      S )Nr_   )r   rg   rc   ÚassignÚdict)r:   ÚexprsÚ
new_seriess      r=   Úwith_columnszDaskLazyFrame.with_columnsv   s<   € Ü# DÐ1¨5Ò1ˆ
Ø× Ñ Ð!3 §¡×!3Ñ!3Ñ!G´d¸:Ó6FÑ!GÓHÐHr?   c                óî  —  | j                   j                  d
i |¤Ž}|�|t        j                  u r+ddlm}  ||t        j                  d| j                  d¬«      S |t        j                  u r.dd l}ddl	m
}  ||j                  |«      d| j                  ¬«      S |t        j                  u r9dd l}ddlm}  ||j                   j                  |«      d| j                  d¬«      S d	|› �}	t#        |	«      ‚)Nr   )ÚPandasLikeDataFrameT)Úimplementationr2   r<   Úvalidate_column_names)ÚPolarsDataFrame)r2   r<   )ÚArrowDataFrame)r2   r<   r�   zUnsupported `backend` value: r_   )rc   Úcomputer   ÚPANDASÚnarwhals._pandas_like.dataframer   r6   ÚPOLARSÚpolarsÚnarwhals._polars.dataframer‚   Úfrom_pandasÚPYARROWÚpyarrowÚnarwhals._arrow.dataframerƒ   ÚTableÚ
ValueError)
r:   ÚbackendÚkwargsÚresultr   Úplr‚   Úparƒ   rY   s
             r=   ÚcollectzDaskLazyFrame.collectz   së   € ð %�—‘×$Ñ$Ñ. vÑ.ˆàˆ?˜g¬×)>Ñ)>Ñ>ÝKá&ØÜ-×4Ñ4Ø)-ØŸ™Ø&*ôð ð ”n×+Ñ+Ñ+ÛåBá"Ø—‘˜vÓ&Ø)-ØŸ™ôð ð ”n×,Ñ,Ñ,Û å@á!Ø—‘×$Ñ$ VÓ,Ø)-ØŸ™Ø&*ô	ð ð .¨g¨YÐ7ˆÜ˜‹oÐr?   c                óÆ   — | j                   €J| j                  �t        | j                  «      n#| j                  j
                  j                  «       | _         | j                   S r4   )r8   r7   ÚlistÚschemarc   rj   ÚtolistrQ   s    r=   rj   zDaskLazyFrame.columns¤   sV   € à×ÑÐ'ð ×&Ñ&Ð2ô �T—[‘[Ô!à—[‘[×(Ñ(×/Ñ/Ó1ð Ô ð
 ×#Ñ#Ð#r?   c                óh   —  || «      d   }| j                  | j                  j                  |   «      S )Nr   )rg   rc   Úloc)r:   Ú	predicateÚmasks      r=   ÚfilterzDaskLazyFrame.filter®   s.   € á˜‹˜qÑ!ˆØ× Ñ  §¡§¡°Ñ!6Ó7Ð7r?   c                ó|   — | j                   }t        |t        |«      | j                  «      }| j	                  |«      S r4   )rc   r	   r—   rT   rg   )r:   Úcolumn_namesrf   rc   s       r=   Úsimple_selectzDaskLazyFrame.simple_select³   s5   € ØŸ™ˆÜ'¨¬D°Ó,>À×@TÑ@TÓUˆØ× Ñ  Ó(Ð(r?   c           	     óº   — t        | g|¢­Ž }t        j                  |D ��cg c]  \  }}|j                  |«      ‘Œ c}}d¬«      }| j	                  |«      S c c}}w )Nrs   ©Úaxis)r   rB   ÚconcatÚrenamerg   )r:   r{   r|   ÚnameÚvalrf   s         r=   Ú	aggregatezDaskLazyFrame.aggregate¸   sP   € Ü# DÐ1¨5Ò1ˆ
Ü�Y‰Y¸*×E©Y¨T°3˜Ÿ
™
 4Õ(ÓEÈAÔNˆØ× Ñ  Ó$Ð$ùó Fs   ¡A
c           	     óà   — t        | g|¢­Ž }| j                  }t         |j                  di t	        |«      ¤Ž|D �cg c]  }|d   ‘Œ	 c}| j
                  «      }| j                  |«      S c c}w )Nr   r_   )r   rc   r	   ry   rz   rT   rg   )r:   r{   r|   rf   Úss        r=   ÚselectzDaskLazyFrame.select½   sm   € Ü# DÐ1¨5Ò1ˆ
ØŸ™ˆÜ#ØˆB�I‰IÑ)œ˜ZÓ(Ñ)Ø%Ö&�aˆQˆq‹TÒ&Ø× Ñ ó
ˆð
 × Ñ  Ó$Ð$ùò 's   ¼A+
c                óø   — |€)| j                  | j                  j                  «       «      S | j                  «       }|j	                   |j
                  |Ž j                  «       d¬«       }| j                  |«      S )NT)Úignore_nulls)rg   rc   Údropnar]   Úany_horizontalÚcolÚis_nullrž   )r:   rk   Úplxr�   s       r=   Ú
drop_nullszDaskLazyFrame.drop_nullsÇ   sn   € Øˆ>Ø×$Ñ$ T§[¡[×%7Ñ%7Ó%9Ó:Ð:Ø×)Ñ)Ó+ˆØ×"Ñ" 7 3§7¡7¨FÐ#3×#;Ñ#;Ó#=ÈDÐ"ÓQÐQˆØ�{‰{˜4Ó Ð r?   c           	     ó   — | j                   €b| j                  j                  }| j                  j                  D �ci c]'  }|t	        ||   | j
                  | j                  «      “Œ) c}| _         | j                   S c c}w r4   )r7   rc   Údtypesrj   r   r6   rT   )r:   Únative_dtypesr±   s      r=   r˜   zDaskLazyFrame.schemaÎ   s|   € à×ÑÐ&Ø ŸK™K×.Ñ.ˆMð
  Ÿ;™;×.Ñ.ö	#ð ð Ô-Ø! #Ñ&¨¯©°t×7KÑ7Kóñ ò#ˆDÔð ×"Ñ"Ð"ùò#s   »,A;c                ó   — | j                   S r4   )r˜   rQ   s    r=   Úcollect_schemazDaskLazyFrame.collect_schemaÚ   s   € Ø�{‰{Ðr?   c               ót   — t        | ||¬«      }| j                  | j                  j                  |¬«      «      S )N©Ústrict©rj   )r   rg   rc   Údrop)r:   rj   r¼   Úto_drops       r=   r¾   zDaskLazyFrame.dropÝ   s3   € Ü'¨¨g¸fÔEˆà× Ñ  §¡×!1Ñ!1¸'Ð!1Ó!BÓCÐCr?   c                óì  — |€%| j                  t        | j                  |«      «      S | j                  «       }| j                  }|j                  dd ¬«      j                  |«      j                  «       }|j                  |«      j                  d¬«      j                  g |¬«      |j                  dd ¬«      j                  «       z
  }| j                  |«      j                  | |j                  |Ž «      S )Nrs   ©ÚdtypeF)Úreverse)Úpartition_byÚorder_by)rg   r   rc   r]   rj   ÚlitÚaliasÚ	broadcastr±   Úcum_sumÚoverr}   r¬   )r:   r§   rÅ   r³   rj   Ú
const_exprÚrow_index_exprs          r=   Úwith_row_indexzDaskLazyFrame.with_row_indexâ   sÛ   € ð ÐØ×$Ñ$¤]°4·;±;ÀÓ%EÓFÐFØ×)Ñ)Ó+ˆØ—,‘,ˆØ—W‘W˜Q d�WÓ+×1Ñ1°$Ó7×AÑAÓCˆ
à�G‰G�D‹M×!Ñ!¨%Ð!Ó0×5Ñ5À2ÐPXÐ5ÓYØ�g‰g�a˜tˆgÓ$×.Ñ.Ó0ñ1ð 	ð × Ñ  Ó,×3Ñ3°NÀGÀCÇGÁGÈWÐDUÓVÐVr?   c                óX   — | j                  | j                  j                  |¬«      «      S )Nr½   )rg   rc   r¦   )r:   Úmappings     r=   r¦   zDaskLazyFrame.renameð   s%   € Ø× Ñ  §¡×!3Ñ!3¸GÐ!3Ó!DÓEÐEr?   c                ó\   — | j                  | j                  j                  |dd¬«      «      S )NFéÿÿÿÿ©Únr„   Únpartitions)rg   rc   Úhead)r:   rÓ   s     r=   rÕ   zDaskLazyFrame.headó   s*   € Ø× Ñ  §¡×!1Ñ!1°A¸uÐRTÐ!1Ó!UÓVÐVr?   c               ó<  — |r| j                  |«      x}r|‚|dk(  r�|xs | j                  }t        d|d¬«      }| j                  j	                  |«      j                  «       j                  |«      }||dk(     }|j                  «       j                  |¬«      }| j                  j                  ||d¬«      }nSd	d
ij                  ||«      }	|r | j                  |dddœŽj                  }
n| j                  }
|
j                  ||	¬«      }| j                  |«      S )NÚnoneé   Úcount_©Ún_bytesrj   Úprefixrs   r½   Úinner)ÚonÚhowÚanyÚfirstF)Ú
descendingÚ
nulls_last)rk   Úkeep)rl   rj   r   rc   ÚgroupbyÚsizer¦   Úreset_indexr¾   ÚmergeÚgetÚsortÚdrop_duplicatesrg   )r:   rk   rä   rÅ   ÚerrorÚtokenrp   Úuniquer’   Úmapped_keeprc   s              r=   rî   zDaskLazyFrame.uniqueö   s  € ñ  × 9Ñ 9¸&Ó AÐA�uÐAØˆKØ�6Š>ØÒ+˜tŸ|™|ˆFÜ2Ø 6°(ôˆEð —+‘+×%Ñ% fÓ-×2Ñ2Ó4×;Ñ;¸EÓBˆCØ�c˜Q‘h‘-ˆCØ—_‘_Ó&×+Ñ+°EÐ+Ó:ˆFØ—[‘[×&Ñ& v°&¸gÐ&ÓF‰Fà  'Ð*×.Ñ.¨t°TÓ:ˆKÙØ"˜Ÿ™ H¸È5ÒQ×XÑX‘àŸ™�Ø×+Ñ+°6ÀÐ+ÓLˆFØ× Ñ  Ó(Ð(r?   c               óÌ   — t        |t        «      r| }n|D �cg c]  }| ‘Œ }}|rdnd}| j                  | j                  j	                  t        |«      ||¬«      «      S c c}w )NÚlastrá   )Ú	ascendingÚna_position)rA   Úboolrg   rc   Úsort_valuesr—   )r:   râ   rã   Úbyrò   ÚdÚpositions          r=   rê   zDaskLazyFrame.sort  sf   € Ü�j¤$Ô'Ø/9¨>‰Ià(2Ö3 1˜QšÐ3ˆIÐ3Ù'‘6¨WˆØ× Ñ Ø�K‰K×#Ñ#¤D¨£H¸	ÈxÐ#ÓXó
ð 	
ùò 4s   ™
A!c               óÒ  ‡— | j                   }| j                  Št        |«      }t        |t        «      rXt        ˆfd„|D «       «      rD|r!| j                  |j                  ||«      «      S | j                  |j                  ||«      «      S t        |t        «      r|gt        |«      z  }| j                  |j                  |t        |«      ¬«      j                  |dd¬«      «      S )Nc              3  óD   •K  — | ]  }‰|   j                  «       –— Œ y ­wr4   )Ú
is_numeric)Ú.0Úxr˜   s     €r=   ú	<genexpr>z&DaskLazyFrame.top_k.<locals>.<genexpr>  s   øè ø€ Ò,PÈ¨V°A©Y×-AÑ-A×-CÑ,Pùs   ƒ )rò   FrÑ   rÒ   )rc   r˜   r—   rA   rô   Úallrg   Ú	nsmallestÚnlargestru   rõ   rÕ   )r:   Úkrö   rÃ   rf   r˜   s        @r=   Útop_kzDaskLazyFrame.top_k  sÈ   ø€ Ø�[‰[ˆØ—‘ˆÜ�"‹XˆÜ�gœtÔ$¬Ó,PÈRÔ,PÔ)PÙØ×(Ñ(¨¯©°a¸Ó)<Ó=Ð=Ø×$Ñ$ R§[¡[°°BÓ%7Ó8Ð8Ü�gœtÔ$Ø�i¤# b£'Ñ)ˆGØ× Ñ Ø�N‰N˜2¬¨g«ˆNÓ7×<Ñ<Ø˜U°ð =ó ó
ð 	
r?   c               ó|   — | j                   j                  |d¬«      j                  |j                   ||dd|f¬«      S )Nrà   ©rk   rß   rÝ   Ú ©Úleft_onÚright_onrß   Úsuffixes)rc   r¯   rè   )r:   Úotherr  r	  Úsuffixs        r=   Ú_join_innerzDaskLazyFrame._join_inner+  sH   € ð �{‰{×!Ñ!¨°eÐ!Ó<×BÑBØ�L‰LØØØØ˜&�\ð Có 
ð 	
r?   c               ó  — | j                   j                  |j                   j                  |d¬«      d||d|f¬«      }t        ||«      D ��cg c]   \  }}||k7  r|| j                  vr|n|› |› �‘Œ" }}}|j                  |¬«      S c c}}w )Nrà   r  Úleftr  ©rß   r  r	  r
  r½   )rc   rè   r¯   r   rj   r¾   )	r:   r  r  r	  r  Úresult_nativeÚleft_keyÚ	right_keyÚextras	            r=   Ú
_join_leftzDaskLazyFrame._join_left6  sª   € ð Ÿ™×)Ñ)Ø�L‰L×Ñ x°UÐÓ;ØØØØ˜&�\ð *ó 
ˆô (2°'¸8Ó'D÷
á#�˜)Ø˜HÒ$ð #¨$¯,©,Ñ6‰I¸y¸kÈ&ÈÐ<RÑRð
ˆñ 
ð
 ×!Ñ!¨%Ð!Ó0Ð0ùó
s   Á%Bc               ó¶  — | j                   }t        |||«      }|j                   j                  |¬«      }t        |j                  «       t        |j                  «       «      }|t        |«         j                  «       j                  d¬«      }	||   j                  «       j                  d¬«      }
t        |j                  «      j                  | j                  «      j                  |«      }||
   j                  |D �ci c]	  }||› |› �“Œ c}¬«      }||	    j                  ||
    ||dd|f¬«      }t        j                  |||	   |gdd¬«      S c c}w )	Nr½   rs   r£   Úouterr  r  r   )r¤   Újoin)rc   r   r¦   r   rj   r—   ÚvaluesÚisnarà   ÚsetÚintersectionÚ
differencerè   rB   r¥   )r:   r  r  r	  r  Úself_nativeÚright_on_mapperÚother_nativeÚright_suffixedÚleft_null_maskÚright_null_maskÚ	to_renamer±   Úright_null_rowsÚjoin_results                  r=   Ú
_join_fullzDaskLazyFrame._join_fullG  s`  € ð
 —k‘kˆÜ/°¸À6ÓJˆØ—|‘|×*Ñ*°?Ð*ÓCˆÜ% l×&:Ñ&:Ô;Ü˜o×4Ñ4Ó6Ó7ˆà$¤T¨'£]Ñ3×8Ñ8Ó:×>Ñ>ÀAÐ>ÓFˆØ& ~Ñ6×;Ñ;Ó=×AÑAÀqÐAÓIˆô ˜Ÿ™Ó&×3Ñ3°D·L±LÓA×LÑLÈXÓVˆ	Ø& Ñ7×>Ñ>Ø6?Ö@¨s�S˜S˜E & Ð*Ñ*Ò@ð ?ó 
ˆð " > /Ñ2×8Ñ8Ø˜/Ð)Ñ*ØØ#ØØ˜&�\ð 9ó 
ˆô �y‰yØ˜+ nÑ5°ÐGØØô
ð 	
ùò As   ÄEc               ó  — t        dg | j                  ¢|j                  ¢­d¬«      } | j                  j                  d	i |di¤Žj	                   |j                  j                  d	i |di¤Žd||d|f¬«      j                  |¬«      S )
NrØ   Úcross_join_key_rÚ   r   rÝ   r  r  r½   r_   )r   rj   rc   ry   rè   r¾   )r:   r  r  Ú	key_tokens       r=   Ú_join_crosszDaskLazyFrame._join_crossh  s‘   € Ü2ØÐ> §¡Ð>°·±Ñ>ÐGXô
ˆ	ð ˆD�K‰K×ÑÑ0 )¨Q Ñ0ß‰UØ#�—‘×#Ñ#Ñ5 y°! nÑ5ØØ!Ø"Ø˜f˜ð ó ÷ ‰T˜)ˆTÓ$ð
	
r?   c          
     óÂ   — | j                  |t        |«      t        t        ||«      «      ¬«      }| j                  j                  |d¬«      j                  |d||¬«      S )N©r  Úcolumns_to_selectÚcolumns_mappingrà   r  rÝ   )rß   r  r	  )Ú_join_filter_renamer—   rz   Úziprc   r¯   rè   )r:   r  r  r	  r   s        r=   Ú
_join_semizDaskLazyFrame._join_semix  sj   € ð ×/Ñ/ØÜ" 8›nÜ ¤ X¨wÓ!7Ó8ð 0ó 
ˆð
 �{‰{×!Ñ!¨°eÐ!Ó<×BÑBØ˜g¨wÀð Có 
ð 	
r?   c          
     óJ  — t        dg | j                  ¢|j                  ¢­d¬«      }| j                  |t        |«      t	        t        ||«      «      ¬«      }| j                  j                  |j                  |d¬«      d|||¬«      }|||   d	k(     j                  |g¬
«      S )NrØ   Újoin_indicator_rÚ   r-  rà   r  r  )rß   Ú	indicatorr  r	  Ú	left_onlyr½   )
r   rj   r0  r—   rz   r1  rc   rè   r¯   r¾   )r:   r  r  r	  Úindicator_tokenr   rf   s          r=   Ú
_join_antizDaskLazyFrame._join_anti„  s»   € ô 9ØÐ> §¡Ð>°·±Ñ>ÐGXô
ˆð ×/Ñ/ØÜ" 8›nÜ ¤ X¨wÓ!7Ó8ð 0ó 
ˆð
 �[‰[×ÑØ×Ñ w°EÐÓ:ØØ%ØØð ó 
ˆð �"�_Ñ%¨Ñ4Ñ5×:Ñ:ÀOÐCTÐ:ÓUÐUr?   c                ó„   — |j                   }t        ||| j                  «      j                  |¬«      j	                  «       S )z®Helper function to avoid creating extra columns and row duplication.

        Used in `"anti"` and `"semi`" join's.

        Notice that a native object is returned.
        r½   )rc   r	   rT   r¦   rë   )r:   r  r.  r/  r   s        r=   r0  z!DaskLazyFrame._join_filter_rename˜  s;   € ð $)§<¡<ˆô # <Ð1BÀD×DXÑDXÓYß‰V˜OˆVÓ,ß‰_Óð	
r?   c               ó–  — |dk(  r| j                  ||¬«      }n |�|€t        ||«      ‚|dk(  r| j                  ||||¬«      }nu|dk(  r| j                  |||¬«      }n[|dk(  r| j	                  |||¬«      }nA|dk(  r| j                  ||||¬«      }n&|d	k(  r| j                  ||||¬«      }nt        |«       | j                  «      S )
NÚcross)r  r  rÝ   )r  r  r	  r  Úanti)r  r  r	  Úsemir  Úfull)	r+  r�   r  r8  r2  r  r'  r
   rg   )r:   r  rß   r  r	  r  r’   s          r=   r  zDaskLazyFrame.join©  s÷   € ð �'Š>Ø×%Ñ%¨E¸&Ð%ÓA‰Fàˆ_ Ð 0Ü˜W hÓ/Ð/à�GŠ^Ø×%Ñ%Ø W°xÈð &ó ‰Fð �FŠ]Ø—_‘_¨5¸'ÈH�_ÓU‰FØ�FŠ]Ø—_‘_¨5¸'ÈH�_ÓU‰FØ�FŠ]Ø—_‘_Ø W°xÈð %ó ‰Fð �FŠ]Ø—_‘_Ø W°xÈð %ó ‰Fô ˜ÔØ× Ñ  Ó(Ð(r?   c               óž   — | j                  «       }| j                  |j                  | j                  |j                  |||||d|f¬«      «      S )Nr  )r  r	  Úleft_byÚright_byÚ	directionr
  )rZ   rg   Ú
merge_asofrc   )	r:   r  r  r	  Úby_leftÚby_rightÚstrategyr  r³   s	            r=   Ú	join_asofzDaskLazyFrame.join_asofÌ  sZ   € ð ×'Ñ'Ó)ˆØ× Ñ Ø�N‰NØ—‘Ø—‘ØØ!ØØ!Ø"Ø˜f˜ð ó 	ó
ð 	
r?   c               ó$   — ddl m}  || ||¬«      S )Nr   r"   )Údrop_null_keys)Únarwhals._dask.group_byr#   )r:   ÚkeysrI  r#   s       r=   Úgroup_byzDaskLazyFrame.group_byå  s   € õ 	<á˜t T¸.ÔIÐIr?   c                ó®   — | j                   }|j                  }|dk(  r,| j                  | j                   j                  |d¬«      «      S d}t	        |«      ‚)Nrs   F)rÓ   r„   zL`LazyFrame.tail` is not supported for Dask backend with multiple partitions.)rc   rÔ   rg   ÚtailÚNotImplementedError)r:   rÓ   Únative_frameÚn_partitionsrY   s        r=   rN  zDaskLazyFrame.tailì  sX   € Ø—{‘{ˆØ#×/Ñ/ˆà˜1ÒØ×$Ñ$ T§[¡[×%5Ñ%5¸À5Ð%5Ó%IÓJÐJàZð 	ô " #Ó&Ð&r?   c                óÚ  — t        d| j                  d¬«      }| j                  «       }|j                  |d ¬«      j	                  «       }|j                  |d ¬«      j	                  «       }|j                  dd ¬«      j	                  «       }| j                  |d ¬«      j                  |j                  |«      |k\  |j                  |«      |z
  |z  |k(  z  «      j                  |gd¬«      S )	NrØ   Ú
row_index_rÚ   rÁ   r   )rÅ   Fr»   )	r   rj   r]   rÆ   rÈ   rÍ   rž   r±   r¾   )r:   rÓ   ÚoffsetÚrow_index_tokenr³   Úoffset_exprÚn_exprÚ	zero_exprs           r=   Úgather_everyzDaskLazyFrame.gather_every÷  sß   € Ü8Ø˜tŸ|™|°Lô
ˆð ×)Ñ)Ó+ˆØ—g‘g˜f¨D�gÓ1×;Ñ;Ó=ˆØ—‘˜ $�Ó'×1Ñ1Ó3ˆØ—G‘G˜A T�GÓ*×4Ñ4Ó6ˆ	à×Ñ ¸$ÐÓ?ß‰VØ—‘˜Ó)¨[Ñ8Ø—G‘G˜OÓ,¨{Ñ:¸fÑDÈ	ÑQñSó÷ ‰T�?Ð#¨EˆTÓ2ð	
r?   c                ó^   — | j                  | j                  j                  ||||¬«      «      S )N)Úid_varsÚ
value_varsÚvar_nameÚ
value_name)rg   rc   Úmelt)r:   rÞ   ÚindexÚvariable_namer^  s        r=   ÚunpivotzDaskLazyFrame.unpivot  s:   € ð × Ñ Ø�K‰K×ÑØØØ&Ø%ð	 ó ó
ð 	
r?   c                ó:   — | j                   j                  |«       y r4   )rc   Ú
to_parquet)r:   Úfiles     r=   Úsink_parquetzDaskLazyFrame.sink_parquet  s   € Ø�‰×Ñ˜tÕ$r?   N)r;   údd.DataFramer<   r'   r2   rô   ÚreturnÚNone)rD   zdd.DataFrame | Anyrh  zTypeIs[dd.DataFrame])rJ   rg  rK   r(   rh  r   )rh  úLazyFrame[dd.DataFrame])rh  r   )rh  r%   )rh  r   )r<   r'   rh  r   )rf   r   rh  r   )rk   úSequence[str]rh  zColumnNotFoundError | None)rh  zIterator[dx.Series])rD   r!   rh  z	dx.Series)r{   r!   rh  r   )r�   z_EagerAllowedImpl | Noner‘   r   rh  r    )rh  ú	list[str])rœ   r!   rh  r   )r    Ústrrh  r   )rk   úSequence[str] | Nonerh  r   )rh  zdict[str, DType])rj   rk  r¼   rô   rh  r   )r§   rm  rÅ   rn  rh  r   )rÏ   zMapping[str, str]rh  r   )rÓ   Úintrh  r   )rk   rn  rä   r.   rÅ   rn  rh  r   )rö   rm  râ   úbool | Sequence[bool]rã   rô   rh  r   )r  ro  rö   zIterable[str]rÃ   rp  rh  r   )
r  r   r  rk  r	  rk  r  rm  rh  rg  )r  r   r  rm  rh  rg  )r  r   r  rk  r	  rk  rh  rg  )r  r   r.  rl  r/  zdict[str, str]rh  rg  )r  r   rß   r-   r  rn  r	  rn  r  rm  rh  r   )r  r   r  rm  r	  rm  rD  rn  rE  rn  rF  r,   r  rm  rh  r   )rK  z"Sequence[str] | Sequence[DaskExpr]rI  rô   rh  r#   )rÓ   ro  rT  ro  rh  r   )
rÞ   rn  r`  rn  ra  rm  r^  rm  rh  r   )re  zstr | Path | BytesIOrh  ri  )6Ú__name__Ú
__module__Ú__qualname__r   rU   rT   r>   ÚstaticmethodrE   ÚclassmethodrL   rR   rZ   r]   r`   rd   rg   rl   rq   rw   r}   r•   Úpropertyrj   rž   r¡   r©   r¬   r´   r˜   r¹   r¾   rÍ   r¦   rÕ   rî   rê   r  r  r  r'  r+  r2  r8  r0  r  rG  rL  rN  rY  rb  rf  r   Úexploder_   r?   r=   r1   r1   4   sO  „ ð %×)Ñ)€Oð */ñ-à&ð-ð ð	-ð
 #'ð-ð 
ó-ð ò-ó ð-ð ò3ó ð3ó;ó"ó4ó
ó<ó9óCóóóIð(Ø/ð(Ø;>ð(à	ó(ðT ò$ó ð$ó8ó
)ó
%ó
%ó!ð ò	#ó ð	#óóDó
WóFóWð)à$ð)ð !ð	)ð
 'ð)ð 
ó)ó6
ó
ð 	
Øð	
Ø'4ð	
Ø@Mð	
ØWZð	
à	ó	
ð1Øð1Ø'4ð1Ø@Mð1ØWZð1à	ó1ð"
Øð
Ø'4ð
Ø@Mð
ØWZð
à	ó
óB
ð 

Øð

Ø'4ð

Ø@Mð

à	ó

ðVØðVØ'4ðVØ@MðVà	óVð(
Øð
Ø.7ð
ØJXð
à	ó
ð"!)àð!)ð ð	!)ð
 &ð!)ð 'ð!)ð ð!)ð 
ó!)ðF
àð
ð ð	
ð
 ð
ð &ð
ð 'ð
ð #ð
ð ð
ð 
ó
ð2JØ6ðJØKOðJà	óJó	'ó
ð"
à ð
ð $ð
ð ð	
ð
 ð
ð 
ó
ó %ñ Ó�Gr?   r1   )r!   rg  rj  )GÚ
__future__r   Útypingr   r   Údask.dataframeÚ	dataframerB   Únarwhals._dask.utilsr   r   Únarwhals._pandas_like.utilsr   r	   Únarwhals._typing_compatr
   Únarwhals._utilsr   r   r   r   r   r   r   r   r   Únarwhals.exceptionsr   Únarwhals.typingr   Úcollections.abcr   r   r   r   Úior   Úpathlibr   Útypesr   Údask.dataframe.dask_exprÚ	dask_exprÚdxÚtyping_extensionsr   r   r   Únarwhals._compliant.typingr    Únarwhals._dask.exprr!   rJ  r#   r\   r%   Únarwhals._typingr&   r'   r(   Únarwhals.dataframer)   Únarwhals.dtypesr*   r+   r,   r-   r.   r/   Ú__annotations__r1   r_   r?   r=   ú<module>r�     s”   ðÞ "ç %å ç >ß XÝ 0÷
÷ 
õ 
õ ;Ý .áßEÓEÝÝÝ ç)Ð)ß9Ñ9å@Ý,Ý7Ý6Ý2ß8Ý,Ý%Ý7ßRÑRà€
ˆIÓ ðôg ØÐLÑMØõg r?   