Ë
    ÚÍ:jgD  ã                  ód  — U d dl mZ d dlmZmZ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 d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZm Z 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.m/Z/m0Z0m1Z1 d d	l2m3Z3 e
r�d d
l4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl	m:Z: d dl;Z<d dl=Z>d dl?Z@d dlAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZI d dlmJZJ d dlKmLZLmMZM d dl%mNZNmOZO d dlPmQZQ d dlRmSZS d dl2mTZT d dlUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZc eZddeed<   dZfdeed<   g d¢Zg ed «      Zhd!Zideed"<    ed#«      Zj G d$„ d%e(ej   eej   e!e"   eeeje"f   «      Zk G d&„ d'e d(   ed)eelef   f   ed*   eekeee"f   eeeee"f   «      Zm G d+„ d,ekeee"f   eeee"f   «      Zn G d-„ d.emeeed/f   enedd/f   e&eeeeef   «      Zoy)0é    )Úannotations)ÚIteratorÚMappingÚSequenceÚSized)Úchain)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚProtocolÚTypeVarÚoverload)
ÚCompliantDataFrameAnyÚCompliantExprT_contraÚCompliantLazyFrameAnyÚCompliantNamespaceAnyÚCompliantSeriesTÚ
EagerExprTÚEagerSeriesTÚNativeDataFrameTÚNativeLazyFrameTÚNativeSeriesT)ÚArrowConvertibleÚDictConvertibleÚ
FromNativeÚNumpyConvertibleÚ
ToNarwhalsÚToNarwhalsT_co)Úassert_never)ÚValidateBackendVersionÚVersionÚ_StoresNativeÚcheck_columns_existÚis_boolean_selectorÚis_compliant_seriesÚis_index_selectorÚis_rangeÚis_sequence_likeÚis_sized_multi_index_selectorÚis_slice_indexÚis_slice_none)ÚMultiOutputExpressionError)ÚBytesIO)ÚPath)Ú
ModuleType)Ú	TypeAliasN)ÚSelf)ÚCompliantGroupByÚDataFrameGroupBy)ÚEagerNamespace)ÚSparkSession)ÚIntoArrowTable)Ú_EagerAllowedImplÚ_LazyAllowedImpl)ÚImplementationÚ_LimitedContext)Ú	DataFrame)ÚDType)ÚColumnNotFoundError)ÚAsofJoinStrategyÚ
IntoSchemaÚJoinStrategyÚMultiColSelectorÚMultiIndexSelectorÚPivotAggÚSingleIndexSelectorÚSizedMultiIndexSelectorÚSizedMultiNameSelectorÚSizeUnitÚUniqueKeepStrategyÚ_2DArrayÚ_SliceIndexÚ
_SliceNamer1   Ú
IncompleteFr   ÚMYPY)ÚCompliantDataFrameÚCompliantFrameÚCompliantLazyFrameÚEagerDataFrameÚTú2dict[str, CompliantSeriesT] | dict[str, list[Any]]Ú_ToDictÚ_NativeFrameTc                  ó˜  — e Zd ZU dZded<   ded<   ded<   d"d„Zd#d	„Zd$d
„Zd%d„Ze	d&d„«       Z
ed'd„«       Zed(d„«       Zed)d„«       Zd)d„Zd*d„Zd+d„Zd,d„Zd-d„Z	 	 	 	 	 	 d.d„Zd/d„Z	 	 	 	 	 	 	 	 	 	 	 	 d0d„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d1d„Zd2d„Zd3d„Zd4d„Z	 	 	 	 	 	 	 	 d5d„Z	 	 	 	 	 	 	 	 d6d„Z	 	 	 	 	 	 	 	 	 	 d7d„Zd3d„Zd8d „Zy!)9rP   z)Common parts of `DataFrame`, `LazyFrame`.rV   Ú_native_framer:   Ú_implementationr"   Ú_versionc                 ó   — y ©N© ©Úselfs    úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/narwhals/_compliant/dataframe.pyÚ__native_namespace__z#CompliantFrame.__native_namespace__j   ó   � ó    c                 ó   — y r\   r]   r^   s    r`   Ú__narwhals_namespace__z%CompliantFrame.__narwhals_namespace__k   rb   rc   c                 ó   — y r\   r]   )r_   Údfs     r`   Ú_with_nativezCompliantFrame._with_nativel   rb   rc   c                 ó   — y r\   r]   )r_   Úversions     r`   Ú_with_versionzCompliantFrame._with_versionm   rb   rc   c               ó   — y r\   r]   ©ÚclsÚdataÚcontexts      r`   Úfrom_nativezCompliantFrame.from_nativen   ó   € ØWZrc   c                 ó   — y r\   r]   r^   s    r`   ÚcolumnszCompliantFrame.columnsp   ó   € Ø(+rc   c                ó   — | j                   S r\   )rX   r^   s    r`   ÚnativezCompliantFrame.nativer   s   € à×!Ñ!Ð!rc   c                 ó   — y r\   r]   r^   s    r`   ÚschemazCompliantFrame.schemav   s   € Ø-0rc   c                 ó   — y r\   r]   r^   s    r`   Úcollect_schemazCompliantFrame.collect_schemay   rb   rc   c                ó   — y r\   r]   )r_   rt   Ústricts      r`   ÚdropzCompliantFrame.dropz   rb   rc   c                 ó   — y r\   r]   ©r_   Úsubsets     r`   Ú
drop_nullszCompliantFrame.drop_nulls{   rb   rc   c                 ó   — y r\   r]   ©r_   rt   s     r`   ÚexplodezCompliantFrame.explode|   rb   rc   c                 ó   — y r\   r]   )r_   Ú	predicates     r`   ÚfilterzCompliantFrame.filter}   rb   rc   c                ó   — y r\   r]   ©r_   ÚkeysÚdrop_null_keyss      r`   Úgroup_byzCompliantFrame.group_by~   s   € ð
 9<rc   c                 ó   — y r\   r]   )r_   Úns     r`   ÚheadzCompliantFrame.head„   rb   rc   c                ó   — y r\   r]   )r_   ÚotherÚhowÚleft_onÚright_onÚsuffixs         r`   ÚjoinzCompliantFrame.join…   ó   € ð rc   c                ó   — y r\   r]   )r_   r’   r”   r•   Úby_leftÚby_rightÚstrategyr–   s           r`   Ú	join_asofzCompliantFrame.join_asofŽ   s   € ð rc   c                 ó   — y r\   r]   )r_   Úmappings     r`   ÚrenamezCompliantFrame.rename™   rb   rc   c                 ó   — y r\   r]   ©r_   Úexprss     r`   ÚselectzCompliantFrame.selectš   rb   rc   c                 ó   — y)z)`select` where all args are column names.Nr]   )r_   Úcolumn_namess     r`   Úsimple_selectzCompliantFrame.simple_select›   ó   € àrc   c                ó   — y r\   r]   )r_   Ú
descendingÚ
nulls_lastÚbys       r`   ÚsortzCompliantFrame.sortŸ   ó   € àrc   c                ó   — y r\   r]   )r_   r�   ÚkeepÚorder_bys       r`   ÚuniquezCompliantFrame.unique¢   ó   € ð rc   c                 ó   — y r\   r]   )r_   ÚonÚindexÚvariable_nameÚ
value_names        r`   ÚunpivotzCompliantFrame.unpivot©   r³   rc   c                 ó   — y r\   r]   r¢   s     r`   Úwith_columnszCompliantFrame.with_columns°   rb   rc   c                 ó   — y r\   r]   ©r_   Únamer±   s      r`   Úwith_row_indexzCompliantFrame.with_row_index±   rb   rc   N)Úreturnr0   )rÀ   r
   )rg   rV   rÀ   r2   )rj   r"   rÀ   r2   )ro   rV   rp   r;   rÀ   r2   )rÀ   úSequence[str])rÀ   rV   )rÀ   zMapping[str, DType])rt   rÁ   r}   ÚboolrÀ   r2   )r�   úSequence[str] | NonerÀ   r2   )rt   rÁ   rÀ   r2   )r‡   z"CompliantExprT_contra | IncompleterÀ   r2   )r‹   ú/Sequence[str] | Sequence[CompliantExprT_contra]rŒ   rÂ   rÀ   z-CompliantGroupBy[Self, CompliantExprT_contra])r�   ÚintrÀ   r2   )r’   r2   r“   rA   r”   rÃ   r•   rÃ   r–   ÚstrrÀ   r2   )r’   r2   r”   rÆ   r•   rÆ   rš   rÃ   r›   rÃ   rœ   r?   r–   rÆ   rÀ   r2   )rŸ   zMapping[str, str]rÀ   r2   ©r£   r   rÀ   r2   )r¦   rÆ   rÀ   r2   )r¬   rÆ   rª   zbool | Sequence[bool]r«   rÂ   rÀ   r2   )r�   rÃ   r°   rI   r±   rÃ   rÀ   r2   )
rµ   rÃ   r¶   rÃ   r·   rÆ   r¸   rÆ   rÀ   r2   )r¾   rÆ   r±   rÁ   rÀ   r2   ) Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__ra   re   rh   rk   Úclassmethodrq   Úpropertyrt   rw   ry   r{   r~   r‚   r…   rˆ   r�   r�   r—   r�   r    r¤   r§   r­   r²   r¹   r»   r¿   r]   rc   r`   rP   rP   ^   sÅ  … ñ 4à Ó Ø#Ó#ØÓã5Û0Û:Û:ØÚZó ØZØÚ+ó Ø+Øò"ó ð"ð Ú0ó Ø0ã8ÛHÛCÛ:ÛPð<à=ð<ð ð	<ð
 
7ó<ó (ðàðð ð	ð
 &ðð 'ðð ðð 
óð
àð
ð ð	
ð
 ð
ð &ð
ð 'ð
ð #ð
ð ð
ð 
ó
ó >Û@óðØðØ$9ðØGKðà	óðà$ðð !ð	ð
 'ðð 
óðà ðð $ðð ð	ð
 ðð 
óó GÜMrc   rP   c                  ó*  — e Zd Zd%d„Zed&d„«       Ze	 	 	 	 	 	 	 	 d'd„«       Ze	 	 	 	 	 	 	 	 d(d„«       Ze	 	 	 	 	 	 	 	 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	 	 	 	 	 	 d0d„Z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ed>d„«       Z	 	 	 	 d?d„Zddœ	 	 	 	 	 	 	 	 	 d@d„Z dAd „Z!edBd!„«       Z"edCd"„«       Z"dDd#„Z"dCd$„Z#y)ErO   c                 ó   — y r\   r]   r^   s    r`   Ú__narwhals_dataframe__z)CompliantDataFrame.__narwhals_dataframe__¼   rb   rc   c               ó   — y r\   r]   rm   s      r`   Ú
from_arrowzCompliantDataFrame.from_arrow½   rr   rc   c               ó   — y r\   r]   ©rn   ro   rp   ry   s       r`   Ú	from_dictzCompliantDataFrame.from_dict¿   r˜   rc   c               ó   — y r\   r]   rÕ   s       r`   Ú
from_dictszCompliantDataFrame.from_dictsÈ   r˜   rc   c               ó   — y r\   r]   rÕ   s       r`   Ú
from_numpyzCompliantDataFrame.from_numpyÑ   r˜   rc   c                ó   — y r\   r]   )r_   ÚdtypeÚcopys      r`   Ú	__array__zCompliantDataFrame.__array__Ú   rb   rc   c                 ó   — y r\   r]   )r_   Úitems     r`   Ú__getitem__zCompliantDataFrame.__getitem__Û   r³   rc   c                 ó   — y r\   r]   r^   s    r`   ÚshapezCompliantDataFrame.shapeã   ru   rc   c                 ó   — y r\   r]   r^   s    r`   ÚclonezCompliantDataFrame.cloneå   rb   rc   c                 ó   — y r\   r]   )r_   Úunits     r`   Úestimated_sizez!CompliantDataFrame.estimated_sizeæ   rb   rc   c                 ó   — y r\   r]   )r_   r�   Úoffsets      r`   Úgather_everyzCompliantDataFrame.gather_everyç   rb   rc   c                 ó   — y r\   r]   )r_   r¾   s     r`   Ú
get_columnzCompliantDataFrame.get_columnè   rb   rc   c                ó   — y r\   r]   rŠ   s      r`   r�   zCompliantDataFrame.group_byé   s   € ð
 '*rc   c                 ó   — y r\   r]   )r_   ÚrowÚcolumns      r`   rà   zCompliantDataFrame.itemï   rb   rc   c                 ó   — y r\   r]   r^   s    r`   Úiter_columnszCompliantDataFrame.iter_columnsð   rb   rc   c                ó   — y r\   r]   )r_   ÚnamedÚbuffer_sizes      r`   Ú	iter_rowszCompliantDataFrame.iter_rowsñ   ó   € àBErc   c                 ó   — y r\   r]   r^   s    r`   Ú	is_uniquezCompliantDataFrame.is_uniqueô   rb   rc   c                ó   — y r\   r]   )r_   ÚbackendÚsessions      r`   ÚlazyzCompliantDataFrame.lazyõ   ó   € à #rc   c                ó   — y r\   r]   )r_   rµ   r¶   ÚvaluesÚaggregate_functionÚsort_columnsÚ	separators          r`   ÚpivotzCompliantDataFrame.pivotø   s   € ð rc   c                 ó   — y r\   r]   )r_   r¶   s     r`   rð   zCompliantDataFrame.row  rb   rc   c                ó   — y r\   r]   )r_   rõ   s     r`   ÚrowszCompliantDataFrame.rows  rø   rc   c                ó   — y r\   r]   )r_   r�   ÚfractionÚwith_replacementÚseeds        r`   ÚsamplezCompliantDataFrame.sample  ó   € ð rc   c                 ó   — y r\   r]   r^   s    r`   Úto_arrowzCompliantDataFrame.to_arrow  rb   rc   c                 ó   — y r\   r]   r^   s    r`   Ú	to_pandaszCompliantDataFrame.to_pandas  rb   rc   c                 ó   — y r\   r]   r^   s    r`   Ú	to_polarszCompliantDataFrame.to_polars  rb   rc   c                ó   — y r\   r]   ©r_   Ú	as_seriess     r`   Úto_dictzCompliantDataFrame.to_dict  s   € ØSVrc   c                ó   — y r\   r]   r  s     r`   r  zCompliantDataFrame.to_dict  s   € ØMPrc   c                ó   — y r\   r]   r  s     r`   r  zCompliantDataFrame.to_dict  s   € à=@rc   N)Úmaintain_orderc                ó   — y r\   r]   )r_   r�   r°   r  r±   s        r`   r²   zCompliantDataFrame.unique  r  rc   c                 ó   — y r\   r]   r½   s      r`   r¿   z!CompliantDataFrame.with_row_index   rb   rc   c                 ó   — y r\   r]   ©r_   Úfiles     r`   Ú	write_csvzCompliantDataFrame.write_csv!  s   € Ø,/rc   c                 ó   — y r\   r]   r  s     r`   r!  zCompliantDataFrame.write_csv#  s   € Ø=@rc   c                 ó   — y r\   r]   r  s     r`   r!  zCompliantDataFrame.write_csv%  rb   rc   c                 ó   — y r\   r]   r  s     r`   Úwrite_parquetz CompliantDataFrame.write_parquet&  rb   rc   ©rÀ   r2   )ro   r7   rp   r;   rÀ   r2   )ro   zMapping[str, Any]rp   r   ry   ú.IntoSchema | Mapping[str, DType | None] | NonerÀ   r2   )ro   zSequence[Mapping[str, Any]]rp   r;   ry   r'  rÀ   r2   )ro   rJ   rp   r;   ry   z!IntoSchema | Sequence[str] | NonerÀ   r2   )rÜ   r
   rÝ   úbool | NonerÀ   rJ   )rà   zetuple[SingleIndexSelector | MultiIndexSelector[CompliantSeriesT], MultiColSelector[CompliantSeriesT]]rÀ   r2   )rÀ   ztuple[int, int])rç   rH   rÀ   zint | float)r�   rÅ   rê   rÅ   rÀ   r2   )r¾   rÆ   rÀ   r   )r‹   rÄ   rŒ   rÂ   rÀ   zDataFrameGroupBy[Self, Any])rð   ú
int | Nonerñ   zint | str | NonerÀ   r
   )rÀ   zIterator[CompliantSeriesT])rõ   rÂ   rö   rÅ   rÀ   z7Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]])rÀ   r   )rü   z_LazyAllowedImpl | Nonerý   zSparkSession | NonerÀ   r   )rµ   rÁ   r¶   rÃ   r  rÃ   r  zPivotAgg | Noner  rÂ   r  rÆ   rÀ   r2   )r¶   rÅ   rÀ   ztuple[Any, ...])rõ   rÂ   rÀ   z7Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]])
r�   r)  r
  zfloat | Noner  rÂ   r  r)  rÀ   r2   )rÀ   úpa.Table)rÀ   zpd.DataFrame)rÀ   zpl.DataFrame)r  zLiteral[True]rÀ   zdict[str, CompliantSeriesT])r  zLiteral[False]rÀ   zdict[str, list[Any]])r  rÂ   rÀ   rT   )
r�   rÃ   r°   rI   r  r(  r±   rÃ   rÀ   r2   )r¾   rÆ   r±   rÃ   rÀ   r2   )r   ÚNonerÀ   rÆ   ©r   zstr | Path | BytesIOrÀ   r+  )r   zstr | Path | BytesIO | NonerÀ   z
str | None)$rÈ   rÉ   rÊ   rÑ   rÍ   rÓ   rÖ   rØ   rÚ   rÞ   rá   rÎ   rã   rå   rè   rë   rí   r�   rà   ró   r÷   rú   rþ   r  rð   r  r  r  r  r  r   r  r²   r¿   r!  r%  r]   rc   r`   rO   rO   ´   s¥  „ ó 2ØÚZó ØZØðàðð
 'ðð ?ðð 
òó ðð ðà)ðð
 !ðð ?ðð 
òó ðð ðàðð
 !ðð 2ðð 
òó ðó Kðð
ðð 
óð Ú+ó Ø+Û Û@Û<Û<ð*à=ð*ð ð	*ð
 
%ó*ó JÛ=ðFØðFØ+.ðFà	@óFó 1ð$Ø.ð$Ø<Oð$à	ó$ð	àð	ð $ð		ð
 %ð	ð ,ð	ð ð	ð ð	ð 
ó	ó 6ðFØðFà	@óFðàðð ð	ð
 ðð ðð 
óó (Û,Û,ØÚVó ØVØÚPó ØPðAØ ðAà	;óAð '+ñà$ðð !ð	ð
 $ðð 'ðð 
óó UØÚ/ó Ø/ØÚ@ó Ø@ÛMÜDrc   rO   )rJ   rJ   z_ToDict[CompliantSeriesT])r*  r7   c                  ó@   — e Zd Zdd„Zdd„Zd	d„Z	 	 	 	 	 	 d
d„Zdd„Zy)rQ   c                 ó   — y r\   r]   r^   s    r`   Ú__narwhals_lazyframe__z)CompliantLazyFrame.__narwhals_lazyframe__-  rb   rc   c                 ó   — y r\   r]   r^   s    r`   Ú_iter_columnsz CompliantLazyFrame._iter_columns/  rb   rc   c                 ó   — y)zk`select` where all args are aggregations or literals.

        (so, no broadcasting is necessary).
        Nr]   r¢   s     r`   Ú	aggregatezCompliantLazyFrame.aggregate0  s   € ð
 	rc   c                 ó   — y r\   r]   )r_   rü   Úkwargss      r`   ÚcollectzCompliantLazyFrame.collect7  rÿ   rc   c                 ó   — y r\   r]   r  s     r`   Úsink_parquetzCompliantLazyFrame.sink_parquet:  rb   rc   Nr&  )rÀ   zIterator[Any]rÇ   )rü   z_EagerAllowedImpl | Noner5  r
   rÀ   r   r,  )rÈ   rÉ   rÊ   r/  r1  r3  r6  r8  r]   rc   r`   rQ   rQ   )  s2   „ ó 2ã1óð$Ø/ð$Ø;>ð$à	ó$ô Drc   rQ   c                  óð   — e Zd Zedd„«       Z	 	 dd„Zdd„Zdd„Zddœ	 	 	 	 	 dd„Zdd„Z	dd	„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d'd„Z	 	 	 	 d(d„Zd)d„Zy)*rR   c                ó6   — | j                   j                  «       S r\   )rY   Ú_backend_versionr^   s    r`   r;  zEagerDataFrame._backend_versionE  s   € à×#Ñ#×4Ñ4Ó6Ð6rc   c                 ó   — y r\   r]   r^   s    r`   re   z%EagerDataFrame.__narwhals_namespace__I  s   € ð rc   c                ó<   — | j                   j                  | d¬«      S )NÚfull)Úlevel)rZ   Ú	dataframer^   s    r`   Úto_narwhalszEagerDataFrame.to_narwhalsO  s   € Ø�}‰}×&Ñ& t°6Ð&Ó:Ð:rc   c                ó    —  | j                   |Ž S r\   )r¤   r¢   s     r`   r3  zEagerDataFrame.aggregateR  s   € ð ˆt�{‰{˜EÐ"Ð"rc   T)Úvalidate_column_namesc                ó   — y r\   r]   )r_   rg   rC  s      r`   rh   zEagerDataFrame._with_native\  r®   rc   c                ó0   — t        || j                  ¬«      S )N)Ú	available)r$   rt   r€   s     r`   Ú_check_columns_existz#EagerDataFrame._check_columns_exist`  s   € Ü" 6°T·\±\ÔBÐBrc   c               ód   — | j                  |«      }t        |«      dk7  rd}t        |«      ‚|d   S )z6Evaluate `expr` and ensure it has a **single** output.é   z4multi-output expressions not allowed in this contextr   )Ú_evaluate_exprÚlenr-   )r_   ÚexprÚresultÚmsgs       r`   Ú_evaluate_single_output_exprz+EagerDataFrame._evaluate_single_output_exprc  s:   € ð
 ×$Ñ$ TÓ*ˆÜˆv‹;˜!ÒØHˆCÜ,¨SÓ1Ð1Ø�a‰yÐrc   c                óR   ‡ — t        t        j                  ˆ fd„|D «       «      «      S )Nc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr\   )rJ  )Ú.0rL  r_   s     €r`   ú	<genexpr>z1EagerDataFrame._evaluate_exprs.<locals>.<genexpr>r  s   øè ø€ Ò(UÀt¨×)<Ñ)<¸T×)BÑ(Uùs   ƒ)Útupler   Úfrom_iterabler¢   s   ` r`   Ú_evaluate_exprszEagerDataFrame._evaluate_exprsn  s!   ø€ ô ”U×(Ñ(Ó(UÈuÔ(UÓUÓVÐVrc   c               ó¸   — |j                  | «      } || «      }t        |«      |D �cg c]  }|j                  ‘Œ c}x}k7  rd|› d|› �}t        |«      ‚|S c c}w )a†  Return list of raw columns.

        For eager backends we alias operations at each step.

        As a safety precaution, here we can check that the expected result names match those
        we were expecting from the various `evaluate_output_names` / `alias_output_names` calls.

        Note that for PySpark / DuckDB, we are less free to liberally set aliases whenever we want.
        z"Safety assertion failed, expected z, got )Ú_evaluate_aliasesÚlistr¾   ÚAssertionError)r_   rL  ÚaliasesrM  ÚsÚresult_aliasesrN  s          r`   rJ  zEagerDataFrame._evaluate_exprt  sj   € ð ×(Ñ(¨Ó.ˆÙ�d“ˆÜ�‹=Ø/5Ö6¨!˜qŸv›vÒ6Ð6ˆNò
ð 7°w°i¸vÀnÐEUÐVˆCÜ  Ó%Ð%Øˆùò	 7s   ¨Ac                ó   — y)z@Extract native Series, broadcasting to `len(self)` if necessary.Nr]   )r_   r’   s     r`   Ú_extract_comparandz!EagerDataFrame._extract_comparand‡  r¨   rc   c               óZ   — t        |xs d„ t        | j                  d   «      D «       «      S )Nc              3  ó&   K  — | ]	  }d |› �–— Œ y­w)Úcolumn_Nr]   )rR  Úxs     r`   rS  z5EagerDataFrame._numpy_column_names.<locals>.<genexpr>�  s   è ø€ ÒL°! '¨!¨¤ÑLùs   ‚rI  )rY  Úrangerã   )ro   rt   s     r`   Ú_numpy_column_namesz"EagerDataFrame._numpy_column_names‹  s'   € ô �GÒLÑL´u¸T¿Z¹ZÈ¹]Ó7KÔLÓMÐMrc   c                 ó   — y r\   r]   ©r_   r  s     r`   Ú_gatherzEagerDataFrame._gather‘  rb   rc   c                 ó   — y r\   r]   rg  s     r`   Ú_gather_slicezEagerDataFrame._gather_slice’  rb   rc   c                 ó   — y r\   r]   r„   s     r`   Ú_select_multi_indexz"EagerDataFrame._select_multi_index“  r®   rc   c                 ó   — y r\   r]   r„   s     r`   Ú_select_multi_namez!EagerDataFrame._select_multi_name–  r®   rc   c                 ó   — y r\   r]   r„   s     r`   Ú_select_slice_indexz"EagerDataFrame._select_slice_index™  rb   rc   c                 ó   — y r\   r]   r„   s     r`   Ú_select_slice_namez!EagerDataFrame._select_slice_nameš  rb   rc   c                ót  — |\  }}| }t        |«      �sbt        |t        «      rt        |«      dk(  r|j	                  «       S t        |«      r- |j                  d„ t        |j                  |d¬«      D «       Ž }nüt        |«      rat        |«      st        |«      r|j                  |«      }nÉt        |«      r| j                  |j                  «      }n¢|j                  |«      }n�t        |t         «      r*t"        r|j%                  |«      }nh|j%                  |«      }nVt        |«      r| j'                  |j                  «      }n/t)        |«      r| j'                  |«      }nt"        rnt+        |«       t        |«      s·t        |t,        «      r|j/                  |g«      }|S t        |t         t0        f«      r|j3                  |«      }|S t        |«      r|j/                  |j                  «      }|S t5        |«      r,t"        r|j/                  |«      }|S |j/                  |«      }|S t+        |«       |S )Nr   c              3  ó*   K  — | ]  \  }}|r|–— Œ y ­wr\   r]   )rR  Úcolr¤   s      r`   rS  z-EagerDataFrame.__getitem__.<locals>.<genexpr>©  s   è ø€ ò á'˜C Ù!ô ñùs   ‚F)r}   )r,   Ú
isinstancer   rK  r¤   r%   r§   Úziprt   r'   r+   r(   rp  r&   rl  rw   ÚslicerN   rr  rn  r)   r    rÅ   rh  rd  rj  r*   )r_   rà   r  rt   Ú	compliants        r`   rá   zEagerDataFrame.__getitem__›  s  € ð ‰ˆˆgØˆ	Ü˜WÕ%Ü˜'¤5Ô)¬c°'«l¸aÒ.?Ø ×'Ñ'Ó)Ð)Ü" 7Ô+Ø3˜I×3Ñ3ñä+.¨y×/@Ñ/@À'ÐRWÔ+Xôð‘	ô # 7Ô+Ü! 'Ô*¬h°wÔ.?Ø )× =Ñ =¸gÓ F‘IÜ(¨Ô1Ø $× 8Ñ 8¸¿¹Ó H‘Ià )× =Ñ =¸gÓ F‘IÜ˜G¤UÔ+Ýà )× <Ñ <¸WÓ E‘Ià )× <Ñ <¸WÓ E‘IÜ$ WÔ-Ø ×3Ñ3°G·N±NÓC‘	Ü! 'Ô*Ø ×3Ñ3°GÓ<‘	Ýàä˜WÔ%ä˜TÔ"Ü˜$¤Ô$Ø%×-Ñ-¨t¨fÓ5�	ð Ðô ˜D¤5¬% .Ô1Ø%×3Ñ3°DÓ9�	ð Ðô % TÔ*Ø%×-Ñ-¨d¯k©kÓ:�	ð Ðô /¨tÔ4Ýà )× 1Ñ 1°$Ó 7�Ið Ðð	 !*× 1Ñ 1°$Ó 7�Ið Ðô ˜TÔ"àÐrc   c                ó$   — | j                  |«      S r\   )r%  r  s     r`   r8  zEagerDataFrame.sink_parquetØ  s   € Ø×!Ñ! $Ó'Ð'rc   N)rÀ   ztuple[int, ...])rÀ   zOEagerNamespace[Self, EagerSeriesT, EagerExprT, NativeDataFrameT, NativeSeriesT])rÀ   úDataFrame[NativeDataFrameT])r£   r   rÀ   r2   )rg   r   rC  rÂ   rÀ   r2   )r�   rÁ   rÀ   zColumnNotFoundError | None)rL  r   rÀ   r   )r£   r   rÀ   úSequence[EagerSeriesT])rL  r   rÀ   r|  )r’   r   rÀ   r
   )ro   rJ   rt   rÃ   rÀ   z	list[str])r  ú&SizedMultiIndexSelector[NativeSeriesT]rÀ   r2   )r  ú_SliceIndex | rangerÀ   r2   )rt   r}  rÀ   r2   )rt   z%SizedMultiNameSelector[NativeSeriesT]rÀ   r2   )rt   r~  rÀ   r2   )rt   rL   rÀ   r2   )rà   z]tuple[SingleIndexSelector | MultiIndexSelector[EagerSeriesT], MultiColSelector[EagerSeriesT]]rÀ   r2   r,  )rÈ   rÉ   rÊ   rÎ   r;  re   rA  r3  rh   rG  rO  rV  rJ  r_  Ústaticmethodre  rh  rj  rl  rn  rp  rr  rá   r8  r]   rc   r`   rR   rR   =  sú   „ ð ò7ó ð7ðð
óó;ó#ð FJñØ"ðØ>Bðà	óóCó	óWóó&ð ðNØðNØ!5ðNà	òNó ðNó
 QÛCðØ=ðà	óðØ<ðà	óó MÛBð;ð
ð;ð 
ó;ôz(rc   rR   r{  )pÚ
__future__r   Úcollections.abcr   r   r   r   Ú	itertoolsr   Útypingr	   r
   r   r   r   r   r   Únarwhals._compliant.typingr   r   r   r   r   r   r   r   r   r   Únarwhals._translater   r   r   r   r   r   Únarwhals._typing_compatr    Únarwhals._utilsr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Únarwhals.exceptionsr-   Úior.   Úpathlibr/   Útypesr0   r1   ÚpandasÚpdÚpolarsÚplÚpyarrowÚpaÚtyping_extensionsr2   Únarwhals._compliant.group_byr3   r4   Únarwhals._compliant.namespacer5   Únarwhals._spark_like.utilsr6   r7   Únarwhals._typingr8   r9   r:   r;   Únarwhals.dataframer<   Únarwhals.dtypesr=   r>   Únarwhals.typingr?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rÌ   rN   Ú__all__rS   rU   rV   rP   rÆ   rO   rQ   rR   r]   rc   r`   ú<module>r›     sá  ðÞ "ç >Ó >Ý ß R× RÑ R÷÷ ÷ ÷÷ õ 1÷÷ ÷ ó õ ;áÝÝÝ Ý ãÛÛÝ&çOÝ<Ý7Ý2ßDß?Ý,Ý%Ý7÷÷ ÷ ÷ ð"  €J�	Óà€€eÓ â
Z€áˆCƒL€àI€ˆÓ Iá˜Ó(€ôSNØ�-Ñ Øˆ}ÑØˆ~ÑØÐ" M°>ÐAÑBô	SNôlrEØÐ+Ñ,ØÐ/°¸¸c¸Ñ1BÐBÑCØÐ1Ñ2Ø	ØÐ(Ð*:¸NÐJÑKØÐÐ4Ð6FÈÐVÑWôrEôjDØÐ(Ð*:¸NÐJÑKØÐ"Ð$4°nÐDÑEôDô(\(ØØ�jÐ"2Ð4QÐQñð �z <Ð1NÐNÑOØØˆ\˜:Ð'7¸ÐFÑGõ\(rc   