Ë
    ðmxi–˜  ã                  óà  — U d dl 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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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) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF d dlGmHZH d dlImJZK d dlLmMZMmNZNmOZO d dlPmQZR d dlSmTZU d dlVmWZWmXZXmYZY d dlZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZb d dlcmdZdmeZemfZf ervd dlgmhZhmiZimjZj d dlkmlZlmmZmmnZn d dlompZpmqZqmrZrmsZsmtZtmuZumvZv d dlwmxZxmyZymzZzm{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…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒ  ede¬«      Z� eld«      ZŽ ed«      Z� G d„ d e'e\   «      Z& G d!„ d"e)e^   «      Z( G d#„ d$eUe`   «      ZT G d%„ d&eK«      ZJ G d'„ d(eR«      ZQedmd)„«       Z�ednd*„«       Z�edod+„«       Z�edpd,„«       Z�	 	 	 	 dqd-„Z�edrd.„«       Z‘edsd/„«       Z‘e	 	 	 	 	 	 dtd0„«       Z‘edud1„«       Z‘e	 	 	 	 	 	 dvd2„«       Z‘e	 	 	 	 	 	 dwd3„«       Z‘e	 	 	 	 	 	 dxd4„«       Z‘e	 	 	 	 	 	 dyd5„«       Z‘e	 	 	 	 	 	 dzd6„«       Z‘e	 	 	 	 	 	 d{d7„«       Z‘ed|d8„«       Z‘e	 	 	 	 	 	 	 	 	 	 	 	 d}d9„«       Z‘d:d:d:dd;œ	 	 	 	 	 	 	 	 	 	 	 d~d<„Z‘ed=d>œ	 	 	 	 	 dd?„«       Z’ed=d>œ	 	 	 	 	 d€d@„«       Z’ed=d>œ	 	 	 	 	 d�dA„«       Z’ed‚dB„«       Z’d:d>œ	 	 	 	 	 dƒdC„Z’	 d„dDd:d:dDd;œ	 	 	 	 	 	 	 	 	 	 	 d…dE„Z“d†dF„Z”d‡dG„Z•d‡dH„Z–dˆdI„Z—d†dJ„Z˜d„d‰dK„Z™dŠdL„ZšdŠdM„Z›dŠdN„ZœdŠdO„Z�dŠdP„Zžd‹dQ„ZŸdŒdR„Z dŒdS„Z¡d‹dT„Z¢d‹dU„Z£d‹dV„Z¤dWd:dXœ	 	 	 	 	 	 	 	 	 d�dY„Z¥dŽdZ„Z¦d�d[„Z§ G d\„ d]e�jP                  «      Z¨ G d^„ d_e�jR                  eJ«      Z©d�d`„Zª	 d„	 	 	 	 	 	 	 	 	 d‘da„Z«	 	 	 	 	 	 d’db„Z¬	 d„ddcœ	 	 	 	 	 	 	 d“dd„Z­e&�j\                  Z®dee¯df<   	 d„	 	 	 	 	 	 	 d”dg„Z°	 	 	 	 	 	 	 	 d•dh„Z±	 	 	 	 	 	 	 	 d–di„Z²	 	 	 	 	 	 	 	 d•dj„Z³	 	 	 	 	 	 	 	 d–dk„Z´g dl¢Zµy)—é    )Úannotations©Úwraps)ÚTYPE_CHECKINGÚAnyÚCallableÚFinalÚLiteralÚcastÚoverloadN)Ú
exceptionsÚ	functions)Úissue_warning)ÚExprKindÚExprNode)ÚTypeVarÚassert_never)ÚImplementationÚVersionÚgenerate_temporary_column_nameÚinherit_docÚis_ordered_categoricalÚmaybe_align_indexÚmaybe_convert_dtypesÚmaybe_get_indexÚmaybe_reset_indexÚmaybe_set_indexÚnot_implemented)Ú	DataFrameÚ	LazyFrame)ÚArrayÚBinaryÚBooleanÚCategoricalÚDateÚDatetimeÚDecimalÚDurationÚEnumÚFieldÚFloat32ÚFloat64ÚInt8ÚInt16ÚInt32ÚInt64ÚInt128ÚListÚObjectÚStringÚStructÚTimeÚUInt8ÚUInt16ÚUInt32ÚUInt64ÚUInt128ÚUnknown)ÚNarwhalsUnstableWarning)ÚExpr)Ú_new_series_implÚconcatÚshow_versions)ÚSchema)ÚSeries)ÚdependenciesÚdtypesÚ	selectors)Ú
DataFrameTÚIntoDataFrameTÚ	IntoFrameÚIntoLazyFrameTÚ
IntoSeriesÚIntoSeriesTÚ
LazyFrameTÚSeriesT)Ú_from_native_implÚget_native_namespaceÚto_py_scalar)ÚIterableÚMappingÚSequence)Ú	ParamSpecÚSelfÚUnpack)ÚAllowAnyÚ	AllowLazyÚAllowSeriesÚExcludeSeriesÚIntoArrowTableÚ
OnlySeriesÚPassThroughUnknown)ÚArrowÚBackendÚEagerAllowedÚIntoBackendÚLazyAllowedÚPandasÚPolars)ÚMultiColSelectorÚMultiIndexSelector)ÚDType)	Ú	IntoDTypeÚIntoExprÚ
IntoSchemaÚNonNestedLiteralÚPythonLiteralÚSingleColSelectorÚSingleIndexSelectorÚ_1DArrayÚ_2DArrayÚT)ÚdefaultÚPÚRc                  ó  ‡ — e Zd Zej                  Z ee«      dˆ fd„«       Ze		 	 	 	 	 	 dˆ fd„«       Z
e		 dddœ	 	 	 	 	 	 	 dˆ fd„«       Ze		 d	 	 	 	 	 	 	 dˆ fd„«       Ze		 d	 	 	 	 	 	 	 dˆ fd„«       Zed d„«       Zed!d	„«       Zed"d
„«       Ze	 	 	 	 d#d„«       Ze	 	 	 	 d$d„«       Z	 	 	 	 d%ˆ fd„Zd&ˆ fd„Z	 dddœ	 	 	 	 	 d'ˆ fd„Zeddœd(d„«       Zed)d„«       Zeddœ	 	 	 d*d„«       Zddœ	 	 	 d*ˆ fd„Zd+ˆ fd„Zd+ˆ fd„Zˆ xZS ),r   c               ód   •— |j                   t        j                  u sJ ‚t        ‰| �  ||¬«       y ©N)Úlevel©Ú_versionr   ÚV2ÚsuperÚ__init__©ÚselfÚdfry   Ú	__class__s      €úR/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/stable/v2/__init__.pyr~   zDataFrame.__init__v   ó+   ø€ à�{‰{œgŸj™jÑ(Ð(Ð(Ü‰Ñ˜ 5ÐÕ)ó    c               ó>   •— t         ‰| �  ||¬«      }t        d|«      S ©N©ÚbackendúDataFrame[Any])r}   Ú
from_arrowr   )ÚclsÚnative_framer‰   Úresultr‚   s       €rƒ   r‹   zDataFrame.from_arrow~   s'   ø€ ô ‘Ñ# L¸'Ð#ÓBˆÜÐ$ fÓ-Ð-r…   Nrˆ   c               ó@   •— t         ‰| �  |||¬«      }t        d|«      S r‡   )r}   Ú	from_dictr   ©rŒ   ÚdataÚschemar‰   rŽ   r‚   s        €rƒ   r�   zDataFrame.from_dict…   s)   ø€ ô ‘Ñ" 4¨¸Ð"ÓAˆÜÐ$ fÓ-Ð-r…   c               ó@   •— t         ‰| �  |||¬«      }t        d|«      S r‡   )r}   Ú
from_dictsr   r‘   s        €rƒ   r•   zDataFrame.from_dicts�   ó)   ø€ ô ‘Ñ# D¨&¸'Ð#ÓBˆÜÐ$ fÓ-Ð-r…   c               ó@   •— t         ‰| �  |||¬«      }t        d|«      S r‡   ©r}   Ú
from_numpyr   r‘   s        €rƒ   r™   zDataFrame.from_numpy›   r–   r…   c                ó"   — t        dt        «      S )Nútype[Series[Any]])r   rC   ©r€   s    rƒ   Ú_serieszDataFrame._series¦   s   € äÐ'¬Ó0Ð0r…   c                ó"   — t        dt        «      S )Nútype[LazyFrame[Any]])r   r    rœ   s    rƒ   Ú
_lazyframezDataFrame._lazyframeª   s   € äÐ*¬IÓ6Ð6r…   c                 ó   — y ©N© ©r€   Úitems     rƒ   Ú__getitem__zDataFrame.__getitem__®   s   € ØWZr…   c                 ó   — y r¢   r£   r¤   s     rƒ   r¦   zDataFrame.__getitem__±   s   € ð r…   c                 ó   — y r¢   r£   r¤   s     rƒ   r¦   zDataFrame.__getitem__¶   s   € ð r…   c                ó"   •— t         ‰| �  |«      S r¢   )r}   r¦   )r€   r¥   r‚   s     €rƒ   r¦   zDataFrame.__getitem__Á   s   ø€ ô ‰wÑ" 4Ó(Ð(r…   c                ó"   •— t         ‰| �  |«      S r¢   )r}   Ú
get_column)r€   Únamer‚   s     €rƒ   r«   zDataFrame.get_columnÐ   s   ø€ ô ‰wÑ! $Ó'Ð'r…   )Úsessionc               ó8   •— t        t        ‰| �	  ||¬«      «      S )N)r‰   r­   )Ú
_stableifyr}   Úlazy)r€   r‰   r­   r‚   s      €rƒ   r°   zDataFrame.lazyÕ   s   ø€ ô œ%™'™,¨wÀ˜,ÓHÓIÐIr…   .©Ú	as_seriesc                ó   — y r¢   r£   ©r€   r²   s     rƒ   Úto_dictzDataFrame.to_dictÝ   s   € ØTWr…   c                ó   — y r¢   r£   r´   s     rƒ   rµ   zDataFrame.to_dictß   s   € ØMPr…   Tc                ó   — y r¢   r£   r´   s     rƒ   rµ   zDataFrame.to_dictá   s   € ð 9<r…   c               ó$   •— t         ‰| �  |¬«      S )Nr±   )r}   rµ   )r€   r²   r‚   s     €rƒ   rµ   zDataFrame.to_dictå   s   ø€ ô
 ‰w‰¨ˆÓ3Ð3r…   c                ó2   •— t        t        ‰| �	  «       «      S r¢   )r¯   r}   Úis_duplicated©r€   r‚   s    €rƒ   rº   zDataFrame.is_duplicatedì   s   ø€ Üœ%™'Ñ/Ó1Ó2Ð2r…   c                ó2   •— t        t        ‰| �	  «       «      S r¢   )r¯   r}   Ú	is_uniquer»   s    €rƒ   r½   zDataFrame.is_uniqueï   s   ø€ Üœ%™'Ñ+Ó-Ó.Ð.r…   ©r�   r   ry   ú&Literal['full', 'lazy', 'interchange']ÚreturnÚNone©r�   r\   r‰   úIntoBackend[EagerAllowed]rÀ   rŠ   r¢   )r’   úMapping[str, Any]r“   ú.IntoSchema | Mapping[str, DType | None] | Noner‰   ú IntoBackend[EagerAllowed] | NonerÀ   rŠ   )r’   zSequence[Mapping[str, Any]]r“   rÅ   r‰   rÃ   rÀ   rŠ   ©r’   rq   r“   z3Mapping[str, DType] | Schema | Sequence[str] | Noner‰   rÃ   rÀ   rŠ   )rÀ   r›   )rÀ   rŸ   )r¥   z-tuple[SingleIndexSelector, SingleColSelector]rÀ   r   )r¥   z2str | tuple[MultiIndexSelector, SingleColSelector]rÀ   úSeries[Any])r¥   z˜SingleIndexSelector | MultiIndexSelector | MultiColSelector | tuple[SingleIndexSelector, MultiColSelector] | tuple[MultiIndexSelector, MultiColSelector]rÀ   rV   )r¥   a  SingleIndexSelector | SingleColSelector | MultiColSelector | MultiIndexSelector | tuple[SingleIndexSelector, SingleColSelector] | tuple[SingleIndexSelector, MultiColSelector] | tuple[MultiIndexSelector, SingleColSelector] | tuple[MultiIndexSelector, MultiColSelector]rÀ   zSeries[Any] | Self | Any)r¬   ÚstrrÀ   rÈ   )r‰   zIntoBackend[LazyAllowed] | Noner­   z
Any | NonerÀ   úLazyFrame[Any])r²   zLiteral[True]rÀ   zdict[str, Series[Any]])r²   úLiteral[False]rÀ   zdict[str, list[Any]])r²   ÚboolrÀ   z-dict[str, Series[Any]] | dict[str, list[Any]])rÀ   rÈ   )Ú__name__Ú
__module__Ú__qualname__r   r|   r{   r   ÚNwDataFramer~   Úclassmethodr‹   r�   r•   r™   Úpropertyr�   r    r   r¦   r«   r°   rµ   rº   r½   Ú__classcell__©r‚   s   @rƒ   r   r   s   sa  ø„ Ø�z‰z€Há�Óô*ó ð*ð ð.Ø)ð.Ø7Pð.à	ô.ó ð.ð ð BFð.ð
 59ñ.àð.ð ?ð.ð
 2ð.ð 
ô.ó ð.ð ð BFð.à)ð.ð ?ð.ð
 +ð.ð 
ô.ó ð.ð ð GKð.àð.ð Dð.ð
 +ð.ð 
ô.ó ð.ð ò1ó ð1ð ò7ó ð7ð ÚZó ØZàðØFðà	òó ðð ð	ð:ð	ð 
ò	ó ð	ð)ð:ð)ð 
"õ)õ(ð 48ðJð #ñ	Jà0ðJð ð	Jð
 
õJð Ø47ÔWó ØWØÚPó ØPØà#'ñ<Ø ð<à	6ò<ó ð<ð $(ñ4Ø ð4à	6õ4õ3÷/ñ /r…   r   c                  ób   ‡ — e Zd Z ee«      dˆ fd„«       Zedd„«       Z	 d	 	 	 	 	 dˆ fd„Zˆ xZ	S )r    c               ód   •— |j                   t        j                  u sJ ‚t        ‰| �  ||¬«       y rx   rz   r   s      €rƒ   r~   zLazyFrame.__init__ô   r„   r…   c                ó   — t         S r¢   ©r   rœ   s    rƒ   Ú
_dataframezLazyFrame._dataframeù   ó   € äÐr…   c                ó8   •— t        t        ‰| �  dd|i|¤Ž«      S )Nr‰   r£   )r¯   r}   Úcollect)r€   r‰   Úkwargsr‚   s      €rƒ   rÜ   zLazyFrame.collectý   s!   ø€ ô œ%™'™/ÑD°'ÐD¸VÑDÓEÐEr…   r¾   ©rÀ   ztype[DataFrame[Any]]r¢   )r‰   z+IntoBackend[Polars | Pandas | Arrow] | NonerÝ   r   rÀ   rŠ   )
rÍ   rÎ   rÏ   r   ÚNwLazyFramer~   rÒ   rÙ   rÜ   rÓ   rÔ   s   @rƒ   r    r    ó   s\   ø„ Ù�Óô*ó ð*ð òó ðð FJðFØBðFØUXðFà	÷Fñ Fr…   r    c                  ó&  ‡ — e Zd ZU ej                  Z ee«      	 	 	 	 	 	 dˆ fd„«       Ze	dd„«       Z
e	 d	 	 	 	 	 	 	 	 	 dˆ fd„«       Ze	 d	 	 	 	 	 	 	 	 	 dˆ fd„«       Zdˆ fd„Zddddd	œ	 	 	 	 	 	 	 	 	 dˆ fd
„Z e«       Zded<   ddœdˆ fd„Zˆ xZS )rC   r   c               ód   •— |j                   t        j                  u sJ ‚t        ‰| �  ||¬«       y rx   rz   )r€   Úseriesry   r‚   s      €rƒ   r~   zSeries.__init__  s-   ø€ ð �‰¤'§*¡*Ñ,Ð,Ð,Ü‰Ñ˜ uÐÕ-r…   c                ó   — t         S r¢   rØ   rœ   s    rƒ   rÙ   zSeries._dataframe  rÚ   r…   Nc               óB   •— t         ‰| �  ||||¬«      }t        d|«      S ©Nrˆ   rÈ   r˜   ©rŒ   r¬   ÚvaluesÚdtyper‰   rŽ   r‚   s         €rƒ   r™   zSeries.from_numpy  s*   ø€ ô ‘Ñ# D¨&°%ÀÐ#ÓIˆÜ�M 6Ó*Ð*r…   c               óB   •— t         ‰| �  ||||¬«      }t        d|«      S rå   )r}   Úfrom_iterabler   ræ   s         €rƒ   rê   zSeries.from_iterable   s*   ø€ ô ‘Ñ& t¨V°UÀGÐ&ÓLˆÜ�M 6Ó*Ð*r…   c                ó2   •— t        t        ‰| �	  «       «      S r¢   )r¯   r}   Úto_framer»   s    €rƒ   rì   zSeries.to_frame,  s   ø€ Üœ%™'Ñ*Ó,Ó-Ð-r…   F©ÚsortÚparallelr¬   Ú	normalizec               ó<   •— t        t        ‰| �	  ||||¬«      «      S )Nrí   )r¯   r}   Úvalue_counts)r€   rî   rï   r¬   rð   r‚   s        €rƒ   rò   zSeries.value_counts/  s-   ø€ ô Ü‰GÑ Ø H°4À9ð !ó ó
ð 	
r…   Úhist©Úignore_nullsc               óH   •— d}t        |t        «       t        ‰| �  |¬«      S )Nz_`Series.any_value` is being called from the stable API although considered an unstable feature.rô   )r   r=   r}   Ú	any_value)r€   rõ   Úmsgr‚   s      €rƒ   r÷   zSeries.any_value@  s-   ø€ ð#ð 	ô 	�cÔ2Ô3Ü‰wÑ ¨lÐ Ó;Ð;r…   )râ   r   ry   r¿   rÀ   rÁ   rÞ   r¢   )
r¬   rÉ   rç   rp   rè   úIntoDType | Noner‰   rÃ   rÀ   rÈ   )
r¬   rÉ   rç   zIterable[Any]rè   rù   r‰   rÃ   rÀ   rÈ   )rÀ   rŠ   )
rî   rÌ   rï   rÌ   r¬   z
str | Nonerð   rÌ   rÀ   rŠ   )rõ   rÌ   rÀ   rm   )rÍ   rÎ   rÏ   r   r|   r{   r   ÚNwSeriesr~   rÒ   rÙ   rÑ   r™   rê   rì   rò   r   ró   Ú__annotations__r÷   rÓ   rÔ   s   @rƒ   rC   rC     sG  ø… Ø�z‰z€Há�Óð.Øð.Ø%Kð.à	ô.ó ð.ð òó ðð ð
 #'ð		+àð	+ð ð	+ð  ð		+ð +ð	+ð 
ô	+ó ð	+ð ð
 #'ð		+àð	+ð ð	+ð  ð		+ð +ð	+ð 
ô	+ó ð	+õ.ð ØØØñ
ð ð
ð ð	
ð
 ð
ð ð
ð 
õ
ñ  Ó!€Dˆ#Ó!à05÷ <ó <r…   rC   c                  ó   — e Zd Zddœdd„Zy)r>   Frô   c               ó|   — d}t        |t        «       | j                  t        t        j
                  d|¬«      «      S )Nz]`Expr.any_value` is being called from the stable API although considered an unstable feature.r÷   rô   )r   r=   Ú_append_noder   r   ÚAGGREGATION)r€   rõ   rø   s      rƒ   r÷   zExpr.any_valueJ  s>   € ð#ð 	ô 	�cÔ2Ô3Ø× Ñ Ü”X×)Ñ)¨;À\ÔRó
ð 	
r…   N)rõ   rÌ   rÀ   rV   )rÍ   rÎ   rÏ   r÷   r£   r…   rƒ   r>   r>   I  s
   „ Ø05ö 
r…   r>   c                  óX   ‡ — e Zd Zej                  Z ee«      	 d	 	 	 dˆ fd„«       Zˆ xZ	S )rB   c                ó$   •— t         ‰| �  |«       y r¢   )r}   r~   )r€   r“   r‚   s     €rƒ   r~   zSchema.__init__X  s   ø€ ô 	‰Ñ˜Õ r…   r¢   )r“   z8Mapping[str, DType] | Iterable[tuple[str, DType]] | NonerÀ   rÁ   )
rÍ   rÎ   rÏ   r   r|   r{   r   ÚNwSchemar~   rÓ   rÔ   s   @rƒ   rB   rB   U  s6   ø„ Ø�z‰z€Há�ÓàQUð!ØNð!à	ô!ó ô!r…   rB   c                 ó   — y r¢   r£   ©Úobjs    rƒ   r¯   r¯   _  ó   € ØORr…   c                 ó   — y r¢   r£   r  s    rƒ   r¯   r¯   a  r  r…   c                 ó   — y r¢   r£   r  s    rƒ   r¯   r¯   c  ó   € ØCFr…   c                 ó   — y r¢   r£   r  s    rƒ   r¯   r¯   e  s   € Ø%(r…   c                ó2  — t        | t        «      r>t        | j                  j	                  t
        j                  «      | j                  ¬«      S t        | t        «      r>t        | j                  j	                  t
        j                  «      | j                  ¬«      S t        | t        «      r>t        | j                  j	                  t
        j                  «      | j                  ¬«      S t        | t        «      rt        | j                  Ž S t!        | «       y rx   )Ú
isinstancerÐ   r   Ú_compliant_frameÚ_with_versionr   r|   Ú_levelrß   r    rú   rC   Ú_compliant_seriesÚNwExprr>   Ú_nodesr   r  s    rƒ   r¯   r¯   i  sµ   € ô �#”{Ô#Ü˜×-Ñ-×;Ñ;¼G¿J¹JÓGÈsÏzÉzÔZÐZÜ�#”{Ô#Ü˜×-Ñ-×;Ñ;¼G¿J¹JÓGÈsÏzÉzÔZÐZÜ�#”xÔ Ü�c×+Ñ+×9Ñ9¼'¿*¹*ÓEÈSÏZÉZÔXÐXÜ�#”vÔÜ�S—Z‘ZÐ Ð Ü�Õr…   c                 ó   — y r¢   r£   ©Únative_objectÚkwdss     rƒ   Úfrom_nativer  z  s   € ØPSr…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  |  s   € ØQTr…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  ~  s   € ð r…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  ƒ  s   € ØUXr…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  …  ó   € ð !$r…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  ‰  ó   € ð r…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  �  r  r…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  ‘  r  r…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  •  s   € ð 7:r…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  ™  s	   € ð SVr…   c                 ó   — y r¢   r£   r  s     rƒ   r  r  �  s   € ØLOr…   c                ó   — y r¢   r£   ©r  Úpass_throughÚ
eager_onlyÚseries_onlyÚallow_seriess        rƒ   r  r     s   € ð r…   F©r&  r'  r(  r)  c          	     ó¢   — t        | t        t        f«      r|s| S t        | t        «      r|s|r| S t	        | ||||dt
        j                  ¬«      S )a�  Convert `native_object` to Narwhals Dataframe, Lazyframe, or Series.

    Arguments:
        native_object: Raw object from user.
            Depending on the other arguments, input object can be

            - a Dataframe / Lazyframe / Series supported by Narwhals (pandas, Polars, PyArrow, ...)
            - an object which implements `__narwhals_dataframe__`, `__narwhals_lazyframe__`,
              or `__narwhals_series__`
        pass_through: Determine what happens if the object can't be converted to Narwhals

            - `False` (default): raise an error
            - `True`: pass object through as-is
        eager_only: Whether to only allow eager objects

            - `False` (default): don't require `native_object` to be eager
            - `True`: only convert to Narwhals if `native_object` is eager
        series_only: Whether to only allow Series

            - `False` (default): don't require `native_object` to be a Series
            - `True`: only convert to Narwhals if `native_object` is a Series
        allow_series: Whether to allow Series (default is only Dataframe / Lazyframe)

            - `False` or `None` (default): don't convert to Narwhals if `native_object` is a Series
            - `True`: allow `native_object` to be a Series

    Returns:
        DataFrame, LazyFrame, Series, or original object, depending
            on which combination of parameters was passed.
    F)r&  r'  r(  r)  Úeager_or_interchange_onlyÚversion)r  r   r    rC   rO   r   r|   r%  s        rƒ   r  r  ©  sV   € ôX �-¤)¬YÐ!7Ô8ÁØÐÜ�-¤Ô(©k¹\ØÐäØØ!ØØØ!Ø"'Ü—
‘
ôð r…   .©r&  c                ó   — y r¢   r£   ©Únarwhals_objectr&  s     rƒ   Ú	to_nativer2  å  ó   € ð r…   c                ó   — y r¢   r£   r0  s     rƒ   r2  r2  é  r3  r…   c                ó   — y r¢   r£   r0  s     rƒ   r2  r2  í  s   € ð r…   c                ó   — y r¢   r£   r0  s     rƒ   r2  r2  ñ  r	  r…   c               ó0   — t        j                  | |¬«      S )a]  Convert Narwhals object to native one.

    Arguments:
        narwhals_object: Narwhals object.
        pass_through: Determine what happens if `narwhals_object` isn't a Narwhals class

            - `False` (default): raise an error
            - `True`: pass object through as-is

    Returns:
        Object of class that user started with.
    r.  )Únwr2  r0  s     rƒ   r2  r2  õ  s   € ô& �<‰<˜°lÔCÐCr…   Tc               ó4   ‡‡‡‡— dˆˆˆˆfd„}| €|S  || «      S )aþ  Decorate function so it becomes dataframe-agnostic.

    This will try to convert any dataframe/series-like object into the Narwhals
    respective DataFrame/Series, while leaving the other parameters as they are.
    Similarly, if the output of the function is a Narwhals DataFrame or Series, it will be
    converted back to the original dataframe/series type, while if the output is another
    type it will be left as is.
    By setting `pass_through=False`, then every input and every output will be required to be a
    dataframe/series-like object.

    Arguments:
        func: Function to wrap in a `from_native`-`to_native` block.
        pass_through: Determine what happens if the object can't be converted to Narwhals

            - `False`: raise an error
            - `True` (default): pass object through as-is
        eager_only: Whether to only allow eager objects

            - `False` (default): don't require `native_object` to be eager
            - `True`: only convert to Narwhals if `native_object` is eager
        series_only: Whether to only allow Series

            - `False` (default): don't require `native_object` to be a Series
            - `True`: only convert to Narwhals if `native_object` is a Series
        allow_series: Whether to allow Series (default is only Dataframe / Lazyframe)

            - `False` or `None`: don't convert to Narwhals if `native_object` is a Series
            - `True` (default): allow `native_object` to be a Series

    Returns:
        Decorated function.
    c                ó:   •‡ — t        ‰ «      dˆˆˆ ˆˆfd„«       }|S )Nc                 ó–  •— | D �cg c]  }t        |‰‰‰‰
¬«      ‘Œ } }|j                  «       D ��ci c]  \  }}|t        |‰‰‰‰
¬«      “Œ }}}g | ¢|j                  «       ¢­D �ch c]  }t        |dd «      x}r |«       ’Œ }}|j	                  «       dkD  rd}t        |«      ‚ ‰| i |¤Ž}	t        |	‰¬«      S c c}w c c}}w c c}w )Nr*  Ú__native_namespace__é   z_Found multiple backends. Make sure that all dataframe/series inputs come from the same backend.r.  )r  Úitemsrç   ÚgetattrÚ__len__Ú
ValueErrorr2  )ÚargsrÝ   Úargr¬   ÚvalueÚvÚbÚbackendsrø   rŽ   r)  r'  Úfuncr&  r(  s             €€€€€rƒ   Úwrapperz.narwhalify.<locals>.decorator.<locals>.wrapper5  s  ø€ ð  ö	ð ô ØØ!-Ø)Ø +Ø!-öð	ˆDð 	ð& $*§<¡<£>÷	ñ  �D˜%ð ”kØØ!-Ø)Ø +Ø!-ôñ ð	ˆFñ 	ð 3˜4Ð2 &§-¡-£/Ñ2öàÜ  Ð$:¸DÓAÐA�AÐAñ •ðˆHð ð ×ÑÓ! AÒ%Øw�Ü  “oÐ%á˜4Ð* 6Ñ*ˆFä˜V°,Ô?Ð?ùòE	ùó	ùòs   †B;²C Á'C)rB  r   rÝ   r   rÀ   r   r   )rH  rI  r)  r'  r&  r(  s   ` €€€€rƒ   Ú	decoratorznarwhalify.<locals>.decorator4  s)   ù€ Ü	ˆt‹÷#	@ð #	@ó 
ð#	@ðJ ˆr…   )rH  úCallable[..., Any]rÀ   rK  r£   )rH  r&  r'  r(  r)  rJ  s    ```` rƒ   Ú
narwhalifyrL    s&   û€ ÷R'ð 'ðR €|ØÐá�T‹?Ðr…   c                 ó<   — t        t        j                  «       «      S )z3Instantiate an expression representing all columns.)r¯   r8  Úallr£   r…   rƒ   rN  rN  c  ó   € ä”b—f‘f“hÓÐr…   c                 ó8   — t        t        j                  | Ž «      S )zŽCreates an expression that references one or more columns by their name(s).

    Arguments:
        names: Name(s) of the columns to use.
    )r¯   r8  Úcol©Únamess    rƒ   rQ  rQ  h  s   € ô ”b—f‘f˜e�nÓ%Ð%r…   c                 ó8   — t        t        j                  | Ž «      S )z„Creates an expression that excludes columns by their name(s).

    Arguments:
        names: Name(s) of the columns to exclude.
    )r¯   r8  ÚexcluderR  s    rƒ   rU  rU  q  s   € ô ”b—j‘j %Ð(Ó)Ð)r…   c                 ó8   — t        t        j                  | Ž «      S )a!  Creates an expression that references one or more columns by their index(es).

    Notes:
        `nth` is not supported for Polars version<1.0.0. Please use
        [`narwhals.col`][] instead.

    Arguments:
        indices: One or more indices representing the columns to retrieve.
    )r¯   r8  Únth)Úindicess    rƒ   rW  rW  z  s   € ô ”b—f‘f˜gÐ&Ó'Ð'r…   c                 ó<   — t        t        j                  «       «      S )zReturn the number of rows.)r¯   r8  Úlenr£   r…   rƒ   rZ  rZ  ‡  rO  r…   c                ó@   — t        t        j                  | |«      «      S )zùReturn an expression representing a literal value.

    Arguments:
        value: The value to use as literal.
        dtype: The data type of the literal value. If not provided, the data type will
            be inferred by the native library.
    )r¯   r8  Úlit)rD  rè   s     rƒ   r\  r\  Œ  s   € ô ”b—f‘f˜U EÓ*Ó+Ð+r…   c                 ó8   — t        t        j                  | Ž «      S )z»Return the minimum value.

    Note:
       Syntactic sugar for ``nw.col(columns).min()``.

    Arguments:
        columns: Name(s) of the columns to use in the aggregation function.
    )r¯   r8  Úmin©Úcolumnss    rƒ   r^  r^  —  ó   € ô ”b—f‘f˜gÐ&Ó'Ð'r…   c                 ó8   — t        t        j                  | Ž «      S )z»Return the maximum value.

    Note:
       Syntactic sugar for ``nw.col(columns).max()``.

    Arguments:
        columns: Name(s) of the columns to use in the aggregation function.
    )r¯   r8  Úmaxr_  s    rƒ   rc  rc  £  ra  r…   c                 ó8   — t        t        j                  | Ž «      S )zµGet the mean value.

    Note:
        Syntactic sugar for ``nw.col(columns).mean()``

    Arguments:
        columns: Name(s) of the columns to use in the aggregation function
    )r¯   r8  Úmeanr_  s    rƒ   re  re  ¯  s   € ô ”b—g‘g˜wÐ'Ó(Ð(r…   c                 ó8   — t        t        j                  | Ž «      S )aL  Get the median value.

    Notes:
        - Syntactic sugar for ``nw.col(columns).median()``
        - Results might slightly differ across backends due to differences in the
            underlying algorithms used to compute the median.

    Arguments:
        columns: Name(s) of the columns to use in the aggregation function
    )r¯   r8  Úmedianr_  s    rƒ   rg  rg  »  s   € ô ”b—i‘i Ð)Ó*Ð*r…   c                 ó8   — t        t        j                  | Ž «      S )z°Sum all values.

    Note:
        Syntactic sugar for ``nw.col(columns).sum()``

    Arguments:
        columns: Name(s) of the columns to use in the aggregation function
    )r¯   r8  Úsumr_  s    rƒ   ri  ri  É  ra  r…   c                 ó8   — t        t        j                  | Ž «      S )a
  Sum all values horizontally across columns.

    Warning:
        Unlike Polars, we support horizontal sum over numeric columns only.

    Arguments:
        exprs: Name(s) of the columns to use in the aggregation function. Accepts
            expression input.
    )r¯   r8  Úsum_horizontal©Úexprss    rƒ   rk  rk  Õ  ó   € ô ”b×'Ñ'¨Ð/Ó0Ð0r…   c                ó>   — t        t        j                  |d| iŽ«      S )aþ  Compute the bitwise AND horizontally across columns.

    Arguments:
        exprs: Name(s) of the columns to use in the aggregation function. Accepts
            expression input.
        ignore_nulls: Whether to ignore nulls:

            - If `True`, null values are ignored. If there are no elements, the result
              is `True`.
            - If `False`, Kleene logic is followed. Note that this is not allowed for
              pandas with classical NumPy dtypes when null values are present.
    rõ   )r¯   r8  Úall_horizontal©rõ   rm  s     rƒ   rp  rp  â  ó   € ô ”b×'Ñ'¨ÐJ¸\ÑJÓKÐKr…   c                ó>   — t        t        j                  |d| iŽ«      S )aþ  Compute the bitwise OR horizontally across columns.

    Arguments:
        exprs: Name(s) of the columns to use in the aggregation function. Accepts
            expression input.
        ignore_nulls: Whether to ignore nulls:

            - If `True`, null values are ignored. If there are no elements, the result
              is `False`.
            - If `False`, Kleene logic is followed. Note that this is not allowed for
              pandas with classical NumPy dtypes when null values are present.
    rõ   )r¯   r8  Úany_horizontalrq  s     rƒ   rt  rt  ò  rr  r…   c                 ó8   — t        t        j                  | Ž «      S )zÀCompute the mean of all values horizontally across columns.

    Arguments:
        exprs: Name(s) of the columns to use in the aggregation function. Accepts
            expression input.
    )r¯   r8  Úmean_horizontalrl  s    rƒ   rv  rv    s   € ô ”b×(Ñ(¨%Ð0Ó1Ð1r…   c                 ó8   — t        t        j                  | Ž «      S )a  Get the minimum value horizontally across columns.

    Notes:
        We support `min_horizontal` over numeric columns only.

    Arguments:
        exprs: Name(s) of the columns to use in the aggregation function. Accepts
            expression input.
    )r¯   r8  Úmin_horizontalrl  s    rƒ   rx  rx    rn  r…   c                 ó8   — t        t        j                  | Ž «      S )a  Get the maximum value horizontally across columns.

    Notes:
        We support `max_horizontal` over numeric columns only.

    Arguments:
        exprs: Name(s) of the columns to use in the aggregation function. Accepts
            expression input.
    )r¯   r8  Úmax_horizontalrl  s    rƒ   rz  rz    rn  r…   Ú ©Ú	separatorrõ   c               óH   — t        t        j                  | g|¢­||dœŽ«      S )aæ  Horizontally concatenate columns into a single string column.

    Arguments:
        exprs: Columns to concatenate into a single string column. Accepts expression
            input. Strings are parsed as column names, other non-expression inputs are
            parsed as literals. Non-`String` columns are cast to `String`.
        *more_exprs: Additional columns to concatenate into a single string column,
            specified as positional arguments.
        separator: String that will be used to separate the values of each column.
        ignore_nulls: Ignore null values (default is `False`).
            If set to `False`, null values will be propagated and if the row contains any
            null values, the output is null.
    r|  )r¯   r8  Ú
concat_str)rm  r}  rõ   Ú
more_exprss       rƒ   r  r  &  s)   € ô& Ü
�‰�eÐY˜jÑY°IÈLÒYóð r…   c                ó@   — t        t        j                  | g|¢­Ž «      S )zŸFormat expressions as a string.

    Arguments:
        f_string: A string that with placeholders.
        args: Expression(s) that fill the placeholders.
    )r¯   r8  Úformat)Úf_stringrB  s     rƒ   r‚  r‚  >  s   € ô ”b—i‘i Ð0¨4Ò0Ó1Ð1r…   c                ó@   — t        t        j                  | g|¢­Ž «      S )aú  Folds the columns from left to right, keeping the first non-null value.

    Arguments:
        exprs: Columns to coalesce, must be a str, nw.Expr, or nw.Series
            where strings are parsed as column names and both nw.Expr/nw.Series
            are passed through as-is. Scalar values must be wrapped in `nw.lit`.

        *more_exprs: Additional columns to coalesce, specified as positional arguments.

    Raises:
        TypeError: If any of the inputs are not a str, nw.Expr, or nw.Series.
    )r¯   r8  Úcoalesce)rm  r€  s     rƒ   r…  r…  H  s   € ô ”b—k‘k %Ð5¨*Ò5Ó6Ð6r…   c                  ó2   ‡ — e Zd Zedd„«       Zdˆ fd„Zˆ xZS )ÚWhenc                ó&   —  | |j                   «      S r¢   )Ú
_predicate)rŒ   Úwhens     rƒ   Ú	from_whenzWhen.from_whenY  s   € á�4—?‘?Ó#Ð#r…   c                óH   •— t         j                  t        ‰| �  |«      «      S r¢   )ÚThenÚ	from_thenr}   Úthen©r€   rD  r‚   s     €rƒ   r�  z	When.then]  s   ø€ Ü�~‰~œe™g™l¨5Ó1Ó2Ð2r…   )rŠ  z	nw_f.WhenrÀ   r‡  )rD  ú&IntoExpr | NonNestedLiteral | _1DArrayrÀ   r�  )rÍ   rÎ   rÏ   rÑ   r‹  r�  rÓ   rÔ   s   @rƒ   r‡  r‡  X  s   ø„ Øò$ó ð$÷3ñ 3r…   r‡  c                  ó2   ‡ — e Zd Zedd„«       Zdˆ fd„Zˆ xZS )r�  c                ó    —  | |j                   Ž S r¢   )r  )rŒ   r�  s     rƒ   rŽ  zThen.from_thenb  s   € á�D—K‘KÐ Ð r…   c                ó4   •— t        t        ‰| �	  |«      «      S r¢   )r¯   r}   Ú	otherwiser�  s     €rƒ   r•  zThen.otherwisef  s   ø€ Üœ%™'Ñ+¨EÓ2Ó3Ð3r…   )r�  z	nw_f.ThenrÀ   r�  )rD  r‘  rÀ   r>   )rÍ   rÎ   rÏ   rÑ   rŽ  r•  rÓ   rÔ   s   @rƒ   r�  r�  a  s   ø„ Øò!ó ð!÷4ñ 4r…   r�  c                 óL   — t         j                  t        j                  | Ž «      S )a  Start a `when-then-otherwise` expression.

    Expression similar to an `if-else` statement in Python. Always initiated by a
    `pl.when(<condition>).then(<value if condition>)`, and optionally followed by a
    `.otherwise(<value if condition is false>)` can be appended at the end. If not
    appended, and the condition is not `True`, `None` will be returned.

    Info:
        Chaining multiple `.when(<condition>).then(<value>)` statements is currently
        not supported.
        See [Narwhals#668](https://github.com/narwhals-dev/narwhals/issues/668).

    Arguments:
        predicates: Condition(s) that must be met in order to apply the subsequent
            statement. Accepts one or more boolean expressions, which are implicitly
            combined with `&`. String input is parsed as a column name.

    Returns:
        A "when" object, which `.then` can be called on.
    )r‡  r‹  Únw_frŠ  )Ú
predicatess    rƒ   rŠ  rŠ  j  s   € ô* �>‰>œ$Ÿ)™) ZÐ0Ó1Ð1r…   c               ó2   — t        t        | |||¬«      «      S )aÁ  Instantiate Narwhals Series from iterable (e.g. list or array).

    Arguments:
        name: Name of resulting Series.
        values: Values of make Series from.
        dtype: (Narwhals) dtype. If not provided, the native library
            may auto-infer it from `values`.
        backend: specifies which eager backend instantiate to.

            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
    rˆ   )r¯   r?   )r¬   rç   rè   r‰   s       rƒ   Ú
new_seriesrš  ‚  s   € ô. Ô& t¨V°UÀGÔLÓMÐMr…   c               óB   — t        t        j                  | |¬«      «      S )aL  Construct a DataFrame from an object which supports the PyCapsule Interface.

    Arguments:
        native_frame: Object which implements `__arrow_c_stream__`.
        backend: specifies which eager backend instantiate to.

            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
    rˆ   )r¯   r—  r‹   )r�   r‰   s     rƒ   r‹   r‹   œ  s   € ô  ”d—o‘o l¸GÔDÓEÐEr…   rˆ   c               óD   — t        t        j                  | ||¬«      «      S )aX  Instantiate DataFrame from dictionary.

    Indexes (if present, for pandas-like backends) are aligned following
    the [left-hand-rule](../concepts/pandas_index.md/).

    Notes:
        For pandas-like dataframes, conversion to schema is applied after dataframe
        creation.

    Arguments:
        data: Dictionary to create DataFrame from.
        schema: The DataFrame schema as Schema or dict of {name: type}. If not
            specified, the schema will be inferred by the native library. If
            any `dtype` is `None`, the data type for that column will be inferred
            by the native library.
        backend: specifies which eager backend instantiate to. Only
            necessary if inputs are not Narwhals Series.

            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
    rˆ   )r¯   r—  r�   ©r’   r“   r‰   s      rƒ   r�   r�   ¯  s   € ô> ”d—n‘n T¨6¸7ÔCÓDÐDr…   r	   r•   c               óD   — t        t        j                  | ||¬«      «      S )a.  Construct a DataFrame from a NumPy ndarray.

    Notes:
        Only row orientation is currently supported.

        For pandas-like dataframes, conversion to schema is applied after dataframe
        creation.

    Arguments:
        data: Two-dimensional data represented as a NumPy ndarray.
        schema: The DataFrame schema as Schema, dict of {name: type}, or a sequence of str.
        backend: specifies which eager backend instantiate to.

            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
    rˆ   )r¯   r—  r™   r�  s      rƒ   r™   r™   Ô  s   € ô4 ”d—o‘o d¨F¸GÔDÓEÐEr…   c               óD   — t        t        j                  | fd|i|¤Ž«      S )a½  Read a CSV file into a DataFrame.

    Arguments:
        source: Path to a file.
        backend: The eager backend for DataFrame creation.
            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
        kwargs: Extra keyword arguments which are passed to the native CSV reader.
            For example, you could use
            `nw.read_csv('file.csv', backend='pandas', engine='pyarrow')`.
    r‰   )r¯   r—  Úread_csv©Úsourcer‰   rÝ   s      rƒ   r   r   ñ  s"   € ô$ ”d—m‘m FÑF°GÐF¸vÑFÓGÐGr…   c               óD   — t        t        j                  | fd|i|¤Ž«      S )aR  Lazily read from a CSV file.

    For the libraries that do not support lazy dataframes, the function reads
    a csv file eagerly and then converts the resulting dataframe to a lazyframe.

    Arguments:
        source: Path to a file.
        backend: The eager backend for DataFrame creation.
            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
        kwargs: Extra keyword arguments which are passed to the native CSV reader.
            For example, you could use
            `nw.scan_csv('file.csv', backend=pd, engine='pyarrow')`.
    r‰   )r¯   r—  Úscan_csvr¡  s      rƒ   r¤  r¤    s"   € ô* ”d—m‘m FÑF°GÐF¸vÑFÓGÐGr…   c               óD   — t        t        j                  | fd|i|¤Ž«      S )aÌ  Read into a DataFrame from a parquet file.

    Arguments:
        source: Path to a file.
        backend: The eager backend for DataFrame creation.
            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN` or `CUDF`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"` or `"cudf"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin` or `cudf`.
        kwargs: Extra keyword arguments which are passed to the native parquet reader.
            For example, you could use
            `nw.read_parquet('file.parquet', backend=pd, engine='pyarrow')`.
    r‰   )r¯   r—  Úread_parquetr¡  s      rƒ   r¦  r¦    s$   € ô$ ”d×'Ñ'¨ÑJ¸ÐJÀ6ÑJÓKÐKr…   c               óD   — t        t        j                  | fd|i|¤Ž«      S )aý  Lazily read from a parquet file.

    For the libraries that do not support lazy dataframes, the function reads
    a parquet file eagerly and then converts the resulting dataframe to a lazyframe.

    Note:
        Spark like backends require a session object to be passed in `kwargs`.

        For instance:

        ```py
        import narwhals as nw
        from sqlframe.duckdb import DuckDBSession

        nw.scan_parquet(source, backend="sqlframe", session=DuckDBSession())
        ```

    Arguments:
        source: Path to a file.
        backend: The eager backend for DataFrame creation.
            `backend` can be specified in various ways

            - As `Implementation.<BACKEND>` with `BACKEND` being `PANDAS`, `PYARROW`,
                `POLARS`, `MODIN`, `CUDF`, `PYSPARK` or `SQLFRAME`.
            - As a string: `"pandas"`, `"pyarrow"`, `"polars"`, `"modin"`, `"cudf"`,
                `"pyspark"` or `"sqlframe"`.
            - Directly as a module `pandas`, `pyarrow`, `polars`, `modin`, `cudf`,
                `pyspark.sql` or `sqlframe`.
        kwargs: Extra keyword arguments which are passed to the native parquet reader.
            For example, you could use
            `nw.scan_parquet('file.parquet', backend=pd, engine='pyarrow')`.
    r‰   )r¯   r—  Úscan_parquetr¡  s      rƒ   r¨  r¨  3  s%   € ôF ”d×'Ñ'¨ÑJ¸ÐJÀ6ÑJÓKÐKr…   )Tr!   r"   r#   r$   r   r%   r&   r'   r(   r)   r>   r*   r+   r,   r   r-   r.   r/   r0   r1   r    r2   r3   rB   rC   r4   r5   r6   r7   r8   r9   r:   r;   r<   rN  rp  rt  r…  rQ  r@   r  rD   rE   rE   r   rU  r‚  r‹   r�   r•   r  r™   r   rP   r   rZ  r\  rc  rz  r   r   r   r   r   re  rv  rg  r^  rx  rL  rš  rW  r   r¦  r¤  r¨  rF   rF   rA   ri  rk  r2  rQ   rŠ  )r  zNwDataFrame[IntoDataFrameT]rÀ   úDataFrame[IntoDataFrameT])r  zNwLazyFrame[IntoLazyFrameT]rÀ   úLazyFrame[IntoLazyFrameT])r  zNwSeries[IntoSeriesT]rÀ   úSeries[IntoSeriesT])r  r  rÀ   r>   )r  zZNwDataFrame[IntoDataFrameT] | NwLazyFrame[IntoLazyFrameT] | NwSeries[IntoSeriesT] | NwExprrÀ   zRDataFrame[IntoDataFrameT] | LazyFrame[IntoLazyFrameT] | Series[IntoSeriesT] | Expr)r  rN   r  úUnpack[OnlySeries]rÀ   rN   )r  rN   r  úUnpack[AllowSeries]rÀ   rN   )r  rG   r  úUnpack[ExcludeSeries]rÀ   rG   )r  rM   r  úUnpack[AllowLazy]rÀ   rM   )r  rH   r  r®  rÀ   r©  )r  rL   r  r¬  rÀ   r«  )r  rL   r  r­  rÀ   r«  )r  rJ   r  r¯  rÀ   rª  )r  zIntoDataFrameT | IntoSeriesTr  r­  rÀ   z/DataFrame[IntoDataFrameT] | Series[IntoSeriesT])r  z-IntoDataFrameT | IntoLazyFrameT | IntoSeriesTr  zUnpack[AllowAny]rÀ   úKDataFrame[IntoDataFrameT] | LazyFrame[IntoLazyFrameT] | Series[IntoSeriesT])r  rr   r  zUnpack[PassThroughUnknown]rÀ   rr   )r  r   r&  rÌ   r'  rÌ   r(  rÌ   r)  úbool | NonerÀ   r   )r  zJIntoLazyFrameT | IntoDataFrameT | IntoSeriesT | IntoFrame | IntoSeries | Tr&  rÌ   r'  rÌ   r(  rÌ   r)  r±  rÀ   zOLazyFrame[IntoLazyFrameT] | DataFrame[IntoDataFrameT] | Series[IntoSeriesT] | T)r1  r©  r&  rË   rÀ   rH   )r1  rª  r&  rË   rÀ   rJ   )r1  r«  r&  rË   rÀ   rL   )r1  r   r&  rÌ   rÀ   r   )r1  r°  r&  rÌ   rÀ   z3IntoDataFrameT | IntoLazyFrameT | IntoSeriesT | Anyr¢   )rH  zCallable[..., Any] | Noner&  rÌ   r'  rÌ   r(  rÌ   r)  r±  rÀ   rK  )rÀ   r>   )rS  zstr | Iterable[str]rÀ   r>   )rX  zint | Sequence[int]rÀ   r>   )rD  rl   rè   rù   rÀ   r>   )r`  rÉ   rÀ   r>   )rm  úIntoExpr | Iterable[IntoExpr]rÀ   r>   )rm  r²  rõ   rÌ   rÀ   r>   )
rm  r²  r€  rj   r}  rÉ   rõ   rÌ   rÀ   r>   )rƒ  rÉ   rB  rj   rÀ   r>   )rm  r²  r€  rj   rÀ   r>   )r˜  r²  rÀ   r‡  )
r¬   rÉ   rç   r   rè   rù   r‰   rÃ   rÀ   rÈ   rÂ   )r’   rÄ   r“   z#Mapping[str, DType] | Schema | Noner‰   rÆ   rÀ   rŠ   rÇ   )r¢  rÉ   r‰   rÃ   rÝ   r   rÀ   rŠ   )r¢  rÉ   r‰   zIntoBackend[Backend]rÝ   r   rÀ   rÊ   )¶Ú
__future__r   Ú	functoolsr   Útypingr   r   r   r	   r
   r   r   Únarwhalsr8  r   r   r—  Únarwhals._exceptionsr   Únarwhals._expression_parsingr   r   Únarwhals._typing_compatr   r   Únarwhals._utilsr   r   r   r   r   r   r   r   r   r   r   Únarwhals.dataframer   rÐ   r    rß   Únarwhals.dtypesr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Únarwhals.exceptionsr=   Únarwhals.exprr>   r  Únarwhals.functionsr?   r@   rA   Únarwhals.schemarB   r  Únarwhals.seriesrC   rú   Únarwhals.stable.v2rD   rE   rF   Únarwhals.stable.v2.typingrG   rH   rI   rJ   rK   rL   rM   rN   Únarwhals.translaterO   rP   rQ   Úcollections.abcrR   rS   rT   Útyping_extensionsrU   rV   rW   Únarwhals._translaterX   rY   rZ   r[   r\   r]   r^   Únarwhals._typingr_   r`   ra   rb   rc   rd   re   rf   rg   Únarwhals.stable.v2.dtypesrh   Únarwhals.typingri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rt   ru   r¯   r  r2  rL  rN  rQ  rU  rW  rZ  r\  r^  rc  re  rg  ri  rk  rp  rt  rv  rx  rz  r  r‚  r…  r‡  r�  rŠ  rš  r‹   r�   r•   rû   r™   r   r¤  r¦  r¨  Ú__all__r£   r…   rƒ   ú<module>rÌ     s5  ðÞ "å ß O× OÑ Oã ß 2Ý .ß ;ß 9÷÷ ÷ ñ ÷ R÷÷ ÷ ÷ ÷ ÷ ÷ ó õ< 8Ý (ß FÑ FÝ .Ý .ß >Ñ >÷	÷ 	ó 	÷ UÑ Táß;Ñ;ç9Ñ9÷÷ ñ ÷÷ ñ ÷ HÝ/÷
÷ 
õ 
ñ 	�˜SÔ!€AÙ�#‹€AÙ�‹€Aô}/�˜NÑ+ô }/ô@F�˜NÑ+ô Fô C<ˆX�kÑ"ô C<ôL	
ˆ6ô 	
ô!ˆXô !ð 
Ú Ró 
Ø RØ	Ú Ró 
Ø RØ	Ú Fó 
Ø FØ	Ú (ó 
Ø (ðð
ðð
 Xóð" 
Ú Só 
Ø SØ	Ú Tó 
Ø TØ	ðØðØ'<ðàòó 
ðð 
Ú Xó 
Ø XØ	ð$Ø!ð$Ø+@ð$àò$ó 
ð$ð 
ðØðØ(:ðàòó 
ðð 
ðØðØ(;ðàòó 
ðð 
ð$Ø!ð$Ø+<ð$àò$ó 
ð$ð 
ð:Ø/ð:Ø9Lð:à4ò:ó 
ð:ð 
ðVØ@ðVØJZðVàPòVó 
ðVð 
Ú Oó 
Ø Oà	ðØðð ðð ð	ð
 ðð ðð 	òó 
ðð  ØØØ $ñ9ðð9ð ð9ð ð9ð ð9ð ð9ð Uó9ðx 
àRUñØ.ðØAOðàòó 
ðð 
àRUñØ.ðØAOðàòó 
ðð 
àLOñØ(ðØ;Iðàòó 
ðð 
Ú Fó 
Ø Fð ñDððDð
 ðDð 9óDð. '+ðUð ØØØ $ñUØ
#ðUð ðUð ð	Uð
 ðUð ðUð óUóp ó
&ó*ó
(ó ô
,ó	(ó	(ó	)ó+ó	(ó
1óLó Ló 2ó
1ó
1ð  Øñ	Ø(ðàðð ðð ð	ð
 
óó02ó7ô 3ˆ4�9Š9ô 3ô4ˆ4�9Š9�dô 4ó2ð6 #ðNØ
ðNàðNð ðNð
 'ðNð óNð4FØ ðFØ.GðFàóFð* 37ðEð 15ñ	EØ
ðEà/ðEð .ð	Eð
 óEðD ×(Ò(€
ˆEÓ (ð
 CGðFØ
ðFà?ðFð 'ð	Fð
 óFð:HØðHØ6ðHØBEðHàóHð*HØðHØ1ðHØ=@ðHàóHð0LØðLØ6ðLØBEðLàóLð*#LØð#LØ1ð#LØ=@ð#Làó#LòLU�r…   