§
    {Øjê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         ¦  «        ZodS )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Ú	IntoDTypeÚ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                  óB  — e Zd ZU dZded<   ded<   ded<   dYd
„ZdZd„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dad„Zdbd"„Zdcd#„Zddd&„Zded+„Zdfd.„Zdgd6„Zdhd;„Zdid>„ZdjdA„ZdkdD„ZdldF„ZdmdK„ZdndO„ZdodT„ZdkdU„ZdpdW„Z dXS )qrP   z)Common parts of `DataFrame`, `LazyFrame`.rV   Ú_native_framer:   Ú_implementationr"   Ú_versionÚreturnr0   c                ó   — d S ©N© ©Úselfs    ú’/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/narwhals/_compliant/dataframe.pyÚ__native_namespace__z#CompliantFrame.__native_namespace__j   ó   € € € ó    r
   c                ó   — d S r]   r^   r_   s    ra   Ú__narwhals_namespace__z%CompliantFrame.__narwhals_namespace__k   rc   rd   Údfr2   c                ó   — d S r]   r^   )r`   rg   s     ra   Ú_with_nativezCompliantFrame._with_nativel   rc   rd   Úversionc                ó   — d S r]   r^   )r`   rj   s     ra   Ú_with_versionzCompliantFrame._with_versionm   rc   rd   ÚdataÚcontextr;   c              ó   — d S r]   r^   ©Úclsrm   rn   s      ra   Úfrom_nativezCompliantFrame.from_nativen   ó   € ØWZÐWZrd   úSequence[str]c                ó   — d S r]   r^   r_   s    ra   ÚcolumnszCompliantFrame.columnsp   ó   € Ø(+¨rd   c                ó   — | j         S r]   )rX   r_   s    ra   ÚnativezCompliantFrame.nativer   s   € àÔ!Ð!rd   úMapping[str, DType]c                ó   — d S r]   r^   r_   s    ra   ÚschemazCompliantFrame.schemav   s   € Ø-0¨Srd   c                ó   — d S r]   r^   r_   s    ra   Úcollect_schemazCompliantFrame.collect_schemay   rc   rd   rv   ÚstrictÚboolc               ó   — d S r]   r^   )r`   rv   r   s      ra   ÚdropzCompliantFrame.dropz   rc   rd   ÚsubsetúSequence[str] | Nonec                ó   — d S r]   r^   ©r`   rƒ   s     ra   Ú
drop_nullszCompliantFrame.drop_nulls{   rc   rd   c                ó   — d S r]   r^   ©r`   rv   s     ra   ÚexplodezCompliantFrame.explode|   rc   rd   Ú	predicateú"CompliantExprT_contra | Incompletec                ó   — d S r]   r^   )r`   r‹   s     ra   ÚfilterzCompliantFrame.filter}   rc   rd   Úkeysú/Sequence[str] | Sequence[CompliantExprT_contra]Údrop_null_keysú-CompliantGroupBy[Self, CompliantExprT_contra]c               ó   — d S r]   r^   ©r`   r�   r‘   s      ra   Úgroup_byzCompliantFrame.group_by~   s	   € ð
 9<¸rd   ÚnÚintc                ó   — d S r]   r^   )r`   r–   s     ra   ÚheadzCompliantFrame.head„   rc   rd   ÚotherÚhowrA   Úleft_onÚright_onÚsuffixÚstrc               ó   — d S r]   r^   )r`   rš   r›   rœ   r�   rž   s         ra   ÚjoinzCompliantFrame.join…   ó	   € ð ˆsrd   Úby_leftÚby_rightÚstrategyr?   c               ó   — d S r]   r^   )r`   rš   rœ   r�   r£   r¤   r¥   rž   s           ra   Ú	join_asofzCompliantFrame.join_asofŽ   s	   € ð ˆsrd   ÚmappingúMapping[str, str]c                ó   — d S r]   r^   )r`   r¨   s     ra   ÚrenamezCompliantFrame.rename™   rc   rd   ÚdtypesúMapping[str, IntoDType]c                ó|   ‡— |                       ¦   «         Š | j        ˆfd„|                     ¦   «         D ¦   «         Ž S )Nc              3  ón   •K  — | ]/\  }}‰                      |¦  «                             |¦  «        V — Œ0d S r]   )ÚcolÚcast)Ú.0ÚnameÚdtypeÚnss      €ra   ú	<genexpr>z&CompliantFrame.cast.<locals>.<genexpr>�   s?   øè è € ÐIÐI©;¨4°ˆb�fŠf�T‰lŒl×Ò Ñ&Ô&ÐIÐIÐIÐIÐIÐIrd   )rf   Úwith_columnsÚitems)r`   r¬   rµ   s     @ra   r±   zCompliantFrame.castš   sE   ø€ Ø×(Ò(Ñ*Ô*ˆØ ˆtÔ ØIÐIÐIÐI¸&¿,º,¹.¼.ÐIÑIÔIð
ð 	
rd   Úexprsr   c                ó   — d S r]   r^   ©r`   r¹   s     ra   ÚselectzCompliantFrame.select    rc   rd   Úcolumn_namesc                ó   — dS )z)`select` where all args are column names.Nr^   )r`   r½   s     ra   Úsimple_selectzCompliantFrame.simple_select¡   ó   € àˆrd   ÚbyÚ
descendingúbool | Sequence[bool]Ú
nulls_lastc               ó   — d S r]   r^   )r`   rÂ   rÄ   rÁ   s       ra   ÚsortzCompliantFrame.sort¥   ó   € àˆsrd   ÚkeeprI   Úorder_byc               ó   — d S r]   r^   )r`   rƒ   rÈ   rÉ   s       ra   ÚuniquezCompliantFrame.unique¨   ó	   € ð ˆsrd   ÚonÚindexÚvariable_nameÚ
value_namec                ó   — d S r]   r^   )r`   rÍ   rÎ   rÏ   rÐ   s        ra   ÚunpivotzCompliantFrame.unpivot¯   rÌ   rd   c                ó   — d S r]   r^   r»   s     ra   r·   zCompliantFrame.with_columns¶   rc   rd   r³   c                ó   — d S r]   r^   ©r`   r³   rÉ   s      ra   Úwith_row_indexzCompliantFrame.with_row_index·   rc   rd   N)r[   r0   )r[   r
   )rg   rV   r[   r2   )rj   r"   r[   r2   )rm   rV   rn   r;   r[   r2   )r[   rt   )r[   rV   )r[   rz   )rv   rt   r   r€   r[   r2   )rƒ   r„   r[   r2   )rv   rt   r[   r2   )r‹   rŒ   r[   r2   )r�   r�   r‘   r€   r[   r’   )r–   r—   r[   r2   )rš   r2   r›   rA   rœ   r„   r�   r„   rž   rŸ   r[   r2   )rš   r2   rœ   rŸ   r�   rŸ   r£   r„   r¤   r„   r¥   r?   rž   rŸ   r[   r2   )r¨   r©   r[   r2   )r¬   r­   r[   r2   ©r¹   r   r[   r2   )r½   rŸ   r[   r2   )rÁ   rŸ   rÂ   rÃ   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É   rt   r[   r2   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rb   rf   ri   rl   Úclassmethodrr   Úpropertyrv   ry   r|   r~   r‚   r‡   rŠ   rŽ   r•   r™   r¡   r§   r«   r±   r¼   r¿   rÆ   rË   rÒ   r·   rÖ   r^   rd   ra   rP   rP   ^   sò  € € € € € € ð 4Ð3à Ð Ð Ñ Ø#Ð#Ð#Ñ#ØÐÐÑà5Ð5Ð5Ð5Ø0Ð0Ð0Ð0Ø:Ð:Ð:Ð:Ø:Ð:Ð:Ð:ØØZÐZÐZñ „[ØZØØ+Ð+Ð+ñ „XØ+Øð"ð "ð "ñ „Xð"ð Ø0Ð0Ð0ñ „XØ0à8Ð8Ð8Ð8ØHÐHÐHÐHØCÐCÐCÐCØ:Ð:Ð:Ð:ØPÐPÐPÐPð<ð <ð <ð <ð (Ð'Ð'Ð'ðð ð ð ð
ð 
ð 
ð 
ð >Ð=Ð=Ð=ð
ð 
ð 
ð 
ð AÐ@Ð@Ð@ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð GÐFÐFÐFØMÐMÐMÐMÐMÐMrd   rP   c                  ó´  — e Zd Zdtd„Zedud„¦   «         Zedvd„¦   «         Zedwd„¦   «         Zedxd„¦   «         Zdyd„Z	dzd„Z
ed{d„¦   «         Zdtd„Zd|d!„Zd}d%„Zd~d)„Zdd/„Zd€d4„Zd�d6„Zd‚d:„Zdƒd;„Zd„dA„Zd…dK„Zd†dM„Zd‡dO„ZdˆdR„Zd‰dT„ZdŠdV„Zd‹dX„ZedŒd\„¦   «         Zed�d_„¦   «         ZdŽda„Zdbdcœd�di„Z d�dj„Z!ed‘dm„¦   «         Z"ed’do„¦   «         Z"d“dr„Z"d’ds„Z#dbS )”rO   r[   r2   c                ó   — d S r]   r^   r_   s    ra   Ú__narwhals_dataframe__z)CompliantDataFrame.__narwhals_dataframe__Â   rc   rd   rm   r7   rn   r;   c              ó   — d S r]   r^   rp   s      ra   Ú
from_arrowzCompliantDataFrame.from_arrowÃ   rs   rd   úMapping[str, Any]r   r|   ú%Mapping[str, IntoDType | None] | Nonec              ó   — d S r]   r^   ©rq   rm   rn   r|   s       ra   Ú	from_dictzCompliantDataFrame.from_dictÅ   r¢   rd   úSequence[Mapping[str, Any]]c              ó   — d S r]   r^   rç   s       ra   Ú
from_dictszCompliantDataFrame.from_dictsÎ   r¢   rd   rJ   ú.Mapping[str, IntoDType] | Sequence[str] | Nonec              ó   — d S r]   r^   rç   s       ra   Ú
from_numpyzCompliantDataFrame.from_numpy×   r¢   rd   r´   r
   Úcopyúbool | Nonec               ó   — d S r]   r^   )r`   r´   rï   s      ra   Ú	__array__zCompliantDataFrame.__array__à   rc   rd   Úitemúetuple[SingleIndexSelector | MultiIndexSelector[CompliantSeriesT], MultiColSelector[CompliantSeriesT]]c                ó   — d S r]   r^   )r`   ró   s     ra   Ú__getitem__zCompliantDataFrame.__getitem__á   rÌ   rd   útuple[int, int]c                ó   — d S r]   r^   r_   s    ra   ÚshapezCompliantDataFrame.shapeé   rw   rd   c                ó   — d S r]   r^   r_   s    ra   ÚclonezCompliantDataFrame.cloneë   rc   rd   ÚunitrH   úint | floatc                ó   — d S r]   r^   )r`   rü   s     ra   Úestimated_sizez!CompliantDataFrame.estimated_sizeì   rc   rd   r–   r—   Úoffsetc                ó   — d S r]   r^   )r`   r–   r   s      ra   Úgather_everyzCompliantDataFrame.gather_everyí   rc   rd   r³   rŸ   r   c                ó   — d S r]   r^   )r`   r³   s     ra   Ú
get_columnzCompliantDataFrame.get_columnî   rc   rd   r�   r�   r‘   r€   úDataFrameGroupBy[Self, Any]c               ó   — d S r]   r^   r”   s      ra   r•   zCompliantDataFrame.group_byï   s	   € ð
 '* crd   Úrowú
int | NoneÚcolumnúint | str | Nonec                ó   — d S r]   r^   )r`   r  r	  s      ra   ró   zCompliantDataFrame.itemõ   rc   rd   úIterator[CompliantSeriesT]c                ó   — d S r]   r^   r_   s    ra   Úiter_columnszCompliantDataFrame.iter_columnsö   rc   rd   ÚnamedÚbuffer_sizeú7Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]c               ó   — d S r]   r^   )r`   r  r  s      ra   Ú	iter_rowszCompliantDataFrame.iter_rows÷   ó   € àBEÀ#rd   c                ó   — d S r]   r^   r_   s    ra   Ú	is_uniquezCompliantDataFrame.is_uniqueú   rc   rd   Úbackendú_LazyAllowedImpl | NoneÚsessionúSparkSession | Noner   c               ó   — d S r]   r^   )r`   r  r  s      ra   ÚlazyzCompliantDataFrame.lazyû   ó   € à # rd   rÍ   rt   rÎ   r„   ÚvaluesÚaggregate_functionúPivotAgg | NoneÚsort_columnsÚ	separatorc               ó   — d S r]   r^   )r`   rÍ   rÎ   r  r  r!  r"  s          ra   ÚpivotzCompliantDataFrame.pivotþ   s	   € ð ˆsrd   útuple[Any, ...]c                ó   — d S r]   r^   )r`   rÎ   s     ra   r  zCompliantDataFrame.row  rc   rd   ú7Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]c               ó   — d S r]   r^   )r`   r  s     ra   ÚrowszCompliantDataFrame.rows	  r  rd   Úwith_replacementÚseedc               ó   — d S r]   r^   )r`   r–   r*  r+  s       ra   ÚsamplezCompliantDataFrame.sample  rc   rd   úpa.Tablec                ó   — d S r]   r^   r_   s    ra   Úto_arrowzCompliantDataFrame.to_arrow  rc   rd   úpd.DataFramec                ó   — d S r]   r^   r_   s    ra   Ú	to_pandaszCompliantDataFrame.to_pandas  rc   rd   úpl.DataFramec                ó   — d S r]   r^   r_   s    ra   Ú	to_polarszCompliantDataFrame.to_polars  rc   rd   Ú	as_seriesúLiteral[True]údict[str, CompliantSeriesT]c               ó   — d S r]   r^   ©r`   r7  s     ra   Úto_dictzCompliantDataFrame.to_dict  s   € ØSVÐSVrd   úLiteral[False]údict[str, list[Any]]c               ó   — d S r]   r^   r;  s     ra   r<  zCompliantDataFrame.to_dict  s   € ØMPÈSrd   rT   c               ó   — d S r]   r^   r;  s     ra   r<  zCompliantDataFrame.to_dict  s   € à=@¸Srd   N)Úmaintain_orderrƒ   rÈ   rI   rA  rÉ   c               ó   — d S r]   r^   )r`   rƒ   rÈ   rA  rÉ   s        ra   rË   zCompliantDataFrame.unique  s	   € ð ˆsrd   c                ó   — d S r]   r^   rÕ   s      ra   rÖ   z!CompliantDataFrame.with_row_index  rc   rd   ÚfileÚNonec                ó   — d S r]   r^   ©r`   rD  s     ra   Ú	write_csvzCompliantDataFrame.write_csv   s   € Ø,/¨Crd   ústr | Path | BytesIOc                ó   — d S r]   r^   rG  s     ra   rH  zCompliantDataFrame.write_csv"  s   € Ø=@¸Srd   ústr | Path | BytesIO | Noneú
str | Nonec                ó   — d S r]   r^   rG  s     ra   rH  zCompliantDataFrame.write_csv$  rc   rd   c                ó   — d S r]   r^   rG  s     ra   Úwrite_parquetz CompliantDataFrame.write_parquet%  rc   rd   ©r[   r2   )rm   r7   rn   r;   r[   r2   )rm   rä   rn   r   r|   rå   r[   r2   )rm   ré   rn   r;   r|   rå   r[   r2   )rm   rJ   rn   r;   r|   rì   r[   r2   )r´   r
   rï   rð   r[   rJ   )ró   rô   r[   r2   )r[   r÷   )rü   rH   r[   rý   )r–   r—   r   r—   r[   r2   )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Í   rt   rÎ   r„   r  r„   r  r   r!  r€   r"  rŸ   r[   r2   )rÎ   r—   r[   r%  )r  r€   r[   r'  )r–   r—   r*  r€   r+  r  r[   r2   )r[   r.  )r[   r1  )r[   r4  )r7  r8  r[   r9  )r7  r=  r[   r>  )r7  r€   r[   rT   )
rƒ   r„   rÈ   rI   rA  rð   rÉ   r„   r[   r2   )r³   rŸ   rÉ   r„   r[   r2   )rD  rE  r[   rŸ   ©rD  rI  r[   rE  )rD  rK  r[   rL  )$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-  r0  r3  r6  r   r<  rË   rÖ   rH  rO  r^   rd   ra   rO   rO   º   s�  € € € € € ð 2Ð1Ð1Ð1ØØZÐZÐZñ „[ØZØðð ð ñ „[ðð ðð ð ñ „[ðð ðð ð ñ „[ðð KÐJÐJÐJðð ð ð ð Ø+Ð+Ð+ñ „XØ+Ø Ð Ð Ð Ø@Ð@Ð@Ð@Ø<Ð<Ð<Ð<Ø<Ð<Ð<Ð<ð*ð *ð *ð *ð JÐIÐIÐIØ=Ð=Ð=Ð=ðFð Fð Fð Fð 1Ð0Ð0Ð0ð$ð $ð $ð $ð	ð 	ð 	ð 	ð 6Ð5Ð5Ð5ðFð Fð Fð Fð WÐVÐVÐVØ'Ð'Ð'Ð'Ø,Ð,Ð,Ð,Ø,Ð,Ð,Ð,ØØVÐVÐVñ „XØVØØPÐPÐPñ „XØPðAð Að Að Að '+ðð ð ð ð ð ð UÐTÐTÐTØØ/Ð/Ð/ñ „XØ/ØØ@Ð@Ð@ñ „XØ@ØMÐMÐMÐMØDÐDÐDÐDÐDÐDrd   rO   )rJ   rJ   z_ToDict[CompliantSeriesT])r.  r7   c                  ó6   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„ZdS )rQ   r[   r2   c                ó   — d S r]   r^   r_   s    ra   Ú__narwhals_lazyframe__z)CompliantLazyFrame.__narwhals_lazyframe__,  rc   rd   úIterator[Any]c                ó   — d S r]   r^   r_   s    ra   Ú_iter_columnsz CompliantLazyFrame._iter_columns.  rc   rd   r¹   r   c                ó   — dS )zk`select` where all args are aggregations or literals.

        (so, no broadcasting is necessary).
        Nr^   r»   s     ra   Ú	aggregatezCompliantLazyFrame.aggregate/  s	   € ð
 	ˆrd   r  ú_EagerAllowedImpl | NoneÚkwargsr
   r   c                ó   — d S r]   r^   )r`   r  r[  s      ra   ÚcollectzCompliantLazyFrame.collect6  r  rd   rD  rI  rE  c                ó   — d S r]   r^   rG  s     ra   Úsink_parquetzCompliantLazyFrame.sink_parquet9  rc   rd   NrP  )r[   rU  r×   )r  rZ  r[  r
   r[   r   rQ  )rØ   rÙ   rÚ   rT  rW  rY  r]  r_  r^   rd   ra   rQ   rQ   (  sa   € € € € € ð 2Ð1Ð1Ð1à1Ð1Ð1Ð1ðð ð ð ð$ð $ð $ð $ð DÐCÐCÐCÐCÐCrd   rQ   c                  óÌ   — e Zd Zed9d„¦   «         Zd:d„Zd;d„Zd<d„Zddœd=d„Zd>d„Z	d?d„Z
d@d„ZdAd„ZdBd„ZedCd%„¦   «         ZdDd(„ZdEd*„ZdFd+„ZdGd-„ZdHd.„ZdId0„ZdJd3„ZdKd7„Zd8S )LrR   r[   útuple[int, ...]c                ó4   — | j                              ¦   «         S r]   )rY   Ú_backend_versionr_   s    ra   rc  zEagerDataFrame._backend_versionD  s   € àÔ#×4Ò4Ñ6Ô6Ð6rd   úOEagerNamespace[Self, EagerSeriesT, EagerExprT, NativeDataFrameT, NativeSeriesT]c                ó   — d S r]   r^   r_   s    ra   rf   z%EagerDataFrame.__narwhals_namespace__H  s	   € ð €srd   úDataFrame[NativeDataFrameT]c                ó:   — | j                              | d¬¦  «        S )NÚfull)Úlevel)rZ   Ú	dataframer_   s    ra   Úto_narwhalszEagerDataFrame.to_narwhalsN  s   € ØŒ}×&Ò& t°6Ð&Ñ:Ô:Ð:rd   r¹   r   r2   c                ó   —  | j         |Ž S r]   )r¼   r»   s     ra   rY  zEagerDataFrame.aggregateQ  s   € ð ˆtŒ{˜EÐ"Ð"rd   T)Úvalidate_column_namesrg   r   rm  r€   c               ó   — d S r]   r^   )r`   rg   rm  s      ra   ri   zEagerDataFrame._with_native[  rÇ   rd   rƒ   rt   úColumnNotFoundError | Nonec                ó.   — t          || j        ¬¦  «        S )N)Ú	available)r$   rv   r†   s     ra   Ú_check_columns_existz#EagerDataFrame._check_columns_exist_  s   € Ý" 6°T´\ÐBÑBÔBÐBrd   Úexprr   c               ó„   — |                       |¦  «        }t          |¦  «        dk    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`   rs  ÚresultÚmsgs       ra   Ú_evaluate_single_output_exprz+EagerDataFrame._evaluate_single_output_exprb  sE   € ð
 ×$Ò$ TÑ*Ô*ˆÝˆv‰;Œ;˜!ÒÐØHˆCÝ,¨SÑ1Ô1Ð1Ø�aŒyÐrd   úSequence[EagerSeriesT]c                ó^   ‡ — t          t          j        ˆ fd„|D ¦   «         ¦  «        ¦  «        S )Nc              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r]   )rv  )r²   rs  r`   s     €ra   r¶   z1EagerDataFrame._evaluate_exprs.<locals>.<genexpr>q  s1   øè è € Ð(UÐ(UÀt¨×)<Ò)<¸TÑ)BÔ)BÐ(UÐ(UÐ(UÐ(UÐ(UÐ(Urd   )Útupler   Úfrom_iterabler»   s   ` ra   Ú_evaluate_exprszEagerDataFrame._evaluate_exprsm  s3   ø€ õ •UÔ(Ð(UÐ(UÐ(UÐ(UÈuÐ(UÑ(UÔ(UÑUÔUÑVÔVÐVrd   c               ó²   — |                      | ¦  «        } || ¦  «        }t          |¦  «        d„ |D ¦   «         x}k    rd|› d|› �}t          |¦  «        ‚|S )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.
        c                ó   — g | ]	}|j         ‘Œ
S r^   )r³   )r²   Úss     ra   ú
<listcomp>z1EagerDataFrame._evaluate_expr.<locals>.<listcomp>€  s   € Ð6Ð6Ð6¨!˜qœvÐ6Ð6Ð6rd   z"Safety assertion failed, expected z, got )Ú_evaluate_aliasesÚlistÚAssertionError)r`   rs  Úaliasesrx  Úresult_aliasesry  s         ra   rv  zEagerDataFrame._evaluate_exprs  sx   € ð ×(Ò(¨Ñ.Ô.ˆØ��d‘”ˆÝ�‰=Œ=Ø6Ð6¨vÐ6Ñ6Ô6Ð6ˆNò
ð 
ð W°wÐVÐVÀnÐVÐVˆCÝ  Ñ%Ô%Ð%Øˆrd   rš   r
   c               ó   — dS )z@Extract native Series, broadcasting to `len(self)` if necessary.Nr^   )r`   rš   s     ra   Ú_extract_comparandz!EagerDataFrame._extract_comparand†  rÀ   rd   rm   rJ   rv   r„   ú	list[str]c               óh   — t          |p#d„ t          | j        d         ¦  «        D ¦   «         ¦  «        S )Nc              3  ó    K  — | ]	}d |› �V — Œ
dS )Úcolumn_Nr^   )r²   Úxs     ra   r¶   z5EagerDataFrame._numpy_column_names.<locals>.<genexpr>Ž  s(   è è € ÐLÐL°! ¨!  ÐLÐLÐLÐLÐLÐLrd   ru  )r†  Úrangerù   )rm   rv   s     ra   Ú_numpy_column_namesz"EagerDataFrame._numpy_column_namesŠ  s4   € õ �GÐLÐLÐLµu¸T¼ZÈ¼]Ñ7KÔ7KÐLÑLÔLÑMÔMÐMrd   r)  ú&SizedMultiIndexSelector[NativeSeriesT]c                ó   — d S r]   r^   ©r`   r)  s     ra   Ú_gatherzEagerDataFrame._gather�  rc   rd   ú_SliceIndex | rangec                ó   — d S r]   r^   r•  s     ra   Ú_gather_slicezEagerDataFrame._gather_slice‘  rc   rd   c                ó   — d S r]   r^   r‰   s     ra   Ú_select_multi_indexz"EagerDataFrame._select_multi_index’  rÇ   rd   ú%SizedMultiNameSelector[NativeSeriesT]c                ó   — d S r]   r^   r‰   s     ra   Ú_select_multi_namez!EagerDataFrame._select_multi_name•  rÇ   rd   c                ó   — d S r]   r^   r‰   s     ra   Ú_select_slice_indexz"EagerDataFrame._select_slice_index˜  rc   rd   rL   c                ó   — d S r]   r^   r‰   s     ra   Ú_select_slice_namez!EagerDataFrame._select_slice_name™  rc   rd   ró   ú]tuple[SingleIndexSelector | MultiIndexSelector[EagerSeriesT], MultiColSelector[EagerSeriesT]]c                óR  — |\  }}| }t          |¦  «        �s§t          |t          ¦  «        r't          |¦  «        dk    r|                     ¦   «         S t          |¦  «        r+ |j        d„ t          |j        |d¬¦  «        D ¦   «         Ž }�n1t          |¦  «        rtt          |¦  «        st          |¦  «        r|                     |¦  «        }nît          |¦  «        r|                      |j        ¦  «        }nÄ|                     |¦  «        }n®t          |t           ¦  «        r3t"          r|                     |¦  «        }n||                     |¦  «        }nft          |¦  «        r|                      |j        ¦  «        }n<t)          |¦  «        r|                      |¦  «        }nt"          rnt+          |¦  «         t          |¦  «        sÙt          |t,          ¦  «        r|                     |g¦  «        }n­t          |t           t0          f¦  «        r|                     |¦  «        }n{t          |¦  «        r|                     |j        ¦  «        }nQt5          |¦  «        r3t"          r|                     |¦  «        }n%|                     |¦  «        }nt+          |¦  «         |S )Nr   c              3  ó$   K  — | ]\  }}|¯|V — Œd S r]   r^   )r²   r°   r¼   s      ra   r¶   z-EagerDataFrame.__getitem__.<locals>.<genexpr>¨  s@   è è € ð ð á'˜C Ø!ðØðð ð ð ð ð rd   F)r   )r,   Ú
isinstancer   rw  r¼   r%   r¿   Úziprv   r'   r+   r(   r   r&   r›  ry   ÚslicerN   r¢  rž  r)   r    r—   r–  r‘  r™  r*   )r`   ró   r)  rv   Ú	compliants        ra   rö   zEagerDataFrame.__getitem__š  s¶  € ð ‰ˆˆgØˆ	Ý˜WÑ%Ô%ñ  	&Ý˜'¥5Ñ)Ô)ð *­c°'©l¬l¸aÒ.?Ð.?Ø ×'Ò'Ñ)Ô)Ð)Ý" 7Ñ+Ô+ð &Ø3˜IÔ3ðð å+.¨yÔ/@À'ÐRWÐ+XÑ+XÔ+Xðñ ô ð�	‘	õ # 7Ñ+Ô+ð &Ý! 'Ñ*Ô*ð G­h°wÑ.?Ô.?ð GØ )× =Ò =¸gÑ FÔ F�I�IÝ(¨Ñ1Ô1ð GØ $× 8Ò 8¸¼Ñ HÔ H�I�Ià )× =Ò =¸gÑ FÔ F�I�IÝ˜G¥UÑ+Ô+ð &Ýð Fà )× <Ò <¸WÑ EÔ E�I�Ià )× <Ò <¸WÑ EÔ E�I�IÝ$ WÑ-Ô-ð &Ø ×3Ò3°G´NÑCÔC�	�	Ý! 'Ñ*Ô*ð &Ø ×3Ò3°GÑ<Ô<�	�	Ýð &àå˜WÑ%Ô%Ð%å˜TÑ"Ô"ð 	#Ý˜$¥Ñ$Ô$ð #Ø%×-Ò-¨t¨fÑ5Ô5�	�	Ý˜D¥5­% .Ñ1Ô1ð #Ø%×3Ò3°DÑ9Ô9�	�	Ý$ TÑ*Ô*ð 	#Ø%×-Ò-¨d¬kÑ:Ô:�	�	Ý.¨tÑ4Ô4ð #Ýð 8à )× 1Ò 1°$Ñ 7Ô 7�I�Ià )× 1Ò 1°$Ñ 7Ô 7�I�Iå˜TÑ"Ô"Ð"àÐrd   rD  rI  rE  c                ó,   — |                       |¦  «        S r]   )rO  rG  s     ra   r_  zEagerDataFrame.sink_parquet×  s   € Ø×!Ò! $Ñ'Ô'Ð'rd   N)r[   ra  )r[   rd  )r[   rf  )r¹   r   r[   r2   )rg   r   rm  r€   r[   r2   )rƒ   rt   r[   ro  )rs  r   r[   r   )r¹   r   r[   r{  )rs  r   r[   r{  )rš   r   r[   r
   )rm   rJ   rv   r„   r[   rŒ  )r)  r“  r[   r2   )r)  r—  r[   r2   )rv   r“  r[   r2   )rv   rœ  r[   r2   )rv   r—  r[   r2   )rv   rL   r[   r2   )ró   r£  r[   r2   rQ  )rØ   rÙ   rÚ   rÞ   rc  rf   rk  rY  ri   rr  rz  r€  rv  r‹  Ústaticmethodr’  r–  r™  r›  rž  r   r¢  rö   r_  r^   rd   ra   rR   rR   <  s¬  € € € € € ð ð7ð 7ð 7ñ „Xð7ðð ð ð ð;ð ;ð ;ð ;ð#ð #ð #ð #ð FJðð ð ð ð ð ðCð Cð Cð Cð	ð 	ð 	ð 	ðWð Wð Wð Wðð ð ð ð&ð ð ð ð ðNð Nð Nñ „\ðNð
 QÐPÐPÐPØCÐCÐCÐCðð ð ð ðð ð ð ð MÐLÐLÐLØBÐBÐBÐBð;ð ;ð ;ð ;ðz(ð (ð (ð (ð (ð (rd   rR   rf  )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^   rd   ra   ú<module>rÇ     sî  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø Ð Ð Ð Ð Ð Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :àð % ØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àÐÐÐØÐÐÐØÐÐÐØ&Ð&Ð&Ð&Ð&Ð&àOÐOÐOÐOÐOÐOÐOÐOØ<Ð<Ð<Ð<Ð<Ð<Ø7Ð7Ð7Ð7Ð7Ð7Ø2Ð2Ð2Ð2Ð2Ð2ØDÐDÐDÐDÐDÐDÐDÐDØ?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ø,Ð,Ð,Ð,Ð,Ð,Ø%Ð%Ð%Ð%Ð%Ð%Ø7Ð7Ð7Ð7Ð7Ð7ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð"  €JÐÐÐÑà€Ð Ð Ð Ñ à
ZÐ
ZÐ
Z€à€GˆC�L„L€àI€Ð IÐ IÐ IÑ Ià�˜Ñ(Ô(€ðYNð YNð YNð YNð YNØ�-Ô Øˆ}ÔØˆ~ÔØÐ" M°>ÐAÔBñ	YNô YNð YNðxkEð kEð kEð kEð kEØÐ+Ô,ØÐ/°¸¸c¸Ô1BÐBÔCØÐ1Ô2Ø	ØÐ(Ð*:¸NÐJÔKØÐÐ4Ð6FÈÐVÔWñkEô kEð kEð\Dð Dð Dð Dð DØÐ(Ð*:¸NÐJÔKØÐ"Ð$4°nÐDÔEñDô Dð Dð(\(ð \(ð \(ð \(ð \(ØØ�jÐ"2Ð4QÐQôð �z <Ð1NÐNÔOØØˆ\˜:Ð'7¸ÐFÔGñ\(ô \(ð \(ð \(ð \(rd   