o
    Lh?                     @  sv  d dl mZ d dlmZ 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 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 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(m)Z) d dl*m+Z+m,Z, e	rd dlmZm-Z- d dl.m/Z/m0Z0 d dlmZm1Z1 d dl2m3Z3 d dlmZm4Z4m5Z5m6Z6 d dl7m8Z8m9Z9 d dl&m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG g dZHG dd deZIG dd deeee f ZJG dd deJee f eee f ZKG dd deKe!e#f ee!e#f ZLG dd deJee%f eee%f ZMG dd  d e'e ee ZNG d!d" d"eNe" ee" ZOG d#d$ d$eNe$ ee$ ZPG d%d& d&eOe" ee" ee" ZQG d'd( d(eOe" ee" ee" ZRG d)d* d*eOe" ee" ee" ZSG d+d, d,eNe ee ee ZTG d-d. d.eOe" eTe" ee" ZUG d/d0 d0ePe$ eTe$ ee$ ZVG d1d2 d2eOe" ee" ee" ZWG d3d4 d4eOe" ee" ee" ZXd5S )6    )annotations)Mapping)partial)methodcaller)TYPE_CHECKINGAnyCallableGenericLiteralProtocol)CatNamespaceDateTimeNamespaceListNamespaceNameNamespaceStringNamespaceStructNamespace)CompliantColumn)CompliantNamespace)	AliasName
AliasNamesCompliantExprT_coCompliantFrameTCompliantLazyFrameTCompliantSeriesOrNativeExprT_coEagerDataFrameT
EagerExprTEagerSeriesT	LazyExprTNativeExprT)_StoresCompliantqualified_type_name
zip_strict)is_numpy_arrayis_numpy_scalar)r   Sequence)SelfTypeIs)r   EagerNamespace)CompliantSeries)r   	EvalNames
EvalSeriesScalarKwargs)ExprKindExprMetadata)ImplementationVersion_LimitedContext)
ClosedIntervalFillNullStrategy	IntoDTypeModeKeepStrategyNonNestedLiteralNumericLiteral
RankMethodRollingInterpolationMethodTemporalLiteralTimeUnit)CompliantExprDepthTrackingExpr	EagerExprLazyExpr
NativeExprc                   @  sV   e Zd ZdZdddZdd
dZdddZdddZdddZdddZ	dddZ
dS )r?   a	  An `Expr`-like object from a package with [Lazy-only support](https://narwhals-dev.github.io/narwhals/extending/#levels-of-support).

    Protocol members are chosen *purely* for matching statically - as they
    are common to all currently supported packages.
    argsr   kwdsreturnc                 O     d S N )selfr@   rA   rE   rE   Y/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/narwhals/_compliant/expr.pybetweenC       zNativeExpr.betweenvaluer%   c                C  rC   rD   rE   rF   rJ   rE   rE   rG   __gt__I   rI   zNativeExpr.__gt__c                C  rC   rD   rE   rK   rE   rE   rG   __lt__J   rI   zNativeExpr.__lt__c                C  rC   rD   rE   rK   rE   rE   rG   __ge__K   rI   zNativeExpr.__ge__c                C  rC   rD   rE   rK   rE   rE   rG   __le__L   rI   zNativeExpr.__le__c                C  rC   rD   rE   rK   rE   rE   rG   __eq__M   rI   zNativeExpr.__eq__c                C  rC   rD   rE   rK   rE   rE   rG   __ne__N   rI   zNativeExpr.__ne__N)r@   r   rA   r   rB   r   )rJ   r   rB   r%   )__name__
__module____qualname____doc__rH   rL   rM   rN   rO   rP   rQ   rE   rE   rE   rG   r?   <   s    





r?   c                   @  sV  e Zd ZU ded< ded< ded< ded< ddddZdeddZdfddZedgddZedhddZ	e
did!d"Zdjd#d$Zdjd%d&Zdjd'd(Zdjd)d*Zdjd+d,Zdjd-d.Zdjd/d0Zdjd1d2Zdjd3d4Zdjd5d6Zdkd8d9Zdkd:d;Zdjd<d=Zdjd>d?Zdjd@dAZdldEdFZdmdKdLZdndSdTZdodWdXZdpdYdZZdqd^d_Z e!drdadbZ"dcS )sr;   r.   _implementationEvalNames[CompliantFrameT]_evaluate_output_namesAliasNames | None_alias_output_nameszExprMetadata | None	_metadatadfr   rB   )Sequence[CompliantSeriesOrNativeExprT_co]c                 C  rC   rD   rE   rF   r\   rE   rE   rG   __call__Y      zCompliantExpr.__call__Nonec                 C  rC   rD   rE   rF   rE   rE   rG   __narwhals_expr__\   rI   zCompliantExpr.__narwhals_expr__)CompliantNamespace[CompliantFrameT, Self]c                 C  rC   rD   rE   rb   rE   rE   rG   __narwhals_namespace__]   rI   z$CompliantExpr.__narwhals_namespace__evaluate_column_namescontextr0   r%   c               C  rC   rD   rE   )clsrf   rg   rE   rE   rG   from_column_names^   s   zCompliantExpr.from_column_namescolumn_indicesintc                G  rC   rD   rE   )rh   rg   rj   rE   rE   rG   from_column_indicesf      z!CompliantExpr.from_column_indicesindicesSequence[int]c                  s   d fdd}|S )Nr\   r   rB   Sequence[str]c                   s   | j   fddD S )Nc                   s   g | ]} | qS rE   rE   ).0icolumn_namesrE   rG   
<listcomp>n       zACompliantExpr._eval_names_indices.<locals>.fn.<locals>.<listcomp>)columnsr\   rn   rs   rG   fnl   s   z-CompliantExpr._eval_names_indices.<locals>.fn)r\   r   rB   rp   rE   )rn   rz   rE   ry   rG   _eval_names_indicesj   s   z!CompliantExpr._eval_names_indicesc                 C  rC   rD   rE   rb   rE   rE   rG   allr   rI   zCompliantExpr.allc                 C  rC   rD   rE   rb   rE   rE   rG   anys   rI   zCompliantExpr.anyc                 C  rC   rD   rE   rb   rE   rE   rG   countt   rI   zCompliantExpr.countc                 C  rC   rD   rE   rb   rE   rE   rG   minu   rI   zCompliantExpr.minc                 C  rC   rD   rE   rb   rE   rE   rG   maxv   rI   zCompliantExpr.maxc                 C  rC   rD   rE   rb   rE   rE   rG   meanw   rI   zCompliantExpr.meanc                 C  rC   rD   rE   rb   rE   rE   rG   sumx   rI   zCompliantExpr.sumc                 C  rC   rD   rE   rb   rE   rE   rG   mediany   rI   zCompliantExpr.medianc                 C  rC   rD   rE   rb   rE   rE   rG   skewz   rI   zCompliantExpr.skewc                 C  rC   rD   rE   rb   rE   rE   rG   kurtosis{   rI   zCompliantExpr.kurtosisddofc                C  rC   rD   rE   rF   r   rE   rE   rG   std|   rI   zCompliantExpr.stdc                C  rC   rD   rE   r   rE   rE   rG   var}   rI   zCompliantExpr.varc                 C  rC   rD   rE   rb   rE   rE   rG   n_unique~   rI   zCompliantExpr.n_uniquec                 C  rC   rD   rE   rb   rE   rE   rG   
null_count   rI   zCompliantExpr.null_countc                 C  rC   rD   rE   rb   rE   rE   rG   len   rI   zCompliantExpr.lenpartition_byrp   order_byc                 C  rC   rD   rE   )rF   r   r   rE   rE   rG   over   rI   zCompliantExpr.overquantilefloatinterpolationr8   c                 C  rC   rD   rE   rF   r   r   rE   rE   rG   r      r`   zCompliantExpr.quantilefunction9Callable[[CompliantSeries[Any]], CompliantExpr[Any, Any]]return_dtypeIntoDType | Nonereturns_scalarboolc                C  rC   rD   rE   )rF   r   r   r   rE   rE   rG   map_batches   s   zCompliantExpr.map_batcheskind/Literal[ExprKind.AGGREGATION, ExprKind.LITERAL]c                 C  rC   rD   rE   )rF   r   rE   rE   rG   	broadcast   r`   zCompliantExpr.broadcastc                 C  s   | j dusJ | j j S )a	  Return `True` for multi-output aggregations without names.

        For example, column `'a'` only appears in the output as a grouping key:

            df.group_by('a').agg(nw.all().sum())

        It does not get included in:

            nw.all().sum().
        N)r[   expansion_kindis_multi_unnamedrb   rE   rE   rG   _is_multi_output_unnamed   s   z&CompliantExpr._is_multi_output_unnamedrF   #CompliantExpr[CompliantFrameT, Any]framec                C  s    |  |}| j }r||S |S rD   )rX   rZ   )rF   r   namesaliasrE   rE   rG   _evaluate_aliases   s   
zCompliantExpr._evaluate_aliasesNameNamespace[Self]c                 C  rC   rD   rE   rb   rE   rE   rG   name   s   zCompliantExpr.nameN)r\   r   rB   r]   rB   ra   )rB   rd   )rf   rW   rg   r0   rB   r%   )rj   rk   rg   r0   rB   r%   )rn   ro   rB   rW   rB   r%   r   rk   rB   r%   )r   rp   r   rp   rB   r%   r   r   r   r8   rB   r%   )r   r   r   r   r   r   rB   r%   r   r   rB   r%   rB   r   )rF   r   r   r   rB   rp   )rB   r   )#rR   rS   rT   __annotations__r_   rc   re   classmethodri   rl   staticmethodr{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   propertyr   rE   rE   rE   rG   r;   Q   sJ   
 























r;   c                   @  sF   e Zd ZU ded< ded< edddddZdddZdddZdS )r<   rk   _depthstr_function_name )function_namerh   
type[Self]rf   rW   rg   r0   r   rB   r%   c               C  rC   rD   rE   )rh   rf   rg   r   rE   rE   rG   ri      s   z#DepthTrackingExpr.from_column_namesr   c                 C  s
   | j dk S )at  Check if expr is elementary.

        Examples:
            - nw.col('a').mean()  # depth 1
            - nw.mean('a')  # depth 1
            - nw.len()  # depth 0

        as opposed to, say

            - nw.col('a').filter(nw.col('b')>nw.col('c')).max()

        Elementary expressions are the only ones supported properly in
        pandas, PyArrow, and Dask.
           )r   rb   rE   rE   rG   _is_elementary   s   
z DepthTrackingExpr._is_elementaryc                 C  s    t | j d| j d| j dS )Nz(depth=z, function_name=))typerR   r   r   rb   rE   rE   rG   __repr__   s    zDepthTrackingExpr.__repr__N)
rh   r   rf   rW   rg   r0   r   r   rB   r%   r   )rB   r   )rR   rS   rT   r   r   ri   r   r   rE   rE   rE   rG   r<      s   
 
	r<   c                   @  s  e Zd ZU ded< ded< ddd=ddZd>ddZd?d d!Zd@d"d#ZedddAd(d)Z	edBd,d-Z
dCd0d1Zd2dd3dDd9d:Zd2d;dEd=d>ZedFdBdCZdGdDdEZdHdHdIZdIdLdMZdJdPdQZdKdTdUZdKdVdWZdLdXdYZdLdZd[ZdLd\d]ZdLd^d_ZdLd`daZdLdbdcZdMdedfZdMdgdhZdLdidjZdLdkdlZdLdmdnZdLdodpZ dLdqdrZ!dLdsdtZ"dLdudvZ#dLdwdxZ$dLdydzZ%dLd{d|Z&dLd}d~Z'dLddZ(dNddZ)dNddZ*dNddZ+dNddZ,dNddZ-dNddZ.dNddZ/dOddZ0dOddZ1dNddZ2dNddZ3dNddZ4dNddZ5dNddZ6dNddZ7dNddZ8dNddZ9dPddZ:dNddZ;dNddZ<dQddZ=dRddZ>dSddZ?dNddZ@dTddZAdNddZBdUddȄZCdVdd̄ZDdNdd΄ZEdNddЄZFdNdd҄ZGdWdd؄ZHdXddۄZIdNdd݄ZJdNdd߄ZKdNddZLdYddZMdZddZNdZddZOd[ddZPdNddZQd\ddZRd]ddZSdNddZTd^ddZUd_dd ZVd^ddZWd_ddZXd`ddZYdZd	d
ZZdaddZ[daddZ\daddZ]daddZ^daddZ_dbddZ`dcddZadNddZbdNdd Zcddd#d$Zdded)d*Zeefdfd,d-Zgefdgd/d0Zhefdhd2d3Ziefdid5d6Zjefdjd8d9Zkefdkd;d<ZldS (l  r=   )EvalSeries[EagerDataFrameT, EagerSeriesT]_callr+   _scalar_kwargsNscalar_kwargscalldepthrk   r   r   evaluate_output_namesEvalNames[EagerDataFrameT]alias_output_namesrY   implementationr.   versionr/   r   ScalarKwargs | NonerB   ra   c          	      C  rC   rD   rE   )	rF   r   r   r   r   r   r   r   r   rE   rE   rG   __init__   s   zEagerExpr.__init__r\   r   Sequence[EagerSeriesT]c                 C  
   |  |S rD   )r   r^   rE   rE   rG   r_         
zEagerExpr.__call__=EagerNamespace[EagerDataFrameT, EagerSeriesT, Self, Any, Any]c                 C  rC   rD   rE   rb   rE   rE   rG   re      r`   z EagerExpr.__narwhals_namespace__c                 C  rC   rD   rE   rb   rE   rE   rG   rc      rI   zEagerExpr.__narwhals_expr__funcrg   r0   r%   c             
   C  s   | ||||||j |j|dS )Nr   r   r   r   r   r   r   rV   _version)rh   r   r   r   r   r   rg   r   rE   rE   rG   _from_callable   s   zEagerExpr._from_callableseriesr   c              	     s*   |  fdddd fddd  j  jdS )Nc                   s    gS rD   rE   _dfr   rE   rG   <lambda>  s    z(EagerExpr._from_series.<locals>.<lambda>r   r   c                   s    j gS rD   r   r   r   rE   rG   r     s    )r   r   r   r   r   r   r   )rh   r   rE   r   rG   _from_series   s   

zEagerExpr._from_series
alias_nameAliasName | Nonec             
     sj   j  d u r	d nd ur fddn fdddfdd	}j|jjjjjjd
S )Nc                       fdd| D S )Nc                      g | ]} |qS rE   rE   rq   xr   rE   rG   ru     s    HEagerExpr._with_alias_output_names.<locals>.<lambda>.<locals>.<listcomp>rE   output_names)r   current_alias_output_namesrE   rG   r     s   
 z4EagerExpr._with_alias_output_names.<locals>.<lambda>c                       fdd| D S )Nc                   r   rE   rE   r   r   rE   rG   ru     rv   r   rE   r   r   rE   rG   r         r\   r   rB   list[EagerSeriesT]c                   sD    rdd t |  | D S dd t | | D S )Nc                 S     g | ]	\}}| |qS rE   r   rq   r   r   rE   rE   rG   ru         zDEagerExpr._with_alias_output_names.<locals>.func.<locals>.<listcomp>c                 S  r   rE   r   r   rE   rE   rG   ru   "  r   )r!   rX   rx   )r   rF   rE   rG   r     s   z0EagerExpr._with_alias_output_names.<locals>.funcr   r\   r   rB   r   )rZ   	__class__r   r   rX   rV   r   r   )rF   r   r   rE   )r   r   r   rF   rG   _with_alias_output_names  s$   
z"EagerExpr._with_alias_output_namesFr   r   method_namer   r   expressifiable_argsr   c             	   K  sF   t | j|||pi |d}| j|| jd | j d| | j| j|| dS )a  Reuse Series implementation for expression.

        If Series.foo is already defined, and we'd like Expr.foo to be the same, we can
        leverage this method to do that for us.

        Arguments:
            method_name: name of method.
            returns_scalar: whether the Series version returns a scalar. In this case,
                the expression version should return a 1-row Series.
            scalar_kwargs: non-expressifiable args which we may need to reuse in `agg` or `over`,
                such as `ddof` for `std` and `var`.
            expressifiable_args: keyword arguments to pass to function, which may
                be expressifiable (e.g. `nw.col('a').is_between(3, nw.col('b')))`).
        )r   r   r   r      ->r   r   r   r   r   rg   )r   _reuse_series_innerr   r   r   rX   rZ   )rF   r   r   r   r   r   rE   rE   rG   _reuse_series2  s    zEagerExpr._reuse_seriesr   dict[str, Any]c                C  s   i S rD   rE   )rF   r   rE   rE   rG   _reuse_series_extra_kwargs[  rm   z$EagerExpr._reuse_series_extra_kwargsobj
Self | AnyTypeIs[Self]c                 C  s
   t |dS )Nrc   )hasattr)rh   r   rE   rE   rG   _is_expr`  s   
zEagerExpr._is_exprc          
        s   i | fdd|  D }t|fi jd|fdd D } }dd |D t|krKd| dd	d |D  }	t|	|S )
Nc                   *   i | ]\}}| |r |n|qS rE   r   _evaluate_exprrq   r   rJ   r\   rF   rE   rG   
<dictcomp>o      z1EagerExpr._reuse_series_inner.<locals>.<dictcomp>r   c                   s&   g | ]}r|  |n |qS rE   )_from_scalarrq   r   )methodr   rE   rG   ru   y      z1EagerExpr._reuse_series_inner.<locals>.<listcomp>c                 S     g | ]}|j qS rE   r   rq   srE   rE   rG   ru   ~  r   ztSafety assertion failed, please report a bug to https://github.com/narwhals-dev/narwhals/issues
Expression aliases: z
Series names: c                 S  r  rE   r   r  rE   rE   rG   ru     r   )itemsr   r   r   listAssertionError)
rF   r\   r   r   r   r   kwargsoutaliasesmsgrE   )r\   r	  r   rF   rG   r   d  s6   	

zEagerExpr._reuse_series_innerseries_namespace5Literal['cat', 'dt', 'list', 'name', 'str', 'struct']c              	     sJ   d fdd}j |jd j d d	 jjjd
S )a  Reuse Series implementation for expression.

        Just like `_reuse_series`, but for e.g. `Expr.dt.foo` instead
        of `Expr.foo`.

        Arguments:
            series_namespace: The Series namespace.
            method_name: name of method, within `series_namespace`.
            expressifiable_args: keyword arguments to pass to function, which may
                be expressifiable (e.g. `nw.col('a').str.replace('abc', nw.col('b')))`).
        r\   r   rB   r   c                   s2    fdd  D fdd D S )Nc                   r   rE   r  r  r  rE   rG   r    r  zDEagerExpr._reuse_series_namespace.<locals>.inner.<locals>.<dictcomp>c                   s&   g | ]}t t |d i  qS )rE   )getattrr  )r  r   r  rE   rG   ru     r
  zDEagerExpr._reuse_series_namespace.<locals>.inner.<locals>.<listcomp>)r  rx   r   r   rF   r  )r\   r  rG   inner  s   z0EagerExpr._reuse_series_namespace.<locals>.innerr   r   .r   Nr   )r   r   r   rX   rZ   r   )rF   r  r   r   r  rE   r  rG   _reuse_series_namespace  s   
z!EagerExpr._reuse_series_namespacer   r   c              
     s8   d fdd}t  | j j j j j j jdS )	Nr\   r   rB   r   c                   s&   g } | D ]
}d|_ || q|S )NT)
_broadcastappend)r\   resultsresultrb   rE   rG   r     s
   z!EagerExpr.broadcast.<locals>.funcr   r   )r   r   r   rX   rZ   rV   r   r   )rF   r   r   rE   rb   rG   r     s   zEagerExpr.broadcastdtyper3   c                 C     | j d|dS )Ncast)r   r   )rF   r   rE   rE   rG   r"       zEagerExpr.castoperatorotherc                C  s   | j ||dS )Nr&  r#  rF   r%  r&  rE   rE   rG   _with_binary  r$  zEagerExpr._with_binaryc                C  s   |  dj||dS )Nliteralr'  )r   r   r(  rE   rE   rG   _with_binary_right  s   zEagerExpr._with_binary_rightc                 C     |  d|S )NrP   r)  rF   r&  rE   rE   rG   rP        zEagerExpr.__eq__c                 C  r,  )NrQ   r-  r.  rE   rE   rG   rQ     r/  zEagerExpr.__ne__c                 C  r,  )NrN   r-  r.  rE   rE   rG   rN     r/  zEagerExpr.__ge__c                 C  r,  )NrL   r-  r.  rE   rE   rG   rL     r/  zEagerExpr.__gt__c                 C  r,  )NrO   r-  r.  rE   rE   rG   rO     r/  zEagerExpr.__le__c                 C  r,  )NrM   r-  r.  rE   rE   rG   rM     r/  zEagerExpr.__lt__Self | bool | Anyc                 C  r,  )N__and__r-  r.  rE   rE   rG   r1    r/  zEagerExpr.__and__c                 C  r,  )N__or__r-  r.  rE   rE   rG   r2    r/  zEagerExpr.__or__c                 C  r,  )N__add__r-  r.  rE   rE   rG   r3    r/  zEagerExpr.__add__c                 C  r,  )N__sub__r-  r.  rE   rE   rG   r4    r/  zEagerExpr.__sub__c                 C  r,  )N__rsub__r+  r.  rE   rE   rG   r5    r/  zEagerExpr.__rsub__c                 C  r,  )N__mul__r-  r.  rE   rE   rG   r7    r/  zEagerExpr.__mul__c                 C  r,  )N__truediv__r-  r.  rE   rE   rG   r8    r/  zEagerExpr.__truediv__c                 C  r,  )N__rtruediv__r6  r.  rE   rE   rG   r9    r/  zEagerExpr.__rtruediv__c                 C  r,  )N__floordiv__r-  r.  rE   rE   rG   r:    r/  zEagerExpr.__floordiv__c                 C  r,  )N__rfloordiv__r6  r.  rE   rE   rG   r;    r/  zEagerExpr.__rfloordiv__c                 C  r,  )N__pow__r-  r.  rE   rE   rG   r<    r/  zEagerExpr.__pow__c                 C  r,  )N__rpow__r6  r.  rE   rE   rG   r=    r/  zEagerExpr.__rpow__c                 C  r,  )N__mod__r-  r.  rE   rE   rG   r>    r/  zEagerExpr.__mod__c                 C  r,  )N__rmod__r6  r.  rE   rE   rG   r?    r/  zEagerExpr.__rmod__c                 C  
   |  dS )N
__invert__r#  rb   rE   rE   rG   rA  	  r   zEagerExpr.__invert__c                 C     | j dddS )Nr   Tr   r#  rb   rE   rE   rG   r     r$  zEagerExpr.null_countc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r     r$  zEagerExpr.n_uniquec                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r     r$  zEagerExpr.sumc                 C  rB  )Nr~   Tr   r#  rb   rE   rE   rG   r~     r$  zEagerExpr.countc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r     r$  zEagerExpr.meanc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r     r$  zEagerExpr.medianr   c                C     | j ddd|idS )Nr   Tr   r   r#  r   rE   rE   rG   r        
zEagerExpr.stdc                C  rC  )Nr   Tr   r   r#  r   rE   rE   rG   r   $  rD  zEagerExpr.varc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r   )  r$  zEagerExpr.skewc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r   ,  r$  zEagerExpr.kurtosisc                 C  rB  )Nr}   Tr   r#  rb   rE   rE   rG   r}   /  r$  zEagerExpr.anyc                 C  rB  )Nr|   Tr   r#  rb   rE   rE   rG   r|   2  r$  zEagerExpr.allc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r   5  r$  zEagerExpr.maxc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r   8  r$  zEagerExpr.minc                 C  rB  )Narg_minTr   r#  rb   rE   rE   rG   rE  ;  r$  zEagerExpr.arg_minc                 C  rB  )Narg_maxTr   r#  rb   rE   rE   rG   rF  >  r$  zEagerExpr.arg_maxlower_bound.Self | NumericLiteral | TemporalLiteral | Noneupper_boundc                 C     | j d||dS )Nclip)rG  rI  r#  )rF   rG  rI  rE   rE   rG   rK  C  s   zEagerExpr.clipc                 C  r@  )Nis_nullr#  rb   rE   rE   rG   rL  L  r   zEagerExpr.is_nullc                 C  r@  )Nis_nanr#  rb   rE   rE   rG   rM  O  r   zEagerExpr.is_nanrJ   float | Nonec                 C  r!  )Nfill_nan)rJ   r#  rK   rE   rE   rG   rO  R  r$  zEagerExpr.fill_nanSelf | NonNestedLiteralstrategyFillNullStrategy | Nonelimit
int | Nonec                 C  s   | j d|||ddS )N	fill_null)rQ  rS  )rJ   r   r#  )rF   rJ   rQ  rS  rE   rE   rG   rU  U  s   zEagerExpr.fill_nullc                 C  r!  )Nis_inr'  r#  r.  rE   rE   rG   rV  _  r$  zEagerExpr.is_inc                 C  r@  )Narg_truer#  rb   rE   rE   rG   rW  b  r   zEagerExpr.arg_true
predicatesc                 G  s&   |   }|j|ddi}| jd|dS )Nignore_nullsFfilter)	predicate)re   all_horizontalr   )rF   rX  plxr[  rE   rE   rG   rZ  e  s   zEagerExpr.filterc                 C  r@  )N
drop_nullsr#  rb   rE   rE   rG   r^  j  r   zEagerExpr.drop_nullsold!Sequence[Any] | Mapping[Any, Any]newSequence[Any]r   r   c                C     | j d|||dS )Nreplace_strict)r_  ra  r   r#  )rF   r_  ra  r   rE   rE   rG   rd  m  s   zEagerExpr.replace_strict
descending
nulls_lastc                C  rJ  )Nsort)re  rf  r#  )rF   re  rf  rE   rE   rG   rg  x     zEagerExpr.sortc                 C  r@  )Nabsr#  rb   rE   rE   rG   ri  {  r   zEagerExpr.absc                 C  rB  )NuniqueF)maintain_orderr#  rb   rE   rE   rG   rj  ~  r$  zEagerExpr.uniquec                 C  r@  )Ndiffr#  rb   rE   rE   rG   rl    r   zEagerExpr.diffnfractionwith_replacementseedc                C     | j d||||dS )Nsample)rm  rn  ro  rp  r#  )rF   rm  rn  ro  rp  rE   rE   rG   rr    s   
zEagerExpr.sampler   c              
     s@   d	 fdd}t  fddjjj|jjjdS )
Nr   rp   rB   c                   $   t | dkrd|  }t| gS Nr   z:Expected function with single output, found output names: r   
ValueErrorr   r  r   rE   rG   r        
z+EagerExpr.alias.<locals>.alias_output_namesc                   r   )Nc                   s   g | ]}|  qS rE   r   r  r   rE   rG   ru         z5EagerExpr.alias.<locals>.<lambda>.<locals>.<listcomp>rE   rx   r   rF   rE   rG   r     ry  z!EagerExpr.alias.<locals>.<lambda>r   r   rp   rB   rp   )r   r   r   rX   rV   r   r   )rF   r   r   rE   rz  rG   r     s   zEagerExpr.aliasc                 C  r@  )N	is_uniquer#  rb   rE   rE   rG   r|    r   zEagerExpr.is_uniquec                 C  r@  )Nis_first_distinctr#  rb   rE   rE   rG   r}    r   zEagerExpr.is_first_distinctc                 C  r@  )Nis_last_distinctr#  rb   rE   rE   rG   r~    r   zEagerExpr.is_last_distinctr   r   r   r8   c                 C  s   | j dd||ddS )Nr   T)r   r   r   r#  r   rE   rE   rG   r     s
   zEagerExpr.quantilec                 C     | j dd|idS )Nheadrm  r   r#  rF   rm  rE   rE   rG   r       zEagerExpr.headc                 C  r  )Ntailrm  r   r#  r  rE   rE   rG   r    r  zEagerExpr.taildecimalsc                 C  r!  )Nround)r  r#  )rF   r  rE   rE   rG   r    r$  zEagerExpr.roundc                 C  rB  )Nr   Tr   r#  rb   rE   rE   rG   r     r$  zEagerExpr.lenoffsetc                 C  rJ  )Ngather_every)rm  r  r#  )rF   rm  r  rE   rE   rG   r    rh  zEagerExpr.gather_everykeepr4   c                C  r  )Nmoder  r   r#  )rF   r  rE   rE   rG   r    r  zEagerExpr.modec                 C  r@  )N	is_finiter#  rb   rE   rE   rG   r    r   zEagerExpr.is_finitewindow_sizemin_samplescenterc                C     | j d|||ddS )Nrolling_meanr  r  r  r   r#  rF   r  r  r  rE   rE   rG   r       zEagerExpr.rolling_meanc                C     | j d||||ddS )Nrolling_stdr  r  r  r   r   r#  rF   r  r  r  r   rE   rE   rG   r       zEagerExpr.rolling_stdc                C  r  )Nrolling_sumr  r   r#  r  rE   rE   rG   r    r  zEagerExpr.rolling_sumc                C  r  )Nrolling_varr  r   r#  r  rE   rE   rG   r    r  zEagerExpr.rolling_varr   Callable[[Any], Any]c                  s:   d
 fdd}j |jd jd jjd	S )Nr\   r   rB   r   c                   s4  | }dd |D }t fdd|D }|d |d }}t||}t|s,t|r?t|jd t  fdd|D }nt||jrOt dd |D }n|jt fdd|D }d urlt fd	d|D }t d
d |D }st	|rt
| dkr|d}	t||	 }
dt|
 d}t||S )Nc                 s  s    | ]}|j V  qd S rD   r   )rq   input_seriesrE   rE   rG   	<genexpr>  s    z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>c                 3  s    | ]} |V  qd S rD   rE   r  )r   rE   rG   r    s    r   )rg   c                 3  "    | ]\}} | |V  qd S rD   r   )rq   arrout_name)
from_numpyrE   rG   r  
       c                 s  s    | ]
\}}| |V  qd S rD   r   )rq   r   r  rE   rE   rG   r    s    c                 3  r  rD   r   )rq   valr  )from_scalarrE   rG   r    r  c                 3  s    | ]}|  V  qd S rD   )r"  r  )r   rE   rG   r    s    c                 s  s    | ]	}t |d kV  qdS )r   N)r   )rq   rrE   rE   rG   r    s    r   TzG`map_batches` with `returns_scalar=False` must return a Series; found 'zQ'.

If `returns_scalar` is set to `True`, a returned value can be a scalar value.)tupler!   r"   r#   r   r  
isinstancer   r  r}   r   indexr   r    	TypeError)r\   udf_series_inr   udf_series_out	_first_in
_first_outitr  is_scalar_result_idx_typer  r   r   r   rF   )r  r  rG   r      s0   

z#EagerExpr.map_batches.<locals>.funcr   z->map_batches)r   r   r   r   rg   r\   r   rB   r   )r   r   r   rX   rZ   )rF   r   r   r   r   rE   r  rG   r     s    zEagerExpr.map_batchesc                 C  r  )Nshiftrm  r   r#  r  rE   rE   rG   r  )  r  zEagerExpr.shiftreversec                C  r  )Ncum_sumr  r   r#  rF   r  rE   rE   rG   r  ,  r  zEagerExpr.cum_sumc                C  r  )N	cum_countr  r   r#  r  rE   rE   rG   r  /  r  zEagerExpr.cum_countc                C  r  )Ncum_minr  r   r#  r  rE   rE   rG   r  2  r  zEagerExpr.cum_minc                C  r  )Ncum_maxr  r   r#  r  rE   rE   rG   r  5  r  zEagerExpr.cum_maxc                C  r  )Ncum_prodr  r   r#  r  rE   rE   rG   r  8  r  zEagerExpr.cum_prodr	  r7   c                C  s   | j d||ddS )Nrank)r	  re  r   r#  )rF   r	  re  rE   rE   rG   r  ;  rD  zEagerExpr.rankbasec                 C  r!  )Nlog)r  r#  )rF   r  rE   rE   rG   r  @  r$  zEagerExpr.logc                 C  r@  )Nexpr#  rb   rE   rE   rG   r  C  r   zEagerExpr.expc                 C  r@  )Nsqrtr#  rb   rE   rE   rG   r  F  r   zEagerExpr.sqrtclosedr1   c                 C  rc  )N
is_between)rG  rI  r  r#  )rF   rG  rI  r  rE   rE   rG   r  I  s   zEagerExpr.is_betweenSelf | NumericLiteralabs_tolrel_tol
nans_equalc                C  rq  )Nis_close)r&  r  r  r  r#  )rF   r&  r  r  r  rE   rE   rG   r  P  s   zEagerExpr.is_closeEagerExprCatNamespace[Self]c                 C     t | S rD   )EagerExprCatNamespacerb   rE   rE   rG   cat`     zEagerExpr.cat EagerExprDateTimeNamespace[Self]c                 C  r  rD   )EagerExprDateTimeNamespacerb   rE   rE   rG   dtd  r  zEagerExpr.dtEagerExprListNamespace[Self]c                 C  r  rD   )EagerExprListNamespacerb   rE   rE   rG   r  h  r  zEagerExpr.listEagerExprNameNamespace[Self]c                 C  r  rD   )EagerExprNameNamespacerb   rE   rE   rG   r   l  r  zEagerExpr.nameEagerExprStringNamespace[Self]c                 C  r  rD   )EagerExprStringNamespacerb   rE   rE   rG   r   p  r  zEagerExpr.strEagerExprStructNamespace[Self]c                 C  r  rD   )EagerExprStructNamespacerb   rE   rE   rG   structt  r  zEagerExpr.struct)r   r   r   rk   r   r   r   r   r   rY   r   r.   r   r/   r   r   rB   ra   r  )rB   r   r   )r   r   r   rk   r   r   r   r   r   rY   rg   r0   r   r   rB   r%   )r   r   rB   r%   )r   r   rB   r%   )
r   r   r   r   r   r   r   r   rB   r%   )r   r   rB   r   )r   r   rB   r   )r\   r   r   r   r   r   r   r+   r   r   rB   r   )r  r  r   r   r   r   rB   r%   r   )r   r3   rB   r%   )r%  r   r&  r   rB   r%   )r&  r   rB   r%   )r&  r0  rB   r%   r   r   )rG  rH  rI  rH  rB   r%   )rJ   rN  rB   r%   )rJ   rP  rQ  rR  rS  rT  rB   r%   )r&  r   rB   r%   )rX  r%   rB   r%   )r_  r`  ra  rb  r   r   rB   r%   )re  r   rf  r   rB   r%   )
rm  rT  rn  rN  ro  r   rp  rT  rB   r%   r   r   rB   r%   r   )rm  rk   rB   r%   )r  rk   rB   r%   )rm  rk   r  rk   rB   r%   )r  r4   rB   r%   )r  rk   r  rk   r  r   rB   r%   )
r  rk   r  rk   r  r   r   rk   rB   r%   )r   r  r   r   r   r   rB   r%   )r  r   rB   r%   )r	  r7   re  r   rB   r%   )r  r   rB   r%   )rG  r   rI  r   r  r1   rB   r%   )
r&  r  r  r   r  r   r  r   rB   r%   )rB   r  )rB   r  )rB   r  )rB   r  )rB   r  )rB   r  )mrR   rS   rT   r   r   r_   re   rc   r   r   r   r   r   r   r   r   r  r   r"  r)  r+  rP   rQ   rN   rL   rO   rM   r1  r2  r3  r4  r5  r7  r8  r9  r:  r;  r<  r=  r>  r?  rA  r   r   r   r~   r   r   r   r   r   r   r}   r|   r   r   rE  rF  rK  rL  rM  rO  rU  rV  rW  rZ  r^  rd  rg  ri  rj  rl  rr  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  rE   rE   rE   rG   r=      s   
 
**#&	
	

0r=   c                   @  s.   e Zd ZdddZdd	d
ZedddZdS )r>   r   rY   rB   r%   c                C  rC   rD   rE   rF   r   rE   rE   rG   r   ~  rI   z!LazyExpr._with_alias_output_namesr   r   c                   s   d fdd}|  |S )Nr   rp   rB   c                   rs  rt  ru  rw  r   rE   rG   rz     rx  zLazyExpr.alias.<locals>.fnr{  )r   )rF   r   rz   rE   r   rG   r     s   
zLazyExpr.aliasLazyExprNameNamespace[Self]c                 C  r  rD   )LazyExprNameNamespacerb   rE   rE   rG   r     r  zLazyExpr.nameN)r   rY   rB   r%   r  )rB   r  )rR   rS   rT   r   r   r   r   rE   rE   rE   rG   r>   z  s
    

	r>   c                   @  s$   e Zd ZU ded< edddZdS )_ExprNamespacer   _compliant_exprrB   c                 C  s   | j S rD   r  rb   rE   rE   rG   	compliant  s   z_ExprNamespace.compliantNrB   r   )rR   rS   rT   r   r   r  rE   rE   rE   rG   r    s   
 r  c                   @     e Zd ZdddZdS )	EagerExprNamespaceexprr   rB   ra   c                C  
   || _ d S rD   r  rF   r  rE   rE   rG   r     r   zEagerExprNamespace.__init__N)r  r   rB   ra   rR   rS   rT   r   rE   rE   rE   rG   r        r  c                   @  r  )	LazyExprNamespacer  r   rB   ra   c                C  r  rD   r  r  rE   rE   rG   r     r   zLazyExprNamespace.__init__N)r  r   rB   ra   r  rE   rE   rE   rG   r    r  r  c                   @  s   e Zd ZdddZdS )r  rB   r   c                 C     | j ddS )Nr  get_categoriesr  r  rb   rE   rE   rG   r    r$  z$EagerExprCatNamespace.get_categoriesNrB   r   )rR   rS   rT   r  rE   rE   rE   rG   r        r  c                   @  s   e Zd Zd:ddZd;d	d
Zd<ddZd=ddZd>ddZd>ddZd>ddZ	d>ddZ
d>ddZd>ddZd>ddZd>dd Zd>d!d"Zd>d#d$Zd>d%d&Zd>d'd(Zd>d)d*Zd>d+d,Zd>d-d.Zd>d/d0Zd>d1d2Zd?d4d5Zd@d7d8Zd9S )Ar  formatr   rB   r   c                 C     | j jdd|dS )Nr  	to_stringr  r  rF   r  rE   rE   rG   r    r  z$EagerExprDateTimeNamespace.to_string	time_zone
str | Nonec                 C  r  )Nr  replace_time_zoner  r  rF   r  rE   rE   rG   r       z,EagerExprDateTimeNamespace.replace_time_zonec                 C  r  )Nr  convert_time_zoner  r  r  rE   rE   rG   r    r  z,EagerExprDateTimeNamespace.convert_time_zone	time_unitr:   c                 C  r  )Nr  	timestamp)r  r  )rF   r  rE   rE   rG   r    r  z$EagerExprDateTimeNamespace.timestampc                 C  r  )Nr  dater  rb   rE   rE   rG   r    r$  zEagerExprDateTimeNamespace.datec                 C  r  )Nr  yearr  rb   rE   rE   rG   r    r$  zEagerExprDateTimeNamespace.yearc                 C  r  )Nr  monthr  rb   rE   rE   rG   r    r$  z EagerExprDateTimeNamespace.monthc                 C  r  )Nr  dayr  rb   rE   rE   rG   r    r$  zEagerExprDateTimeNamespace.dayc                 C  r  )Nr  hourr  rb   rE   rE   rG   r     r$  zEagerExprDateTimeNamespace.hourc                 C  r  )Nr  minuter  rb   rE   rE   rG   r    r$  z!EagerExprDateTimeNamespace.minutec                 C  r  )Nr  secondr  rb   rE   rE   rG   r    r$  z!EagerExprDateTimeNamespace.secondc                 C  r  )Nr  millisecondr  rb   rE   rE   rG   r    r$  z&EagerExprDateTimeNamespace.millisecondc                 C  r  )Nr  microsecondr  rb   rE   rE   rG   r    r$  z&EagerExprDateTimeNamespace.microsecondc                 C  r  )Nr  
nanosecondr  rb   rE   rE   rG   r    r$  z%EagerExprDateTimeNamespace.nanosecondc                 C  r  )Nr  ordinal_dayr  rb   rE   rE   rG   r    r$  z&EagerExprDateTimeNamespace.ordinal_dayc                 C  r  )Nr  weekdayr  rb   rE   rE   rG   r    r$  z"EagerExprDateTimeNamespace.weekdayc                 C  r  )Nr  total_minutesr  rb   rE   rE   rG   r    r$  z(EagerExprDateTimeNamespace.total_minutesc                 C  r  )Nr  total_secondsr  rb   rE   rE   rG   r	    r$  z(EagerExprDateTimeNamespace.total_secondsc                 C  r  )Nr  total_millisecondsr  rb   rE   rE   rG   r
    r$  z-EagerExprDateTimeNamespace.total_millisecondsc                 C  r  )Nr  total_microsecondsr  rb   rE   rE   rG   r    r$  z-EagerExprDateTimeNamespace.total_microsecondsc                 C  r  )Nr  total_nanosecondsr  rb   rE   rE   rG   r    r$  z,EagerExprDateTimeNamespace.total_nanosecondseveryc                 C  r  )Nr  truncate)r  r  )rF   r  rE   rE   rG   r    r  z#EagerExprDateTimeNamespace.truncatebyc                 C  r  )Nr  	offset_byr  r  rF   r  rE   rE   rG   r    r  z$EagerExprDateTimeNamespace.offset_byN)r  r   rB   r   )r  r  rB   r   )r  r   rB   r   )r  r:   rB   r   r  )r  r   rB   r   r  r   rB   r   )rR   rS   rT   r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  rE   rE   rE   rG   r    s0    





















r  c                   @  s4   e Zd ZdddZdddZdd	d
ZdddZdS )r  rB   r   c                 C  r  )Nr  r   r  rb   rE   rE   rG   r     r$  zEagerExprListNamespace.lenc                 C  r  )Nr  rj  r  rb   rE   rE   rG   rj    r$  zEagerExprListNamespace.uniqueitemr5   c                 C  r  )Nr  contains)r  r  )rF   r  rE   rE   rG   r     r  zEagerExprListNamespace.containsr  rk   c                 C  r  )Nr  get)r  r  )rF   r  rE   rE   rG   r    r  zEagerExprListNamespace.getNr  )r  r5   rB   r   )r  rk   rB   r   )rR   rS   rT   r   rj  r  r  rE   rE   rE   rG   r    s
    


r  c                   @  s`   e Zd ZdddZdddZdddZdddZdddZdddZe	d ddZ
d!ddZdS )"CompliantExprNameNamespacerB   r   c                 C  s
   |  d S rD   r   rb   rE   rE   rG   r    r   zCompliantExprNameNamespace.keepr   r   c                 C  r   rD   r  )rF   r   rE   rE   rG   map  r   zCompliantExprNameNamespace.mapprefixr   c                      |   fddS )Nc                   s     |  S rD   rE   r   r  rE   rG   r         z3CompliantExprNameNamespace.prefix.<locals>.<lambda>r  rF   r  rE   r  rG   r    r  z!CompliantExprNameNamespace.prefixsuffixc                   r  )Nc                   s   |    S rD   rE   r   r  rE   rG   r     r  z3CompliantExprNameNamespace.suffix.<locals>.<lambda>r  rF   r  rE   r   rG   r    r  z!CompliantExprNameNamespace.suffixc                 C     |  tjS rD   )r   r   lowerrb   rE   rE   rG   to_lowercase  r/  z'CompliantExprNameNamespace.to_lowercasec                 C  r"  rD   )r   r   upperrb   rE   rE   rG   to_uppercase  r/  z'CompliantExprNameNamespace.to_uppercaser   r   c                  s   d fdd}|S )Nr   rp   rB   c                  r   )Nc                   r   rE   rE   )rq   r   r   rE   rG   ru   !  rv   zNCompliantExprNameNamespace._alias_output_names.<locals>.fn.<locals>.<listcomp>rE   r   r'  rE   rG   rz      r  z:CompliantExprNameNamespace._alias_output_names.<locals>.fn)r   rp   rB   rp   rE   )r   rz   rE   r'  rG   rZ     s   z.CompliantExprNameNamespace._alias_output_namesr   c                C  rC   rD   rE   r  rE   rE   rG   r   %  rI   z)CompliantExprNameNamespace._from_callableNr  )r   r   rB   r   )r  r   rB   r   )r  r   rB   r   )r   r   rB   r   )r   r   rB   r   )rR   rS   rT   r  r  r  r  r$  r&  r   rZ   r   rE   rE   rE   rG   r    s    





r  c                   @  r  )	r  r   r   rB   r   c                 C  s   | j }||S rD   )r  r   )rF   r   r  rE   rE   rG   r   -  s   
z%EagerExprNameNamespace._from_callableN)r   r   rB   r   rR   rS   rT   r   rE   rE   rE   rG   r  (      r  c                   @  r  )	r  r   r   rB   r   c                 C  s"   | j }|r
| |nd }||S rD   )r  rZ   r   )rF   r   r  r   rE   rE   rG   r   7  s   
z$LazyExprNameNamespace._from_callableN)r   r   rB   r   r(  rE   rE   rE   rG   r  2  r)  r  c                   @  s   e Zd Zd1ddZd2ddZd3ddZd4ddZd5ddZd6ddZd7ddZ	d8dd Z
d9d"d#Zd:d%d&Zd:d'd(Zd1d)d*Zd1d+d,Zd;d.d/Zd0S )<r  rB   r   c                 C  r  )Nr   	len_charsr  rb   rE   rE   rG   r*  @  r$  z"EagerExprStringNamespace.len_charspatternr   rJ   r*  r   rm  rk   c                C  s   | j jdd||||dS )Nr   replace)r+  rJ   r*  rm  r  )rF   r+  rJ   r*  rm  rE   rE   rG   r,  C  s   z EagerExprStringNamespace.replacec                C  s   | j jdd|||dS )Nr   replace_all)r+  rJ   r*  r  )rF   r+  rJ   r*  rE   rE   rG   r-  H  s   
z$EagerExprStringNamespace.replace_all
charactersr  c                 C  r  )Nr   strip_chars)r.  r  )rF   r.  rE   rE   rG   r/  M  r  z$EagerExprStringNamespace.strip_charsr  c                 C  r  )Nr   starts_withr  r  r  rE   rE   rG   r0  R  r  z$EagerExprStringNamespace.starts_withr  c                 C  r  )Nr   	ends_withr   r  r!  rE   rE   rG   r1  U  r  z"EagerExprStringNamespace.ends_withc                C     | j jdd||dS )Nr   r  )r+  r*  r  )rF   r+  r*  rE   rE   rG   r  X     z!EagerExprStringNamespace.containsr  lengthrT  c                 C  r2  )Nr   slice)r  r4  r  )rF   r  r4  rE   rE   rG   r5  ]  r3  zEagerExprStringNamespace.slicer  c                 C  r  )Nr   splitr  r  r  rE   rE   rG   r6  b  r  zEagerExprStringNamespace.splitr  c                 C  r  )Nr   to_datetimer  r  r  rE   rE   rG   r7  e  r  z$EagerExprStringNamespace.to_datetimec                 C  r  )Nr   to_dater  r  r  rE   rE   rG   r8  h  r  z EagerExprStringNamespace.to_datec                 C  r  )Nr   r$  r  rb   rE   rE   rG   r$  k  r$  z%EagerExprStringNamespace.to_lowercasec                 C  r  )Nr   r&  r  rb   rE   rE   rG   r&  n  r$  z%EagerExprStringNamespace.to_uppercasewidthc                 C  r  )Nr   zfill)r9  r  )rF   r9  rE   rE   rG   r:  q  r  zEagerExprStringNamespace.zfillNr  )
r+  r   rJ   r   r*  r   rm  rk   rB   r   )r+  r   rJ   r   r*  r   rB   r   )r.  r  rB   r   )r  r   rB   r   )r  r   rB   r   )r+  r   r*  r   rB   r   )r  rk   r4  rT  rB   r   r  )r  r  rB   r   )r9  rk   rB   r   )rR   rS   rT   r*  r,  r-  r/  r0  r1  r  r5  r6  r7  r8  r$  r&  r:  rE   rE   rE   rG   r  =  s    












r  c                   @  r  )	r  r   r   rB   r   c                 C  s   | j jdd|d|S )Nr  fieldr   )r  r  r   )rF   r   rE   rE   rG   r;  x  s   zEagerExprStructNamespace.fieldN)r   r   rB   r   )rR   rS   rT   r;  rE   rE   rE   rG   r  u  r  r  N)Y
__future__r   collections.abcr   	functoolsr   r%  r   typingr   r   r   r	   r
   r   !narwhals._compliant.any_namespacer   r   r   r   r   r   narwhals._compliant.columnr   narwhals._compliant.namespacer   narwhals._compliant.typingr   r   r   r   r   r   r   r   r   r   r   narwhals._utilsr   r    r!   narwhals.dependenciesr"   r#   r$   typing_extensionsr%   r&   r'   narwhals._compliant.seriesr(   r)   r*   r+   narwhals._expression_parsingr,   r-   r.   r/   r0   narwhals.typingr1   r2   r3   r4   r5   r6   r7   r8   r9   r:   __all__r?   r;   r<   r=   r>   r  r  r  r  r  r  r  r  r  r  r  rE   rE   rE   rG   <module>   s      40

V


&

     
2






O

!



8