
    Wh                    P   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)m*Z* d dl+m,Z,m-Z- e	rTd dlmZm.Z. d dl/m0Z0m1Z1 d dlmZm2Z2 d dl3m4Z4 d dlmZm5Z5m6Z6m7Z7 d dl8m9Z9m:Z: d dl&m;Z;m<Z<m=Z= d dl>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZH g dZI G d de      ZJ G d deeee f         ZK G d deKee f   eee f         ZL G d deLee f   eee f         ZM G d deMe!e#f   ee!e#f         ZN G d d eLee%f   eee%f         ZO G d! d"e'e   ee         ZP G d# d$ePe"   ee"         ZQ G d% d&ePe$   ee$         ZR G d' d(eQe"   ee"   ee"         ZS G d) d*eQe"   ee"   ee"         ZT G d+ d,eQe"   ee"   ee"         ZU G d- d.ePe   ee   ee         ZV G d/ d0eQe"   eVe"   ee"         ZW G d1 d2eRe$   eVe$   ee$         ZX G d3 d4eQe"   ee"   ee"         ZY G d5 d6eQe"   ee"   ee"         ZZy7)8    )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not_implemented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                  H    e Zd ZdZd
dZddZddZddZddZddZ	ddZ
y	)rA   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.
    c                     y N )selfargskwdss      R/var/www/html/jupyter_env/lib/python3.12/site-packages/narwhals/_compliant/expr.pybetweenzNativeExpr.betweenH           c                    y rD   rE   rF   values     rI   __gt__zNativeExpr.__gt__N   rK   rL   c                    y rD   rE   rN   s     rI   __lt__zNativeExpr.__lt__O   rK   rL   c                    y rD   rE   rN   s     rI   __ge__zNativeExpr.__ge__P   rK   rL   c                    y rD   rE   rN   s     rI   __le__zNativeExpr.__le__Q   rK   rL   c                    y rD   rE   rN   s     rI   __eq__zNativeExpr.__eq__R   rK   rL   c                    y rD   rE   rN   s     rI   __ne__zNativeExpr.__ne__S   rK   rL   N)rG   r   rH   r   returnr   )rO   r   r[   r'   )__name__
__module____qualname____doc__rJ   rP   rR   rT   rV   rX   rZ   rE   rL   rI   rA   rA   A   s      ; 100000rL   rA   c                  `   e Zd ZU ded<   ded<   ded<   ded<   	 	 	 	 d#d	Zd$d
Zd%dZe	 	 	 	 	 	 d&d       Ze	 	 	 	 	 	 d'd       Z		 	 	 	 d(dZ
d$dZd$dZd$dZd$dZd$dZd$dZd$dZd$dZd$dZd$dZd)dZd)dZd$dZd$dZd$dZd*dZ	 	 	 	 	 	 d+dZ	 	 	 	 	 	 	 	 d,d Zed-d!       Zy").r=   r0   _implementationEvalNames[CompliantFrameT]_evaluate_output_namesAliasNames | None_alias_output_nameszExprMetadata | None	_metadatac                     y rD   rE   rF   dfs     rI   __call__zCompliantExpr.__call___   s    47rL   c                    | S rD   rE   rF   s    rI   __narwhals_expr__zCompliantExpr.__narwhals_expr__b   s    rL   c                     y rD   rE   rl   s    rI   __narwhals_namespace__z$CompliantExpr.__narwhals_namespace__e   rK   rL   c                    y rD   rE   )clscontextcolumn_indicess      rI   from_column_indicesz!CompliantExpr.from_column_indicesf   s     rL   c                   y rD   rE   )rq   evaluate_column_namesrr   s      rI   from_column_nameszCompliantExpr.from_column_namesj   s     rL   c                     y rD   rE   )rF   kinds     rI   	broadcastzCompliantExpr.broadcastr       rL   c                     y rD   rE   rl   s    rI   allzCompliantExpr.allw   rK   rL   c                     y rD   rE   rl   s    rI   anyzCompliantExpr.anyx   rK   rL   c                     y rD   rE   rl   s    rI   countzCompliantExpr.county   rK   rL   c                     y rD   rE   rl   s    rI   minzCompliantExpr.minz   rK   rL   c                     y rD   rE   rl   s    rI   maxzCompliantExpr.max{   rK   rL   c                     y rD   rE   rl   s    rI   meanzCompliantExpr.mean|   rK   rL   c                     y rD   rE   rl   s    rI   sumzCompliantExpr.sum}   rK   rL   c                     y rD   rE   rl   s    rI   medianzCompliantExpr.median~   rK   rL   c                     y rD   rE   rl   s    rI   skewzCompliantExpr.skew   rK   rL   c                     y rD   rE   rl   s    rI   kurtosiszCompliantExpr.kurtosis   rK   rL   c                    y rD   rE   rF   ddofs     rI   stdzCompliantExpr.std   rK   rL   c                    y rD   rE   r   s     rI   varzCompliantExpr.var   rK   rL   c                     y rD   rE   rl   s    rI   n_uniquezCompliantExpr.n_unique   rK   rL   c                     y rD   rE   rl   s    rI   
null_countzCompliantExpr.null_count   rK   rL   c                     y rD   rE   rl   s    rI   lenzCompliantExpr.len   rK   rL   c                     y rD   rE   )rF   partition_byorder_bys      rI   overzCompliantExpr.over   rK   rL   c                     y rD   rE   rF   quantileinterpolations      rI   r   zCompliantExpr.quantile   r{   rL   c                    y rD   rE   )rF   functionreturn_dtypereturns_scalars       rI   map_batcheszCompliantExpr.map_batches   s     rL   c                     y rD   rE   rl   s    rI   namezCompliantExpr.name   s    +.rL   N)ri   r   r[   z)Sequence[CompliantSeriesOrNativeExprT_co]r[   r'   )r[   z)CompliantNamespace[CompliantFrameT, Self])rs   intrr   r2   r[   r'   )rv   rb   rr   r2   r[   r'   ry   z/Literal[ExprKind.AGGREGATION, ExprKind.LITERAL]r[   r'   r   r   r[   r'   )r   Sequence[str]r   r   r[   r'   r   floatr   r:   r[   r'   )r   z9Callable[[CompliantSeries[Any]], CompliantExpr[Any, Any]]r   IntoDType | Noner   boolr[   r'   )r[   zNameNamespace[Self])r\   r]   r^   __annotations__rj   rm   ro   classmethodrt   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   propertyr   rE   rL   rI   r=   r=   V   s5    $#66**""8!8	28 W!,;	  9
 ! 
 C	
  !#,,#%U.H	K '
  
 . .rL   r=   c                  &    e Zd Zedd       ZddZy)ImplExprc                    d fd}|S )Nc                L    | j                   }D cg c]  }||   	 c}S c c}w rD   )columns)ri   column_namesiindicess      rI   fnz(ImplExpr._eval_names_indices.<locals>.fn   s$    ::L-45LO555s   !)ri   r   r[   r   rE   )r   r   s   ` rI   _eval_names_indiceszImplExpr._eval_names_indices   s    	6 	rL   c               T    | j                  |      }| j                  x}r ||      S |S rD   )rc   re   )rF   framenamesaliass       rI   _evaluate_aliaseszImplExpr._evaluate_aliases   s3     ++E2)-)A)A A AuU|MMrL   N)r   zSequence[int]r[   rb   )r   r   r[   r   )r\   r]   r^   staticmethodr   r   rE   rL   rI   r   r      s      NrL   r   c                  \    e Zd ZU ded<   ded<   edd	 	 	 	 	 	 	 	 	 dd       ZddZdd	Zy
)r>   r   _depthstr_function_name )function_namec                   y rD   rE   )rq   rv   rr   r   s       rI   rw   z#DepthTrackingExpr.from_column_names   s     rL   c                     | 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   rl   s    rI   _is_elementaryz DepthTrackingExpr._is_elementary   s     {{QrL   c                f    t        |       j                   d| j                   d| j                   dS )Nz(depth=z, function_name=))typer\   r   r   rl   s    rI   __repr__zDepthTrackingExpr.__repr__   s3    t*%%&gdkk]:J4K^K^J__`aarL   N)
rq   z
type[Self]rv   rb   rr   r2   r   r   r[   r'   )r[   r   )r[   r   )r\   r]   r^   r   r   rw   r   r   rE   rL   rI   r>   r>      sa     K   9
 !  
 "brL   r>   c                     e Zd ZU ded<   ded<   dd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dpdZdqdZ	 	 drd	Zedd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dsd
       Zedtd       Z	dudZ
ddd	 	 	 	 	 	 	 	 	 dvdZdd	 	 	 dwdZedxd       Z	 	 	 	 	 	 	 	 	 	 	 	 dydZ	 	 	 	 	 	 	 	 dzdZd{dZd|dZd}dZd}dZd~dZd~dZd~dZd~dZd~dZd~dZddZdd Zd~d!Zd~d"Zd~d#Zd~d$Zd~d%Z d~d&Z!d~d'Z"d~d(Z#d~d)Z$d~d*Z%d~d+Z&d~d,Z'dd-Z(dd.Z)dd/Z*dd0Z+dd1Z,dd2Z-dd3Z.dd4Z/dd5Z0dd6Z1dd7Z2dd8Z3dd9Z4dd:Z5dd;Z6dd<Z7dd=Z8	 	 	 	 	 	 dd>Z9dd?Z:dd@Z;ddAZ<	 	 	 	 	 	 	 	 ddBZ=ddCZ>ddDZ?ddEZ@ddFZA	 	 	 	 	 	 	 	 ddGZBddHZCddIZDddJZEddKZF	 	 	 	 	 	 	 	 	 	 ddLZGddMZHddNZIddOZJddPZK	 	 	 	 	 	 ddQZLddRZMddSZNddTZOddUZPddVZQddWZRddXZSddYZT	 	 	 	 	 	 	 	 	 	 ddZZUdd[ZV	 	 	 	 	 	 	 	 	 	 dd\ZW	 	 	 	 	 	 	 	 dd]ZXdd^ZYdd_ZZdd`Z[ddaZ\ddbZ]ddcZ^dddZ_ddeZ`ddfZaddgZb	 	 	 	 	 	 	 	 ddhZc	 	 	 	 	 	 	 	 	 	 ddiZdeeddj       Zfeeddk       Zgeeddl       Zheeddm       Zieeddn       Zjeeddo       Zky)r?   )EvalSeries[EagerDataFrameT, EagerSeriesT]_callr-   _scalar_kwargsNscalar_kwargsc                    y rD   rE   )	rF   calldepthr   evaluate_output_namesalias_output_namesimplementationversionr   s	            rI   __init__zEagerExpr.__init__   s     rL   c                $    | j                  |      S rD   )r   rh   s     rI   rj   zEagerExpr.__call__   s    zz"~rL   c                     y rD   rE   rl   s    rI   ro   z EagerExpr.__narwhals_namespace__   s    HKrL   c          
     J     | ||||||j                   |j                  |      S )Nr   r   r   r   r   r   r   ra   _version)rq   funcr   r   r   r   rr   r   s           rI   _from_callablezEagerExpr._from_callable   s5     '"71"22$$'	
 		
rL   c           	     V     | fdddfdd j                   j                        S )Nc                
    gS rD   rE   _dfseriess    rI   <lambda>z(EagerExpr._from_series.<locals>.<lambda>	  s	     rL   r   r   c                    j                   gS rD   r   r   s    rI   r   z(EagerExpr._from_series.<locals>.<lambda>  s    v{{m rL   )r   r   r   r   r   r   r   )rq   r   s    `rI   _from_serieszEagerExpr._from_series  s/     "";#!11OO
 	
rL   c          
           j                   d nfdnfdd fd} j                  | j                   j                   j                   j
                   j                   j                        S )Nc                F     |       D cg c]
  } |       c}S c c}w rD   rE   )output_namesx
alias_namecurrent_alias_output_namess     rI   r   z4EagerExpr._with_alias_output_names.<locals>.<lambda>  s&    +El+S&&'JqM&  &s   c                :    | D cg c]
  } |       c}S c c}w rD   rE   )r   r   r   s     rI   r   z4EagerExpr._with_alias_output_names.<locals>.<lambda>  s    |'L!
1'L 'L   c                8   rIt         |        j                  |                   D cg c]  \  }}|j                  |       c}}S t         |       j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w c c}}w rD   )r#   rc   r   )ri   r   r   r   rF   s      rI   r   z0EagerExpr._with_alias_output_names.<locals>.func   s    ! )3R"4T5P5PQS5T"U)$ LL&  %/tBx9T9TUW9X$Y FD T" s   B1Br   ri   r   r[   zlist[EagerSeriesT])re   	__class__r   r   rc   ra   r   r   )rF   r   r   r   r   s   `` @@rI   _with_alias_output_namesz"EagerExpr._with_alias_output_names  s    %)%=%=" !  *5	
 M 		 ~~++--"&"="=1//MM--  	
 		
rL   Fr   r   c          	         t        | j                  |||xs i |      }| j                  || j                  dz   | j                   d| | j
                  | j                  ||       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')))`).
        )method_namer   r   expressifiable_args   ->r   r   r   r   r   rr   )r   _reuse_series_innerr   r   r   rc   re   )rF   r  r   r   r  r   s         rI   _reuse_serieszEagerExpr._reuse_series8  s}    , $$#)'-2 3
 ""++/!001K=A"&"="=#77' # 
 	
rL   r   c                   i S rD   rE   )rF   r   s     rI   _reuse_series_extra_kwargsz$EagerExpr._reuse_series_extra_kwargsa  s	     	rL   c                    t        |d      S )Nrm   )hasattr)rq   objs     rI   _is_exprzEagerExpr._is_exprf  s    s/00rL   c          	     ,   i ||j                         D ci c]*  \  }}|| j                  |      r|j                  |      n|, c}}}t        |fi | j	                  |      |}	 | |      D 
cg c]#  }
|r|
j                   |	|
            n |	|
      % }}
| j                  |      }|D cg c]  }|j                   c}t        |      k7  r+d| d|D cg c]  }|j                   c} }t        |      |S c c}}w c c}
w c c}w c c}w )Nr	  ztSafety assertion failed, please report a bug to https://github.com/narwhals-dev/narwhals/issues
Expression aliases: z
Series names: )
itemsr  _evaluate_exprr   r  _from_scalarr   r   listAssertionError)rF   ri   r  r   r   r  r   rO   kwargsmethodr   outaliasessmsgs                  rI   r  zEagerExpr._reuse_series_innerj  sF   

 $7#<#<#>D% $--2Fb''.EQ
 
--^-L
 
 r('
 4BFv/vf~U'
 '
 ((, qAFF DM1''.i 0!25!6Q!&&!6 79 
 !%%
-'

 ! "7s   /D3(D2DD
c           	          d fd} j                  | j                  dz    j                   d d  j                   j                   j
                         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')))`).
        c           
        j                         D ci c]*  \  }}|j                  |      r| j                  |      n|, }}} |       D cg c]  } t        t        |            di |  c}S c c}}w c c}w )NrE   )r  r  r  getattr)	ri   r   rO   r  r   r  r  rF   series_namespaces	        rI   innerz0EagerExpr._reuse_series_namespace.<locals>.inner  s     $7#<#<#>D% $--2Fb''.EQF  #2h H(89;GQ&Q 	s   /A7#A=r  r  .r  r   )r   r   r   rc   re   r   )rF   r  r  r  r   s   ```` rI   _reuse_series_namespacez!EagerExpr._reuse_series_namespace  sp    $	 	 ""++/!0014D3EQ{mT"&"="=#77-- # 
 	
rL   c           
          d fd} t               | j                   j                   j                   j                   j
                   j                   j                        S )Nc                V    g } |       D ]  }d|_         |j                  |        |S )NT)
_broadcastappend)ri   resultsresultrF   s      rI   r   z!EagerExpr.broadcast.<locals>.func  s6    Gr( '$(!v&' NrL   r   r   )r   r   r   rc   re   ra   r   r   )rF   ry   r   s   `  rI   rz   zEagerExpr.broadcast  s[    	 tDz++--"&"="=#77//MM--	
 		
rL   c                (    | j                  d|      S )Ncast)dtyper  )rF   r+  s     rI   r*  zEagerExpr.cast  s    !!&!66rL   c               (    | j                  ||      S )Notherr,  rF   operatorr/  s      rI   _with_binaryzEagerExpr._with_binary  s    !!(%!88rL   c               F    | j                  d      j                  ||      S )Nliteralr.  )r   r  r0  s      rI   _with_binary_rightzEagerExpr._with_binary_right  s!    zz)$22852IIrL   c                &    | j                  d|      S )NrX   r2  rF   r/  s     rI   rX   zEagerExpr.__eq__        511rL   c                &    | j                  d|      S )NrZ   r7  r8  s     rI   rZ   zEagerExpr.__ne__  r9  rL   c                &    | j                  d|      S )NrT   r7  r8  s     rI   rT   zEagerExpr.__ge__  r9  rL   c                &    | j                  d|      S )NrP   r7  r8  s     rI   rP   zEagerExpr.__gt__  r9  rL   c                &    | j                  d|      S )NrV   r7  r8  s     rI   rV   zEagerExpr.__le__  r9  rL   c                &    | j                  d|      S )NrR   r7  r8  s     rI   rR   zEagerExpr.__lt__  r9  rL   c                &    | j                  d|      S )N__and__r7  r8  s     rI   r@  zEagerExpr.__and__        E22rL   c                &    | j                  d|      S )N__or__r7  r8  s     rI   rC  zEagerExpr.__or__  r9  rL   c                &    | j                  d|      S )N__add__r7  r8  s     rI   rE  zEagerExpr.__add__  rA  rL   c                &    | j                  d|      S )N__sub__r7  r8  s     rI   rG  zEagerExpr.__sub__  rA  rL   c                &    | j                  d|      S )N__rsub__r5  r8  s     rI   rI  zEagerExpr.__rsub__      &&z599rL   c                &    | j                  d|      S )N__mul__r7  r8  s     rI   rM  zEagerExpr.__mul__  rA  rL   c                &    | j                  d|      S )N__truediv__r7  r8  s     rI   rO  zEagerExpr.__truediv__  s      66rL   c                &    | j                  d|      S )N__rtruediv__rJ  r8  s     rI   rQ  zEagerExpr.__rtruediv__  s    &&~u==rL   c                &    | j                  d|      S )N__floordiv__r7  r8  s     rI   rS  zEagerExpr.__floordiv__  s      77rL   c                &    | j                  d|      S )N__rfloordiv__rJ  r8  s     rI   rU  zEagerExpr.__rfloordiv__  s    &&>>rL   c                &    | j                  d|      S )N__pow__r7  r8  s     rI   rW  zEagerExpr.__pow__  rA  rL   c                &    | j                  d|      S )N__rpow__rJ  r8  s     rI   rY  zEagerExpr.__rpow__  rK  rL   c                &    | j                  d|      S )N__mod__r7  r8  s     rI   r[  zEagerExpr.__mod__  rA  rL   c                &    | j                  d|      S )N__rmod__rJ  r8  s     rI   r]  zEagerExpr.__rmod__  rK  rL   c                $    | j                  d      S )N
__invert__r,  rl   s    rI   r_  zEagerExpr.__invert__      !!,//rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.null_count  s    !!,t!DDrL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.n_unique      !!*T!BBrL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.sum      !!%!==rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.count  s    !!'$!??rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.mean      !!&!>>rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.median"  s    !!(4!@@rL   c               .    | j                  ddd|i      S )Nr   Tr   r   r,  r   s     rI   r   zEagerExpr.std%  %    !!$vtn " 
 	
rL   c               .    | j                  ddd|i      S )Nr   Tr   r   r,  r   s     rI   r   zEagerExpr.var*  rk  rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.skew/  rh  rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.kurtosis2  rc  rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.any5  re  rL   c                (    | j                  dd      S )Nr}   Tr	  r,  rl   s    rI   r}   zEagerExpr.all8  re  rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.max;  re  rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.min>  re  rL   c                (    | j                  dd      S )Narg_minTr	  r,  rl   s    rI   rt  zEagerExpr.arg_minA      !!)D!AArL   c                (    | j                  dd      S )Narg_maxTr	  r,  rl   s    rI   rw  zEagerExpr.arg_maxD  ru  rL   c                *    | j                  d||      S )Nclip)lower_boundupper_boundr,  )rF   rz  r{  s      rI   ry  zEagerExpr.clipI  s#    
 !! " 
 	
rL   c                $    | j                  d      S )Nis_nullr,  rl   s    rI   r}  zEagerExpr.is_nullR  s    !!),,rL   c                $    | j                  d      S )Nis_nanr,  rl   s    rI   r  zEagerExpr.is_nanU  s    !!(++rL   c                (    | j                  d|      S )Nfill_nan)rO   r,  rN   s     rI   r  zEagerExpr.fill_nanX  s    !!*E!::rL   c                0    | j                  d|||d      S )N	fill_null)strategylimit)rO   r   r,  )rF   rO   r  r  s       rI   r  zEagerExpr.fill_null[  s)     !!uTY4Z " 
 	
rL   c                (    | j                  d|      S )Nis_inr.  r,  r8  s     rI   r  zEagerExpr.is_ine  s    !!'!77rL   c                $    | j                  d      S )Narg_truer,  rl   s    rI   r  zEagerExpr.arg_trueh  s    !!*--rL   c                l    | j                         } |j                  |ddi}| j                  d|      S )Nignore_nullsFfilter)	predicate)ro   all_horizontalr  )rF   
predicatesplxr  s       rI   r  zEagerExpr.filterk  s=    ))+&C&&
GG	!!(i!@@rL   c                $    | j                  d      S )N
drop_nullsr,  rl   s    rI   r  zEagerExpr.drop_nullsp  r`  rL   c               ,    | j                  d|||      S )Nreplace_strict)oldnewr   r,  )rF   r  r  r   s       rI   r  zEagerExpr.replace_stricts  s%     !!#3\ " 
 	
rL   c               *    | j                  d||      S )Nsort)
descending
nulls_lastr,  )rF   r  r  s      rI   r  zEagerExpr.sort~  s    !!&ZJ!WWrL   c                $    | j                  d      S )Nabsr,  rl   s    rI   r  zEagerExpr.abs      !!%((rL   c                (    | j                  dd      S )NuniqueF)maintain_orderr,  rl   s    rI   r  zEagerExpr.unique  s    !!(5!AArL   c                $    | j                  d      S )Ndiffr,  rl   s    rI   r  zEagerExpr.diff      !!&))rL   c               .    | j                  d||||      S )Nsample)nfractionwith_replacementseedr,  )rF   r  r  r  r  s        rI   r  zEagerExpr.sample  s)     !!H?OVZ " 
 	
rL   c           
          dfd} t                fd j                   j                   j                  | j                   j
                   j                        S )Nc                F    t        |       dk7  rd|  }t        |      gS Nr  z:Expected function with single output, found output names: r   
ValueErrorr   r  r   s     rI   r   z+EagerExpr.alias.<locals>.alias_output_names  -    5zQRSXRYZ o%6MrL   c                X     |       D cg c]  }|j                         c}S c c}w rD   r   )ri   r   r   rF   s     rI   r   z!EagerExpr.alias.<locals>.<lambda>  s"    bBvT*B Bs   'r   r   r   r[   r   )r   r   r   rc   ra   r   r   )rF   r   r   s   `` rI   r   zEagerExpr.alias  sU    	 tDzB++--"&"="=1//MM--	
 		
rL   c                $    | j                  d      S )N	is_uniquer,  rl   s    rI   r  zEagerExpr.is_unique      !!+..rL   c                $    | j                  d      S )Nis_first_distinctr,  rl   s    rI   r  zEagerExpr.is_first_distinct  s    !!"566rL   c                $    | j                  d      S )Nis_last_distinctr,  rl   s    rI   r  zEagerExpr.is_last_distinct  s    !!"455rL   c                0    | j                  dd||d      S )Nr   T)r   r   r   r,  r   s      rI   r   zEagerExpr.quantile  s*     !!'/-P " 
 	
rL   c                ,    | j                  dd|i      S )Nheadr  r   r,  rF   r  s     rI   r  zEagerExpr.head      !!&a!AArL   c                ,    | j                  dd|i      S )Ntailr  r   r,  r  s     rI   r  zEagerExpr.tail  r  rL   c                (    | j                  d|      S )Nround)decimalsr,  )rF   r  s     rI   r  zEagerExpr.round  s    !!'H!==rL   c                (    | j                  dd      S )Nr   Tr	  r,  rl   s    rI   r   zEagerExpr.len  re  rL   c                *    | j                  d||      S )Ngather_every)r  offsetr,  )rF   r  r  s      rI   r  zEagerExpr.gather_every  s    !!.Af!EErL   c               ,    | j                  dd|i      S )Nmodekeepr   r,  )rF   r  s     rI   r  zEagerExpr.mode  s    !!&!GGrL   c                $    | j                  d      S )N	is_finiter,  rl   s    rI   r  zEagerExpr.is_finite  r  rL   c               0    | j                  d|||d      S )Nrolling_meanwindow_sizemin_samplescenterr   r,  rF   r  r  r  s       rI   r  zEagerExpr.rolling_mean  s+    !!**  " 
 	
rL   c               2    | j                  d||||d      S )Nrolling_stdr  r  r  r   r   r,  rF   r  r  r  r   s        rI   r  zEagerExpr.rolling_std  0     !!** 	 " 
 	
rL   c               0    | j                  d|||d      S )Nrolling_sumr  r   r,  r  s       rI   r  zEagerExpr.rolling_sum  s+    !!**  " 
 	
rL   c               2    | j                  d||||d      S )Nrolling_varr  r   r,  r  s        rI   r  zEagerExpr.rolling_var  r  rL   c                    d fd} j                  | j                  dz    j                  dz    j                   j                         S )Nc                    |       }d |D        }t        fd|D              }|d   |d   }}t        ||      }t        |      st        |      r,t	        |j
                        t        fd|D              }nIt        ||j                        rt        d |D              }n |j                  t        fd|D              }t        fd|D              }t        d	 |D              }sRt        |      rGt        |       d
kD  r9|j                  d      }	t        ||	         }
dt        |
       d}t        |      |S )Nc              3  4   K   | ]  }|j                     y wrD   r   ).0input_seriess     rI   	<genexpr>z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s     P,L--Ps   c              3  .   K   | ]  } |        y wrD   rE   )r  r   r   s     rI   r  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>	  s     "P8F#3"Ps   r   )rr   c              3  R   K   | ]  \  }} |      j                  |         y wrD   r  )r  arrout_name
from_numpys      rI   r  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s$     W=3z#44X>W   $'c              3  D   K   | ]  \  }}|j                  |        y wrD   r  )r  r   r  s      rI   r  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s     Q:J&(v||H5Qs    c              3  R   K   | ]  \  }} |      j                  |         y wrD   r  )r  valr  from_scalars      rI   r  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s%     XMC{3/55h?Xr  c              3  @   K   | ]  }|j                          y wrD   )r*  )r  r   r   s     rI   r  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s     NVv{{<8Ns   c              3  8   K   | ]  }t        |      d k(    yw)r  N)r   )r  rs     rI   r  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s     $AQSVq[$As   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)ri   udf_series_inr   udf_series_out	_first_in
_first_outitr(  is_scalar_result_idx_typer  r  r  r   r   r   rF   s               @@rI   r   z#EagerExpr.map_batches.<locals>.func  sB    HMP-PL""P-"PPN$1!$4nQ6GzI NL9Bj)_Z-H$Y%9%94H
WTVWWJ	(;(;<QbQQ'44XUWXX'NvNN$$A&$AA",<(=3r7Q;'--d3^D121%89 :PP 
  n$MrL   r  z->map_batches)r   r   r   r   rr   ri   r   r[   Sequence[EagerSeriesT])r   r   r   rc   re   )rF   r   r   r   r   s   ```` rI   r   zEagerExpr.map_batches  sY    	 	@ ""++/--?"&"="=#77 # 
 	
rL   c                ,    | j                  dd|i      S )Nshiftr  r   r,  r  s     rI   r   zEagerExpr.shift/  s    !!'#q!BBrL   c               ,    | j                  dd|i      S )Ncum_sumreverser   r,  rF   r  s     rI   r  zEagerExpr.cum_sum2      !!)Iw;O!PPrL   c               ,    | j                  dd|i      S )N	cum_countr  r   r,  r  s     rI   r  zEagerExpr.cum_count5  s    !!+i=Q!RRrL   c               ,    | j                  dd|i      S )Ncum_minr  r   r,  r  s     rI   r	  zEagerExpr.cum_min8  r  rL   c               ,    | j                  dd|i      S )Ncum_maxr  r   r,  r  s     rI   r  zEagerExpr.cum_max;  r  rL   c               ,    | j                  dd|i      S )Ncum_prodr  r   r,  r  s     rI   r  zEagerExpr.cum_prod>  s    !!*Y<P!QQrL   c               .    | j                  d||d      S )Nrank)r  r  r   r,  )rF   r  r  s      rI   r  zEagerExpr.rankA  s$    !!V:"N " 
 	
rL   c                (    | j                  d|      S )Nlog)baser,  )rF   r  s     rI   r  zEagerExpr.logF  s    !!%d!33rL   c                $    | j                  d      S )Nexpr,  rl   s    rI   r  zEagerExpr.expI  r  rL   c                $    | j                  d      S )Nsqrtr,  rl   s    rI   r  zEagerExpr.sqrtL  r  rL   c                ,    | j                  d|||      S )N
is_between)rz  r{  closedr,  )rF   rz  r{  r  s       rI   r  zEagerExpr.is_betweenO  s&     !!k{SY " 
 	
rL   c               .    | j                  d||||      S )Nis_close)r/  abs_tolrel_tol
nans_equalr,  )rF   r/  r  r  r  s        rI   r  zEagerExpr.is_closeV  s+     !!! " 
 	
rL   c                    t        |       S rD   )EagerExprCatNamespacerl   s    rI   catzEagerExpr.catf      $T**rL   c                    t        |       S rD   )EagerExprDateTimeNamespacerl   s    rI   dtzEagerExpr.dtj  s    )$//rL   c                    t        |       S rD   )EagerExprListNamespacerl   s    rI   r  zEagerExpr.listn      %d++rL   c                    t        |       S rD   )EagerExprNameNamespacerl   s    rI   r   zEagerExpr.namer  r(  rL   c                    t        |       S rD   )EagerExprStringNamespacerl   s    rI   r   zEagerExpr.strv      '--rL   c                    t        |       S rD   )EagerExprStructNamespacerl   s    rI   structzEagerExpr.structz  r-  rL   )r   r   r   r   r   r   r   EvalNames[EagerDataFrameT]r   rd   r   r0   r   r1   r   ScalarKwargs | Noner[   Noner  )r[   z=EagerNamespace[EagerDataFrameT, EagerSeriesT, Self, Any, Any])r   r   r   r   r   r   r   r1  r   rd   rr   r2   r   r2  r[   r'   )r   r   r[   r'   )r   AliasName | Noner[   r'   )
r  r   r   r   r   r2  r  r   r[   r'   )r   r   r[   dict[str, Any])r  
Self | Anyr[   zTypeIs[Self])ri   r   r  r   r   r   r   r-   r  r5  r[   r  )r  z5Literal['cat', 'dt', 'list', 'name', 'str', 'struct']r  r   r  r   r[   r'   r   )r+  r5   r[   r'   )r1  r   r/  r6  r[   r'   )r/  r6  r[   r'   )r/  zSelf | bool | Anyr[   r'   r   r   )rz  .Self | NumericLiteral | TemporalLiteral | Noner{  r7  r[   r'   )rO   float | Noner[   r'   )rO   zSelf | NonNestedLiteralr  zFillNullStrategy | Noner  
int | Noner[   r'   )r/  r   r[   r'   )r  r'   r[   r'   )r  z!Sequence[Any] | Mapping[Any, Any]r  zSequence[Any]r   r   r[   r'   )r  r   r  r   r[   r'   )
r  r9  r  r8  r  r   r  r9  r[   r'   r   r   r[   r'   r   )r  r   r[   r'   )r  r   r[   r'   )r  r   r  r   r[   r'   )r  r6   r[   r'   )r  r   r  r   r  r   r[   r'   )
r  r   r  r   r  r   r   r   r[   r'   )r   zCallable[[Any], Any]r   r   r   r   r[   r'   )r  r   r[   r'   )r  r9   r  r   r[   r'   )r  r   r[   r'   )rz  r   r{  r   r  r3   r[   r'   )
r/  zSelf | NumericLiteralr  r   r  r   r  r   r[   r'   )r[   zEagerExprCatNamespace[Self])r[   z EagerExprDateTimeNamespace[Self])r[   zEagerExprListNamespace[Self])r[   zEagerExprNameNamespace[Self])r[   zEagerExprStringNamespace[Self])r[   zEagerExprStructNamespace[Self])lr\   r]   r^   r   r   rj   ro   r   r   r   r   r  r  r  r  r"  rz   r*  r2  r5  rX   rZ   rT   rP   rV   rR   r@  rC  rE  rG  rI  rM  rO  rQ  rS  rU  rW  rY  r[  r]  r_  r   r   r   r   r   r   r   r   r   r   r   r}   r   r   rt  rw  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r   r  r  r  r   r  r  r  r  r  r  r  r   r   r  r  r	  r  r  r  r  r  r  r  r  r   r!  r%  r  r   r   r0  rE   rL   rI   r?   r?      s    54   .27 	
   : . '  + 
L	FL  .2
7
 	

 
  :
 .
 !
 +
 

 
, 	
 	
$
T  %-1%
%
 	%

 +%
  #%
 
%
T ).!%	
 1 1!! 	!
 ! $! ,! 
 !F$
O$
 $
  #	$

 
$
L
,79J2222223233:37>8?3:3:0EC>@?A



?C>>>>BB

C
 D
 
	
-,;
&
 *
 	

 

8.A
0	
.	
 	

 '	
 
	
X)B*



 	


 

 

 



(/76

.H
	
BB>>FH/


03
=A
IL
	



03
=A
IL
	
.
&.
 '.

 .
 
.
`CQSQQR

4)*

-0
:H
	

$
 	

 
 
 

  + + 0 0 , , , , . . . .rL   r?   c                  r    e Zd ZU ddZddZed	d       Z e       Z e       Z	 e       Z
 e       Zded<   y)
r@   c                    y rD   rE   rF   r   s     rI   r   z!LazyExpr._with_alias_output_names  rK   rL   c                2    dfd}| j                  |      S )Nc                F    t        |       dk7  rd|  }t        |      gS r  r  r  s     rI   r   zLazyExpr.alias.<locals>.fn  r  rL   r  )r   )rF   r   r   s    ` rI   r   zLazyExpr.alias  s    	 ,,R00rL   c                    t        |       S rD   )LazyExprNameNamespacerl   s    rI   r   zLazyExpr.name  r"  rL   r!   r!  N)r   rd   r[   r'   r:  )r[   zLazyExprNameNamespace[Self])r\   r]   r^   r   r   r   r   r!   ewm_meanr   r  r!  r   rE   rL   rI   r@   r@     sH     P1 + +  H!#K$&N*,C,rL   r@   c                  *    e Zd ZU ded<   edd       Zy)_ExprNamespacer   _compliant_exprc                    | j                   S rD   rE  rl   s    rI   	compliantz_ExprNamespace.compliant  s    ###rL   Nr[   r   )r\   r]   r^   r   r   rH  rE   rL   rI   rD  rD    s     '&$ $rL   rD  c                      e Zd ZddZy)EagerExprNamespacec                   || _         y rD   rG  rF   exprs     rI   r   zEagerExprNamespace.__init__  
    #rL   N)rN  r   r[   r3  r\   r]   r^   r   rE   rL   rI   rK  rK        $rL   rK  c                      e Zd ZddZy)LazyExprNamespacec                   || _         y rD   rG  rM  s     rI   r   zLazyExprNamespace.__init__  rO  rL   N)rN  r   r[   r3  rP  rE   rL   rI   rS  rS    rQ  rL   rS  c                      e Zd ZddZy)r   c                :    | j                   j                  dd      S )Nr!  get_categoriesrH  r"  rl   s    rI   rW  z$EagerExprCatNamespace.get_categories  s    ~~55e=MNNrL   Nr[   r   )r\   r]   r^   rW  rE   rL   rI   r   r     s    OrL   r   c                      e Zd ZddZddZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZddZddZddZddZddZddZddZddZddZddZy) r$  c                >    | j                   j                  dd|      S )Nr%  	to_stringformatrX  rF   r^  s     rI   r\  z$EagerExprDateTimeNamespace.to_string  s    ~~55dKPV5WWrL   c                >    | j                   j                  dd|      S )Nr%  replace_time_zone	time_zonerX  rF   rc  s     rI   ra  z,EagerExprDateTimeNamespace.replace_time_zone  &    ~~55% 6 
 	
rL   c                >    | j                   j                  dd|      S )Nr%  convert_time_zonerb  rX  rd  s     rI   rg  z,EagerExprDateTimeNamespace.convert_time_zone  re  rL   c                >    | j                   j                  dd|      S )Nr%  	timestamp)	time_unitrX  )rF   rj  s     rI   ri  z$EagerExprDateTimeNamespace.timestamp  s%    ~~55+ 6 
 	
rL   c                :    | j                   j                  dd      S )Nr%  daterX  rl   s    rI   rl  zEagerExprDateTimeNamespace.date      ~~55dFCCrL   c                :    | j                   j                  dd      S )Nr%  yearrX  rl   s    rI   ro  zEagerExprDateTimeNamespace.year  rm  rL   c                :    | j                   j                  dd      S )Nr%  monthrX  rl   s    rI   rq  z EagerExprDateTimeNamespace.month  s    ~~55dGDDrL   c                :    | j                   j                  dd      S )Nr%  dayrX  rl   s    rI   rs  zEagerExprDateTimeNamespace.day  s    ~~55dEBBrL   c                :    | j                   j                  dd      S )Nr%  hourrX  rl   s    rI   ru  zEagerExprDateTimeNamespace.hour  rm  rL   c                :    | j                   j                  dd      S )Nr%  minuterX  rl   s    rI   rw  z!EagerExprDateTimeNamespace.minute      ~~55dHEErL   c                :    | j                   j                  dd      S )Nr%  secondrX  rl   s    rI   rz  z!EagerExprDateTimeNamespace.second  rx  rL   c                :    | j                   j                  dd      S )Nr%  millisecondrX  rl   s    rI   r|  z&EagerExprDateTimeNamespace.millisecond      ~~55dMJJrL   c                :    | j                   j                  dd      S )Nr%  microsecondrX  rl   s    rI   r  z&EagerExprDateTimeNamespace.microsecond  r}  rL   c                :    | j                   j                  dd      S )Nr%  
nanosecondrX  rl   s    rI   r  z%EagerExprDateTimeNamespace.nanosecond  s    ~~55dLIIrL   c                :    | j                   j                  dd      S )Nr%  ordinal_dayrX  rl   s    rI   r  z&EagerExprDateTimeNamespace.ordinal_day  r}  rL   c                :    | j                   j                  dd      S )Nr%  weekdayrX  rl   s    rI   r  z"EagerExprDateTimeNamespace.weekday  s    ~~55dIFFrL   c                :    | j                   j                  dd      S )Nr%  total_minutesrX  rl   s    rI   r  z(EagerExprDateTimeNamespace.total_minutes      ~~55dOLLrL   c                :    | j                   j                  dd      S )Nr%  total_secondsrX  rl   s    rI   r  z(EagerExprDateTimeNamespace.total_seconds  r  rL   c                :    | j                   j                  dd      S )Nr%  total_millisecondsrX  rl   s    rI   r  z-EagerExprDateTimeNamespace.total_milliseconds      ~~55d<PQQrL   c                :    | j                   j                  dd      S )Nr%  total_microsecondsrX  rl   s    rI   r  z-EagerExprDateTimeNamespace.total_microseconds  r  rL   c                :    | j                   j                  dd      S )Nr%  total_nanosecondsrX  rl   s    rI   r  z,EagerExprDateTimeNamespace.total_nanoseconds  s    ~~55d<OPPrL   c                >    | j                   j                  dd|      S )Nr%  truncate)everyrX  )rF   r  s     rI   r  z#EagerExprDateTimeNamespace.truncate  s    ~~55dJe5TTrL   c                >    | j                   j                  dd|      S )Nr%  	offset_bybyrX  rF   r  s     rI   r  z$EagerExprDateTimeNamespace.offset_by  s    ~~55dKB5OOrL   N)r^  r   r[   r   )rc  
str | Noner[   r   )rc  r   r[   r   )rj  r<   r[   r   rY  )r  r   r[   r   r  r   r[   r   )r\   r]   r^   r\  ra  rg  ri  rl  ro  rq  rs  ru  rw  rz  r|  r  r  r  r  r  r  r  r  r  r  r  rE   rL   rI   r$  r$    s    X





DDECDFFKKJKGMMRRQUPrL   r$  c                  ,    e Zd ZddZddZddZddZy)	r'  c                :    | j                   j                  dd      S )Nr  r   rX  rl   s    rI   r   zEagerExprListNamespace.len  s    ~~55feDDrL   c                :    | j                   j                  dd      S )Nr  r  rX  rl   s    rI   r  zEagerExprListNamespace.unique  s    ~~55fhGGrL   c                >    | j                   j                  dd|      S )Nr  contains)itemrX  )rF   r  s     rI   r  zEagerExprListNamespace.contains  s    ~~55fjt5TTrL   c                >    | j                   j                  dd|      S )Nr  get)r  rX  )rF   r  s     rI   r  zEagerExprListNamespace.get  s    ~~55fe55QQrL   NrY  )r  r7   r[   r   )r  r   r[   r   )r\   r]   r^   r   r  r  r  rE   rL   rI   r'  r'    s    EHURrL   r'  c                  V    e Zd Zd
dZddZddZddZd
dZd
dZe	dd       Z
ddZy	)CompliantExprNameNamespacec                $    | j                  d       S rD   r   rl   s    rI   r  zCompliantExprNameNamespace.keep  s    ""4((rL   c                $    | j                  |      S rD   r  )rF   r   s     rI   mapzCompliantExprNameNamespace.map  s    ""8,,rL   c                ,    | j                  fd      S )Nc                     |  S rD   rE   )r   prefixs    rI   r   z3CompliantExprNameNamespace.prefix.<locals>.<lambda>  s    6(4&0A rL   r  rF   r  s    `rI   r  z!CompliantExprNameNamespace.prefix      ""#ABBrL   c                ,    | j                  fd      S )Nc                    |   S rD   rE   )r   suffixs    rI   r   z3CompliantExprNameNamespace.suffix.<locals>.<lambda>!  s    4&0A rL   r  rF   r  s    `rI   r  z!CompliantExprNameNamespace.suffix   r  rL   c                @    | j                  t        j                        S rD   )r   r   lowerrl   s    rI   to_lowercasez'CompliantExprNameNamespace.to_lowercase#      ""399--rL   c                @    | j                  t        j                        S rD   )r   r   upperrl   s    rI   to_uppercasez'CompliantExprNameNamespace.to_uppercase&  r  rL   c                    d fd}|S )Nc               :    | D cg c]
  } |       c}S c c}w rD   rE   )r   r   r   s     rI   r   z:CompliantExprNameNamespace._alias_output_names.<locals>.fn+  s    +784DJ888r   )r   r   r[   r   rE   )r   r   s   ` rI   re   z.CompliantExprNameNamespace._alias_output_names)  s    	9 	rL   c                    y rD   rE   r=  s     rI   r   z)CompliantExprNameNamespace._from_callable0  rK   rL   NrI  )r   r   r[   r   )r  r   r[   r   )r  r   r[   r   )r   r   r[   r   )r   r4  r[   r   )r\   r]   r^   r  r  r  r  r  r  r   re   r   rE   rL   rI   r  r    s<    
)-CC..   RrL   r  c                      e Zd ZddZy)r*  c                <    | j                   }|j                  |      S rD   )rH  r   )rF   r   rN  s      rI   r   z%EagerExprNameNamespace._from_callable8  s    ~~,,T22rL   N)r   r4  r[   r   r\   r]   r^   r   rE   rL   rI   r*  r*  3  s    
3rL   r*  c                      e Zd ZddZy)rA  c                f    | j                   }|r| j                  |      nd }|j                  |      S rD   )rH  re   r   )rF   r   rN  r   s       rI   r   z$LazyExprNameNamespace._from_callableB  s0    ~~9=t//54,,\::rL   N)r   r4  r[   r   r  rE   rL   rI   rA  rA  =  s    
;rL   rA  c                  |    e Zd ZddZddZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZddZy)r,  c                :    | j                   j                  dd      S )Nr   	len_charsrX  rl   s    rI   r  z"EagerExprStringNamespace.len_charsK  s    ~~55e[IIrL   c               D    | j                   j                  dd||||      S )Nr   replace)patternrO   r4  r  rX  )rF   r  rO   r4  r  s        rI   r  z EagerExprStringNamespace.replaceN  s+    ~~559gUGq 6 
 	
rL   c               B    | j                   j                  dd|||      S )Nr   replace_all)r  rO   r4  rX  )rF   r  rO   r4  s       rI   r  z$EagerExprStringNamespace.replace_allS  s)    ~~55=' 6 
 	
rL   c                >    | j                   j                  dd|      S )Nr   strip_chars)
charactersrX  )rF   r  s     rI   r  z$EagerExprStringNamespace.strip_charsX  s%    ~~55=Z 6 
 	
rL   c                >    | j                   j                  dd|      S )Nr   starts_with)r  rX  r  s     rI   r  z$EagerExprStringNamespace.starts_with]      ~~55e]SY5ZZrL   c                >    | j                   j                  dd|      S )Nr   	ends_with)r  rX  r  s     rI   r  z"EagerExprStringNamespace.ends_with`  s    ~~55e[QW5XXrL   c               @    | j                   j                  dd||      S )Nr   r  )r  r4  rX  )rF   r  r4  s      rI   r  z!EagerExprStringNamespace.containsc  s'    ~~55:w 6 
 	
rL   c                @    | j                   j                  dd||      S )Nr   slice)r  lengthrX  )rF   r  r  s      rI   r  zEagerExprStringNamespace.sliceh  s'    ~~5576& 6 
 	
rL   c                >    | j                   j                  dd|      S )Nr   splitr  rX  r  s     rI   r  zEagerExprStringNamespace.splitm  s    ~~55eW5LLrL   c                >    | j                   j                  dd|      S )Nr   to_datetimer]  rX  r_  s     rI   r  z$EagerExprStringNamespace.to_datetimep  r  rL   c                >    | j                   j                  dd|      S )Nr   to_dater]  rX  r_  s     rI   r  z EagerExprStringNamespace.to_dates  s    ~~55eYv5VVrL   c                :    | j                   j                  dd      S )Nr   r  rX  rl   s    rI   r  z%EagerExprStringNamespace.to_lowercasev      ~~55e^LLrL   c                :    | j                   j                  dd      S )Nr   r  rX  rl   s    rI   r  z%EagerExprStringNamespace.to_uppercasey  r  rL   c                >    | j                   j                  dd|      S )Nr   zfill)widthrX  )rF   r  s     rI   r  zEagerExprStringNamespace.zfill|  s    ~~55eWE5RRrL   NrY  )
r  r   rO   r   r4  r   r  r   r[   r   )r  r   rO   r   r4  r   r[   r   )r  r  r[   r   )r  r   r[   r   )r  r   r[   r   )r  r   r4  r   r[   r   )r  r   r  r9  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   rL   rI   r,  r,  H  sQ    J





[Y



M[WMMSrL   r,  c                      e Zd ZddZy)r/  c                \    | j                   j                  dd|      j                  |      S )Nr0  fieldr   )rH  r"  r   )rF   r   s     rI   r  zEagerExprStructNamespace.field  s.    ~~55hd5SYY
 	
rL   N)r   r   r[   r   )r\   r]   r^   r  rE   rL   rI   r/  r/    s    
rL   r/  N)[
__future__r   collections.abcr   	functoolsr   r1  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"   r#   narwhals.dependenciesr$   r%   r&   typing_extensionsr'   r(   r)   narwhals._compliant.seriesr*   r+   r,   r-   narwhals._expression_parsingr.   r/   r0   r1   r2   narwhals.typingr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   __all__rA   r=   r   r>   r?   r@   rD  rK  rS  r   r$  r'  r  r*  rA  r,  r/  rE   rL   rI   <module>r     s   " #  ! K K  7 <     B1.P:ZZCHH   X1 1*</Xo/NNO</~N/#BBC_==>N()b_==>_==>)bXg
.o|34_l*+g
.V- +-.9Lk9Y0Z-0$&'2C)D$$
3WZ5H $
$y1793E $
Oz"L$<gj>QOLPz"$5j$A7:CVLP^Rz"M*$=wz?RR R$%#$RB3z"z*J3;i y)I;5Sz"OJ$?AT5Sp
z"OJ$?AT
rL   