
    }i                       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+ d dl,m-Z- erPd dl.m/Z/ d dl0m1Z1m2Z2 d dlmZm3Z3 d dl4m5Z5 d dlmZm6Z6m7Z7 d dl8m9Z9 d dl:m;Z; d dl$m<Z<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG g dZH G d de          ZI G d deeeef                   ZJ G d deJeef         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!eKee#f         eee#f                   ZN G d" d#e%e         ee                   ZO G d$ d%eOe          e
e                    ZP G d& d'eOe"         e
e"                   ZQ G d( d)ePe          ee          e
e                    ZR G d* d+ePe          ee          e
e                    ZS G d, d-ePe          ee          e
e                    ZT G d. d/eOe         ee         ee                   ZU G d0 d1ePe          eUe          e
e                    ZV G d2 d3eQe"         eUe"         e
e"                   ZW G d4 d5ePe          ee          e
e                    ZX G d6 d7ePe          ee          e
e                    ZYd8S )9    )annotations)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)MultiOutputExpressionError)Sequence)SelfTypeIs)r   EagerNamespace)CompliantSeries)r   	EvalNames
EvalSeries)ExprMetadata)	NoDefault)ImplementationVersion_LimitedContext)ClosedIntervalFillNullStrategy	IntoDTypeModeKeepStrategyNonNestedLiteral
RankMethodRollingInterpolationMethodTimeUnit)CompliantExprDepthTrackingExpr	EagerExprLazyExpr
NativeExprc                  J    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
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                    d S N )selfr@   rA   s      L/home/jrussi/.local/lib/python3.11/site-packages/narwhals/_compliant/expr.pybetweenzNativeExpr.betweenG             valuer'   c                   d S rD   rE   rF   rK   s     rG   __gt__zNativeExpr.__gt__M   rI   rJ   c                   d S rD   rE   rM   s     rG   __lt__zNativeExpr.__lt__N   rI   rJ   c                   d S rD   rE   rM   s     rG   __ge__zNativeExpr.__ge__O   rI   rJ   c                   d S rD   rE   rM   s     rG   __le__zNativeExpr.__le__P   rI   rJ   c                   d S rD   rE   rM   s     rG   __eq__zNativeExpr.__eq__Q   rI   rJ   c                   d S rD   rE   rM   s     rG   __ne__zNativeExpr.__ne__R   rI   rJ   N)r@   r   rA   r   rB   r   )rK   r   rB   r'   )__name__
__module____qualname____doc__rH   rN   rP   rR   rT   rV   rX   rE   rJ   rG   r>   r>   @   sr          ;::: 10000000000000000000000000rJ   r>   c                  x   e Zd ZU ded<   ded<   ded<   dZded	<   edMd            ZdNdZdOdZdPdZ	e
dQd            Ze
dRd            ZdOdZdSdZdOd ZdOd!ZdTd$ZdOd%ZdOd&ZdOd'ZdOd(ZdOd)ZdOd*ZdUdVd.ZdUdVd/ZdOd0ZdOd1ZdWd3ZdWd4ZdOd5ZdOd6ZdOd7Z dXd9Z!dYd>Z"dZdDZ#d[dJZ$ed\dL            Z%dS )]r:   r/   _implementationEvalNames[CompliantFrameT]_evaluate_output_namesAliasNames | None_alias_output_namesNzExprMetadata | None_opt_metadatarB   r-   c                @    | j         d}t          |          | j         S )Na3  `_opt_metadata` is None. This is usually the result of trying to do some operation (such as `over`) which requires access to the metadata at the compliant level. You may want to consider rewriting your logic so that this operation is not necessary. Ideally you should avoid setting `_opt_metadata` manually.)rc   AssertionError)rF   msgs     rG   	_metadatazCompliantExpr._metadata`   s.    %4  !%%%!!rJ   dfr   )Sequence[CompliantSeriesOrNativeExprT_co]c                    d S rD   rE   rF   rh   s     rG   __call__zCompliantExpr.__call__m   s    47CrJ   r'   c                    | S rD   rE   rF   s    rG   __narwhals_expr__zCompliantExpr.__narwhals_expr__p   s    rJ   )CompliantNamespace[CompliantFrameT, Self]c                    d S rD   rE   rn   s    rG   __narwhals_namespace__z$CompliantExpr.__narwhals_namespace__s   rI   rJ   column_indicesintcontextr1   c                   d S rD   rE   )clsru   rs   s      rG   from_column_indicesz!CompliantExpr.from_column_indicest   s	     srJ   evaluate_column_namesc                  d S rD   rE   rw   ry   ru   s      rG   from_column_nameszCompliantExpr.from_column_namesx   	     srJ   c                    d S rD   rE   rn   s    rG   	broadcastzCompliantExpr.broadcast   rI   rJ   namestrc                    d S rD   rE   rF   r   s     rG   aliaszCompliantExpr.alias   rI   rJ   c                    d S rD   rE   rn   s    rG   allzCompliantExpr.all   rI   rJ   c                    d S rD   rE   rn   s    rG   anyzCompliantExpr.any   rI   rJ   ignore_nullsboolc                   d S rD   rE   rF   r   s     rG   	any_valuezCompliantExpr.any_value   rI   rJ   c                    d S rD   rE   rn   s    rG   countzCompliantExpr.count   rI   rJ   c                    d S rD   rE   rn   s    rG   minzCompliantExpr.min   rI   rJ   c                    d S rD   rE   rn   s    rG   maxzCompliantExpr.max   rI   rJ   c                    d S rD   rE   rn   s    rG   meanzCompliantExpr.mean   rI   rJ   c                    d S rD   rE   rn   s    rG   sumzCompliantExpr.sum   rI   rJ   c                    d S rD   rE   rn   s    rG   medianzCompliantExpr.median   rI   rJ   rE   order_bySequence[str]c                    d S rD   rE   rF   r   s     rG   firstzCompliantExpr.first   rI   rJ   c                    d S rD   rE   r   s     rG   lastzCompliantExpr.last   rI   rJ   c                    d S rD   rE   rn   s    rG   skewzCompliantExpr.skew   rI   rJ   c                    d S rD   rE   rn   s    rG   kurtosiszCompliantExpr.kurtosis   rI   rJ   ddofc                   d S rD   rE   rF   r   s     rG   stdzCompliantExpr.std   rI   rJ   c                   d S rD   rE   r   s     rG   varzCompliantExpr.var   rI   rJ   c                    d S rD   rE   rn   s    rG   n_uniquezCompliantExpr.n_unique   rI   rJ   c                    d S rD   rE   rn   s    rG   
null_countzCompliantExpr.null_count   rI   rJ   c                    d S rD   rE   rn   s    rG   lenzCompliantExpr.len   rI   rJ   partition_byc                    d S rD   rE   )rF   r   r   s      rG   overzCompliantExpr.over   rI   rJ   quantilefloatinterpolationr8   c                    d S rD   rE   rF   r   r   s      rG   r   zCompliantExpr.quantile   s    srJ   function9Callable[[CompliantSeries[Any]], CompliantExpr[Any, Any]]return_dtypeIntoDType | Nonereturns_scalarc                   d S rD   rE   )rF   r   r   r   s       rG   map_batcheszCompliantExpr.map_batches   s	     srJ   defaultSelf | NoDefaultoldSequence[Any]newc                   d S rD   rE   rF   r   r   r   r   s        rG   replace_strictzCompliantExpr.replace_strict   r}   rJ   NameNamespace[Self]c                    d S rD   rE   rn   s    rG   r   zCompliantExpr.name   s    +.3rJ   )rB   r-   )rh   r   rB   ri   rB   r'   )rB   rp   )rs   rt   ru   r1   rB   r'   )ry   r_   ru   r1   rB   r'   r   r   rB   r'   r   r   rB   r'   rE   r   r   rB   r'   r   rt   rB   r'   )r   r   r   r   rB   r'   r   r   r   r8   rB   r'   )r   r   r   r   r   r   rB   r'   
r   r   r   r   r   r   r   r   rB   r'   )rB   r   )&rY   rZ   r[   __annotations__rc   propertyrg   rl   ro   rr   classmethodrx   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   rJ   rG   r:   r:   U   s8         $###6666**** *.M----
" 
" 
" X
"8 8 8 8    WVVV   [    [ %$$$ ,+++;;;;    !!!!>>>>>=====####,,,,,,,,####%%%%UUUU          ... X...rJ   r:   c                  .    e Zd Zedd            Zdd	Zd
S )ImplExprindicesSequence[int]rB   r_   c                    d fd}|S )Nrh   r   rB   r   c                0    | j         fdD             S )Nc                     g | ]
}|         S rE   rE   ).0icolumn_namess     rG   
<listcomp>z<ImplExpr._eval_names_indices.<locals>.fn.<locals>.<listcomp>   s    555LO555rJ   )columns)rh   r   r   s    @rG   fnz(ImplExpr._eval_names_indices.<locals>.fn   s%    :L5555W5555rJ   )rh   r   rB   r   rE   )r   r   s   ` rG   _eval_names_indiceszImplExpr._eval_names_indices   s(    	6 	6 	6 	6 	6 	6 	rJ   framer   r   c               X    |                      |          }| j        x}r ||          n|S rD   )r`   rb   )rF   r   namesr   s       rG   _evaluate_aliaseszImplExpr._evaluate_aliases   s6     ++E22)-)A AMuuU|||MrJ   N)r   r   rB   r_   )r   r   rB   r   )rY   rZ   r[   staticmethodr   r   rE   rJ   rG   r   r      sN            \N N N N N NrJ   r   c                  .    e Zd Zedd	            ZddZdS )r;   rw   
type[Self]ry   r_   ru   r1   rB   r'   c                  d S rD   rE   r{   s      rG   r|   z#DepthTrackingExpr.from_column_names   r}   rJ   r   c                p    t          t          | 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   listrg   op_nodes_reversedrn   s    rG   _is_elementaryz DepthTrackingExpr._is_elementary   s-     488::;;<<AArJ   N)rw   r   ry   r_   ru   r1   rB   r'   )rB   r   )rY   rZ   r[   r   r|   r   rE   rJ   rG   r;   r;      sN            [B B B B B BrJ   r;   c                  0   e Zd ZU ded<   ddZddZddZedd            Zedd            Z	ddZ
d d!dd(Zd d!dd*Zedd.            Zdd/Zdd3Zdd4Zdd7Zdd:Zdd;Zdd<Zdd=Zdd>Zdd?Zdd@ZddAZddBZddCZddDZddEZddFZddGZddHZ ddIZ!ddJZ"ddKZ#ddLZ$ddMZ%ddNZ&ddOZ'ddPZ(ddQZ)ddRZ*ddSZ+ddTZ,ddUZ-ddVZ.ddYZ/ddZZ0dd[Z1dd\Z2dd]Z3dd^Z4dd_Z5dd`Z6ddaZ7ddbZ8ddeZ9ddfZ:ddgZ;ddhZ<ddiZ=ddlZ>ddrZ?ddsZ@ddtZAddvZBddwZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddZcddZdddZeddZfddZgddZhddZidddZjdddÄZkddńZlemddǄ            ZnemddɄ            Zoemdd˄            Zpemd d̈́            Zqemddτ            Zremddф            ZsdS (  r<   )EvalSeries[EagerDataFrameT, EagerSeriesT]_callcallevaluate_output_namesEvalNames[EagerDataFrameT]alias_output_namesra   implementationr/   versionr0   rB   Nonec                   d S rD   rE   )rF   r   r   r   r   r   s         rG   __init__zEagerExpr.__init__   s	     srJ   rh   r   Sequence[EagerSeriesT]c                ,    |                      |          S rD   )r   rk   s     rG   rl   zEagerExpr.__call__   s    zz"~~rJ   =EagerNamespace[EagerDataFrameT, EagerSeriesT, Self, Any, Any]c                    d S rD   rE   rn   s    rG   rr   z EagerExpr.__narwhals_namespace__   s    HKrJ   funcru   r1   r'   c               6     | ||||j         |j                  S )Nr   r   r   r   r^   _version)rw   r   r   r   ru   s        rG   _from_callablezEagerExpr._from_callable   s2     s"71"2$
 
 
 	
rJ   seriesr   c                D     | fdfdd j         j                  S )Nc                
    gS rD   rE   _dfr  s    rG   <lambda>z(EagerExpr._from_series.<locals>.<lambda>  s	     rJ   c                    j         gS rD   r   r	  s    rG   r  z(EagerExpr._from_series.<locals>.<lambda>  s    v{m rJ   r  r  )rw   r  s    `rG   _from_serieszEagerExpr._from_series  sB    s    ";";";";#!1O
 
 
 	
rJ   
alias_nameAliasName | Nonec                     j         d nfdnfdd	 fd}                     | j         j         j                  S )
Nc                2    fd |           D             S )Nc                &    g | ]} |          S rE   rE   r   xr  s     rG   r   zHEagerExpr._with_alias_output_names.<locals>.<lambda>.<locals>.<listcomp>  s.     & & &&'JJqMM& & &rJ   rE   )output_namesr  current_alias_output_namess    rG   r  z4EagerExpr._with_alias_output_names.<locals>.<lambda>  s6     & & & &+E+El+S+S& & & rJ   c                     fd| D             S )Nc                &    g | ]} |          S rE   rE   r  s     rG   r   zHEagerExpr._with_alias_output_names.<locals>.<lambda>.<locals>.<listcomp>"  s!    'L'L'L!

1'L'L'LrJ   rE   )r  r  s    rG   r  z4EagerExpr._with_alias_output_names.<locals>.<lambda>"  s    'L'L'L'L|'L'L'L rJ   rh   r   rB   list[EagerSeriesT]c           	         r?d t           |                                |                               D             S d t           |                               |                     D             S )Nc                >    g | ]\  }}|                     |          S rE   r   r   r  r   s      rG   r   zDEagerExpr._with_alias_output_names.<locals>.func.<locals>.<listcomp>'  s8       $ LL&&  rJ   c                >    g | ]\  }}|                     |          S rE   r  r  s      rG   r   zDEagerExpr._with_alias_output_names.<locals>.func.<locals>.<listcomp>-  s8        FD T""  rJ   )r"   r`   )rh   r   rF   s    rG   r   z0EagerExpr._with_alias_output_names.<locals>.func%  s    !  (2R"4"4T5P5PQS5T5T"U"U) )    $.ttBxx9T9TUW9X9X$Y$Y   rJ   r  rh   r   rB   r  )rb   	__class__r`   r^   r  )rF   r  r   r   r  s   `` @@rG   _with_alias_output_namesz"EagerExpr._with_alias_output_names  s    %)%=" ! D *5	     
 MLLL 		 	 	 	 	 	 	 ~~"&"=1/M  
 
 	
rJ   Fr   method_namer   r   r   kwargsr   c               r    t          | j        f||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.
            kwargs: keyword arguments to pass to function.
        )r$  r   r   r   ru   )r   _reuse_series_innerr  r`   rb   )rF   r$  r   r%  r   s        rG   _reuse_serieszEagerExpr._reuse_series:  sd     $
#)
 
 	
 
 """&"=#7	 # 
 
 	
rJ   dict[str, Any]c                   i S rD   rE   )rF   r   s     rG   _reuse_series_extra_kwargsz$EagerExpr._reuse_series_extra_kwargsW  s	     	rJ   obj
Self | AnyTypeIs[Self]c                "    t          |d          S )Nro   )hasattr)rw   r-  s     rG   _is_exprzEagerExpr._is_expr\  s    s/000rJ   c                  	  fd|                                 D             }t          |fi                                |		fd            D             }                               d |D             }}t	          d t          ||          D                       rd| d}t          |          |S )Nc                p    i | ]2\  }}|                     |          r                    |          n|3S rE   r2  _evaluate_single_output_exprr   r   rK   rh   rF   s      rG   
<dictcomp>z1EagerExpr._reuse_series_inner.<locals>.<dictcomp>h  sY     
 
 
 e }}U##"11%888
 
 
rJ   r#  c                f    g | ]-}r|                      |                    n
 |          .S rE   )_from_scalar)r   r  methodr   s     rG   r   z1EagerExpr._reuse_series_inner.<locals>.<listcomp>s  sR     '
 '
 '
 4BUFv///vvf~~'
 '
 '
rJ   c              3  $   K   | ]}|j         V  d S rD   r  )r   ss     rG   	<genexpr>z0EagerExpr._reuse_series_inner.<locals>.<genexpr>w  s$      5J5Jaf5J5J5J5J5J5JrJ   c              3  (   K   | ]\  }}||k    V  d S rD   rE   )r   r   r   s      rG   r>  z0EagerExpr._reuse_series_inner.<locals>.<genexpr>x  s;       
 
)eTETM
 
 
 
 
 
rJ   ztSafety assertion failed, please report a bug to https://github.com/narwhals-dev/narwhals/issues
Expression aliases: 
)itemsr   r,  r   r   r"   re   )
rF   rh   r$  r   r%  outaliasesr   rf   r;  s
   `` `     @rG   r(  zEagerExpr._reuse_series_inner`  s?   
 
 
 
 
  &||~~	
 
 
 
 
--^-LL
 
 

'
 '
 '
 '
 '
$r(('
 '
 '
 //335J5Jc5J5J5J 
 
-7-G-G
 
 
 
 
 	&3'.3 3 3  !%%%
rJ   series_namespace5Literal['cat', 'dt', 'list', 'name', 'str', 'struct']expressifiable_argsc                b     d fd}                      | 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')))`).
        rh   r   rB   r  c                |      fd                                 D             fd            D             S )Nc                p    i | ]2\  }}|                     |          r                    |          n|3S rE   r5  r7  s      rG   r8  zDEagerExpr._reuse_series_namespace.<locals>.inner.<locals>.<dictcomp>  sY         D% ==''b55e<<<  rJ   c           	     X    g | ]&} t          t          |                    d i 'S r   )getattr)r   r  r%  r$  rD  s     rG   r   zDEagerExpr._reuse_series_namespace.<locals>.inner.<locals>.<listcomp>  sO        H(899;GGQQ&QQ  rJ   )rA  )rh   r%  rF  r$  rF   rD  s   `@rG   innerz0EagerExpr._reuse_series_namespace.<locals>.inner  s}         $7#<#<#>#>	  F     "d2hh   rJ   r'  r   r  r`   rb   )rF   rD  r$  rF  rL  s   ```` rG   _reuse_series_namespacez!EagerExpr._reuse_series_namespace  sd    $
	 
	 
	 
	 
	 
	 
	 
	 
	 """&"=#7	 # 
 
 	
rJ   c                r     d fd} t                     | j         j         j         j                  S )Nrh   r   rB   r  c                `    g } |           D ]}d|_         |                    |           |S )NT)
_broadcastappend)rh   resultsresultrF   s      rG   r   z!EagerExpr.broadcast.<locals>.func  sA    G$r(( ' '$(!v&&&&NrJ   r  r   )typer`   rb   r^   r  rF   r   s   ` rG   r   zEagerExpr.broadcast  s\    	 	 	 	 	 	 tDzz"&"=#7/M
 
 
 	
rJ   dtyper4   c                0    |                      d|          S )Ncast)rW  r)  )rF   rW  s     rG   rY  zEagerExpr.cast  s    !!&!666rJ   operatorotherc               0    |                      ||          S )Nr\  rZ  rF   r[  r\  s      rG   _with_binaryzEagerExpr._with_binary  s    !!(%!888rJ   c               V    |                      d                              ||          S )Nliteralr^  )r   r)  r_  s      rG   _with_binary_rightzEagerExpr._with_binary_right  s'    zz)$$22852IIIrJ   c                .    |                      d|          S )NrV   r`  rF   r\  s     rG   rV   zEagerExpr.__eq__        5111rJ   c                .    |                      d|          S )NrX   re  rf  s     rG   rX   zEagerExpr.__ne__  rg  rJ   c                .    |                      d|          S )NrR   re  rf  s     rG   rR   zEagerExpr.__ge__  rg  rJ   c                .    |                      d|          S )NrN   re  rf  s     rG   rN   zEagerExpr.__gt__  rg  rJ   c                .    |                      d|          S )NrT   re  rf  s     rG   rT   zEagerExpr.__le__  rg  rJ   c                .    |                      d|          S )NrP   re  rf  s     rG   rP   zEagerExpr.__lt__  rg  rJ   c                .    |                      d|          S )N__and__re  rf  s     rG   rn  zEagerExpr.__and__        E222rJ   c                .    |                      d|          S )N__or__re  rf  s     rG   rq  zEagerExpr.__or__  rg  rJ   c                .    |                      d|          S )N__add__re  rf  s     rG   rs  zEagerExpr.__add__  ro  rJ   c                .    |                      d|          S )N__sub__re  rf  s     rG   ru  zEagerExpr.__sub__  ro  rJ   c                .    |                      d|          S )N__rsub__rc  rf  s     rG   rw  zEagerExpr.__rsub__      &&z5999rJ   c                .    |                      d|          S )N__mul__re  rf  s     rG   r{  zEagerExpr.__mul__  ro  rJ   c                .    |                      d|          S )N__truediv__re  rf  s     rG   r}  zEagerExpr.__truediv__  s      666rJ   c                .    |                      d|          S )N__rtruediv__rx  rf  s     rG   r  zEagerExpr.__rtruediv__  s    &&~u===rJ   c                .    |                      d|          S )N__floordiv__re  rf  s     rG   r  zEagerExpr.__floordiv__  s      777rJ   c                .    |                      d|          S )N__rfloordiv__rx  rf  s     rG   r  zEagerExpr.__rfloordiv__  s    &&>>>rJ   c                .    |                      d|          S )N__pow__re  rf  s     rG   r  zEagerExpr.__pow__  ro  rJ   c                .    |                      d|          S )N__rpow__rx  rf  s     rG   r  zEagerExpr.__rpow__  ry  rJ   c                .    |                      d|          S )N__mod__re  rf  s     rG   r  zEagerExpr.__mod__  ro  rJ   c                .    |                      d|          S )N__rmod__rx  rf  s     rG   r  zEagerExpr.__rmod__  ry  rJ   c                ,    |                      d          S )N
__invert__rZ  rn   s    rG   r  zEagerExpr.__invert__       !!,///rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.null_count  s    !!,t!DDDrJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.n_unique      !!*T!BBBrJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.sum
      !!%!===rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.count  s    !!'$!???rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.mean      !!&!>>>rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.median  s    !!(4!@@@rJ   r   rt   c               2    |                      dd|          S )Nr   Tr   r   rZ  r   s     rG   r   zEagerExpr.std      !!%4!HHHrJ   c               2    |                      dd|          S )Nr   Tr  rZ  r   s     rG   r   zEagerExpr.var  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.skew  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.kurtosis  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.any"  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.all%  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.max(  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.min+  r  rJ   c                0    |                      dd          S )Narg_minTr#  rZ  rn   s    rG   r  zEagerExpr.arg_min.      !!)D!AAArJ   c                0    |                      dd          S )Narg_maxTr#  rZ  rn   s    rG   r  zEagerExpr.arg_max1  r  rJ   lower_boundupper_boundc                2    |                      d||          S )Nclip)r  r  rZ  )rF   r  r  s      rG   r  zEagerExpr.clip6  s&    !! " 
 
 	
rJ   c                0    |                      d|          S )N
clip_lower)r  rZ  )rF   r  s     rG   r  zEagerExpr.clip_lower;      !!,K!HHHrJ   c                0    |                      d|          S )N
clip_upper)r  rZ  )rF   r  s     rG   r  zEagerExpr.clip_upper>  r  rJ   c                ,    |                      d          S )Nis_nullrZ  rn   s    rG   r  zEagerExpr.is_nullA  s    !!),,,rJ   c                ,    |                      d          S )Nis_nanrZ  rn   s    rG   r  zEagerExpr.is_nanD  s    !!(+++rJ   rK   float | Nonec                0    |                      d|          S )Nfill_nan)rK   rZ  rM   s     rG   r  zEagerExpr.fill_nanG  s    !!*E!:::rJ   Self | NonestrategyFillNullStrategy | Nonelimit
int | Nonec                4    |                      d|||          S )N	fill_null)rK   r  r  rZ  )rF   rK   r  r  s       rG   r  zEagerExpr.fill_nullJ  s*     !!uxu " 
 
 	
rJ   c                0    |                      d|          S )Nis_inr^  rZ  rf  s     rG   r  zEagerExpr.is_inQ  s    !!'!777rJ   c                ,    |                      d          S )Narg_truerZ  rn   s    rG   r  zEagerExpr.arg_trueT  s    !!*---rJ   
predicatesc                r    |                                  } |j        |ddi}|                     d|          S )Nr   Ffilter)	predicate)rr   all_horizontalr)  )rF   r  plxr  s       rG   r  zEagerExpr.filterW  sC    ))++&C&
GGG	!!(i!@@@rJ   c                ,    |                      d          S )N
drop_nullsrZ  rn   s    rG   r  zEagerExpr.drop_nulls\  r  rJ   r   r   r   r   r   r   r   c               6    |                      d||||          S )Nr   )r   r   r   r   rZ  r   s        rG   r   zEagerExpr.replace_strict_  s,     !!#3l " 
 
 	
rJ   
descending
nulls_lastc               2    |                      d||          S )Nsortr  r  rZ  rF   r  r  s      rG   r  zEagerExpr.sortk  s    !!&ZJ!WWWrJ   c                ,    |                      d          S )NabsrZ  rn   s    rG   r  zEagerExpr.absn      !!%(((rJ   c                0    |                      dd          S )NuniqueF)maintain_orderrZ  rn   s    rG   r  zEagerExpr.uniqueq  s    !!(5!AAArJ   c                ,    |                      d          S )NdiffrZ  rn   s    rG   r  zEagerExpr.difft      !!&)))rJ   nfractionwith_replacementseedc               6    |                      d||||          S )Nsample)r  r  r  r  rZ  )rF   r  r  r  r  s        rG   r  zEagerExpr.samplew  s.     !!H?OVZ " 
 
 	
rJ   r   c                r     dfd} t                      fd j        | j         j                  S )Nr   r   rB   c                X    t          |           dk    rd|  }t          |          gS N   z:Expected function with single output, found output names: )r   r%   r   rf   r   s     rG   r   z+EagerExpr.alias.<locals>.alias_output_names  s5    5zzQZSXZZ05556MrJ   c                2    fd |           D             S )Nc                :    g | ]}|                               S rE   r  r  s     rG   r   z5EagerExpr.alias.<locals>.<lambda>.<locals>.<listcomp>  s%    BBBvT**BBBrJ   rE   )rh   r   rF   s    rG   r  z!EagerExpr.alias.<locals>.<lambda>  s$    BBBBbBBB rJ   r  r   r   rB   r   )rU  r`   r^   r  )rF   r   r   s   `` rG   r   zEagerExpr.alias  sf    	 	 	 	 	 	 tDzzBBBBB"&"=1/M
 
 
 	
rJ   c                ,    |                      d          S )N	is_uniquerZ  rn   s    rG   r  zEagerExpr.is_unique      !!+...rJ   c                ,    |                      d          S )Nis_first_distinctrZ  rn   s    rG   r  zEagerExpr.is_first_distinct  s    !!"5666rJ   c                ,    |                      d          S )Nis_last_distinctrZ  rn   s    rG   r  zEagerExpr.is_last_distinct  s    !!"4555rJ   r   r   r   r8   c                4    |                      dd||          S )Nr   T)r   r   r   rZ  r   s      rG   r   zEagerExpr.quantile  s-     !!'	 " 
 
 	
rJ   c                0    |                      d|          S )Nheadr  rZ  rF   r  s     rG   r  zEagerExpr.head      !!&A!...rJ   c                0    |                      d|          S )Ntailr  rZ  r  s     rG   r  zEagerExpr.tail  r  rJ   decimalsc                0    |                      d|          S )Nround)r  rZ  )rF   r  s     rG   r  zEagerExpr.round  s    !!'H!===rJ   c                ,    |                      d          S )NfloorrZ  rn   s    rG   r  zEagerExpr.floor  s    !!'***rJ   c                ,    |                      d          S )NceilrZ  rn   s    rG   r  zEagerExpr.ceil  r  rJ   c                0    |                      dd          S )Nr   Tr#  rZ  rn   s    rG   r   zEagerExpr.len  r  rJ   offsetc                2    |                      d||          S )Ngather_every)r  r  rZ  )rF   r  r  s      rG   r  zEagerExpr.gather_every  s    !!.Af!EEErJ   keepr5   c               0    |                      d|          S )Nmode)r  rZ  )rF   r  s     rG   r  zEagerExpr.mode  s    !!&t!444rJ   c                ,    |                      d          S )N	is_finiterZ  rn   s    rG   r  zEagerExpr.is_finite  r  rJ   window_sizemin_samplescenterc               4    |                      d|||          S )Nrolling_meanr  r  r	  rZ  rF   r  r  r	  s       rG   r  zEagerExpr.rolling_mean  s+    !!##	 " 
 
 	
rJ   c               6    |                      d||||          S )Nrolling_stdr  r  r	  r   rZ  rF   r  r  r	  r   s        rG   r  zEagerExpr.rolling_std  0     !!## " 
 
 	
rJ   c               4    |                      d|||          S )Nrolling_sumr  rZ  r  s       rG   r  zEagerExpr.rolling_sum  s)    !!{TZ " 
 
 	
rJ   c               6    |                      d||||          S )Nrolling_varr  rZ  r  s        rG   r  zEagerExpr.rolling_var  r  rJ   r   Callable[[Any], Any]c               b     d fd}                      | j         j                   S )Nrh   r   rB   r   c                >    |           }d |D             }t          fd|D                       }|d         |d         }}t          ||          }t          |          st          |          r2t	          |j                  t          fd|D                       }nQt          ||j                  rt          d |D                       }n"|j        t          fd|D                       }t          fd|D                       }t          d	 |D                       }snt          |          r_t          |           d
k    rL|                    d          }	t          ||	                   }
dt          |
           d}t          |          |S )Nc              3  $   K   | ]}|j         V  d S rD   r  )r   input_seriess     rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s%      PP,L-PPPPPPrJ   c              3  .   K   | ]} |          V  d S rD   rE   )r   r  r   s     rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s-      "P"P88F#3#3"P"P"P"P"P"PrJ   r   )ru   c              3  Z   K   | ]%\  }} |                               |          V  &d S rD   r  )r   arrout_name
from_numpys      rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s=      WW=3zz#44X>>WWWWWWrJ   c              3  F   K   | ]\  }}|                     |          V  d S rD   r  )r   r  r  s      rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s3      QQ:J&(v||H55QQQQQQrJ   c              3  Z   K   | ]%\  }} |                               |          V  &d S rD   r  )r   valr  from_scalars      rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s?      XXMC{{3//55h??XXXXXXrJ   c              3  B   K   | ]}|                               V  d S rD   )rY  )r   r  r   s     rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s/      NNVv{{<88NNNNNNrJ   c              3  <   K   | ]}t          |          d k    V  dS )r  N)r   )r   rs     rG   r>  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s,      $A$AQSVVq[$A$A$A$A$A$ArJ   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   indexrU  r!   	TypeError)rh   udf_series_inr  udf_series_out	_first_in
_first_outitrT  is_scalar_result_idx_typerf   r   r$  r   r   r   rF   s               @@rG   r   z#EagerExpr.map_batches.<locals>.func  s    DHHMPP-PPPL""P"P"P"P-"P"P"PPPN$1!$4nQ6GzI NL99Bj)) Y_Z-H-H Y$Y%94HHH
WWWWTVWWWWWJ	(;<< YQQbQQQQQ'4XXXXUWXXXXX'NNNNvNNNNN$$A$A&$A$A$AAA" %,<(=(= %3r77Q;;'--d33^D122P1%88P P P 
  nn$MrJ   r'  rh   r   rB   r   rM  )rF   r   r   r   r   s   ```` rG   r   zEagerExpr.map_batches  se    	 	 	 	 	 	 	 	 	@ """&"=#7	 # 
 
 	
rJ   c                0    |                      d|          S )Nshiftr  rZ  r  s     rG   r6  zEagerExpr.shift  s    !!'Q!///rJ   reversec               0    |                      d|          S )Ncum_sumr7  rZ  rF   r7  s     rG   r9  zEagerExpr.cum_sum      !!)W!===rJ   c               0    |                      d|          S )N	cum_countr:  rZ  r;  s     rG   r>  zEagerExpr.cum_count  s    !!+w!???rJ   c               0    |                      d|          S )Ncum_minr:  rZ  r;  s     rG   r@  zEagerExpr.cum_min  r<  rJ   c               0    |                      d|          S )Ncum_maxr:  rZ  r;  s     rG   rB  zEagerExpr.cum_max  r<  rJ   c               0    |                      d|          S )Ncum_prodr:  rZ  r;  s     rG   rD  zEagerExpr.cum_prod   s    !!*g!>>>rJ   r;  r7   c               2    |                      d||          S )Nrank)r;  r  rZ  )rF   r;  r  s      rG   rF  zEagerExpr.rank#  s    !!&J!OOOrJ   basec                0    |                      d|          S )Nlog)rG  rZ  )rF   rG  s     rG   rI  zEagerExpr.log&  s    !!%d!333rJ   c                ,    |                      d          S )NexprZ  rn   s    rG   rK  zEagerExpr.exp)  r  rJ   c                ,    |                      d          S )NsinrZ  rn   s    rG   rM  zEagerExpr.sin,  r  rJ   c                ,    |                      d          S )NcosrZ  rn   s    rG   rO  zEagerExpr.cos/  r  rJ   c                ,    |                      d          S )NsqrtrZ  rn   s    rG   rQ  zEagerExpr.sqrt2  r  rJ   closedr2   c                4    |                      d|||          S )N
is_between)r  r  rR  rZ  )rF   r  r  rR  s       rG   rT  zEagerExpr.is_between5  s+     !!k{SY " 
 
 	
rJ   rE   r   r   c                     s                      dd          S d
 fd}                     | j         j         	          S )Nr   Tr#  rh   r   rB   r   c                Z     | j         ddd}                                  |           S NFr  )r  r   rh   r   rF   s    rG   r   zEagerExpr.first.<locals>.func@  s3    (uGGGB4::<<###rJ   r'  rh   r   rB   r   r)  r  r`   rb   rF   r   r   s   `` rG   r   zEagerExpr.first<  sz     	D%%gd%CCC	$ 	$ 	$ 	$ 	$ 	$ 	$ """&"=#7	 # 
 
 	
rJ   c                     s                      dd          S d
 fd}                     | j         j         	          S )Nr   Tr#  rh   r   rB   r   c                Z     | j         ddd}                                  |           S rW  )r  r   rX  s    rG   r   zEagerExpr.last.<locals>.funcO  s1    (uGGGB499;;r??"rJ   r'  rY  rZ  r[  s   `` rG   r   zEagerExpr.lastK  sz     	C%%fT%BBB	# 	# 	# 	# 	# 	# 	# """&"=#7	 # 
 
 	
rJ   r   c               2    |                      dd|          S )Nr   T)r   r   rZ  r   s     rG   r   zEagerExpr.any_valueZ  s&    !!< " 
 
 	
rJ   EagerExprCatNamespace[Self]c                     t          |           S rD   )EagerExprCatNamespacern   s    rG   catzEagerExpr.cat_      $T***rJ    EagerExprDateTimeNamespace[Self]c                     t          |           S rD   )EagerExprDateTimeNamespacern   s    rG   dtzEagerExpr.dtc  s    )$///rJ   EagerExprListNamespace[Self]c                     t          |           S rD   )EagerExprListNamespacern   s    rG   r   zEagerExpr.listg      %d+++rJ   EagerExprNameNamespace[Self]c                     t          |           S rD   )EagerExprNameNamespacern   s    rG   r   zEagerExpr.namek  rk  rJ   EagerExprStringNamespace[Self]c                     t          |           S rD   )EagerExprStringNamespacern   s    rG   r   zEagerExpr.stro      '---rJ   EagerExprStructNamespace[Self]c                     t          |           S rD   )EagerExprStructNamespacern   s    rG   structzEagerExpr.structs  rr  rJ   N)r   r   r   r   r   ra   r   r/   r   r0   rB   r   r4  )rB   r   )
r   r   r   r   r   ra   ru   r1   rB   r'   )r  r   rB   r'   )r  r  rB   r'   )r$  r   r   r   r%  r   rB   r'   )r   r   rB   r*  )r-  r.  rB   r/  )
rh   r   r$  r   r   r   r%  r   rB   r   )rD  rE  r$  r   rF  r   rB   r'   r   )rW  r4   rB   r'   )r[  r   r\  r'   rB   r'   )r\  r'   rB   r'   r   )r  r'   r  r'   rB   r'   )r  r'   rB   r'   )r  r'   rB   r'   )rK   r  rB   r'   )rK   r  r  r  r  r  rB   r'   )r\  r   rB   r'   )r  r'   rB   r'   r   )r  r   r  r   rB   r'   )
r  r  r  r  r  r   r  r  rB   r'   r   r   )r  rt   rB   r'   )r  rt   rB   r'   )r  rt   r  rt   rB   r'   )r  r5   rB   r'   )r  rt   r  rt   r	  r   rB   r'   )
r  rt   r  rt   r	  r   r   rt   rB   r'   )r   r  r   r   r   r   rB   r'   )r7  r   rB   r'   )r;  r7   r  r   rB   r'   )rG  r   rB   r'   )r  r'   r  r'   rR  r2   rB   r'   r   r   r   )rB   r_  )rB   rd  )rB   rh  )rB   rl  )rB   ro  )rB   rs  )trY   rZ   r[   r   r   rl   rr   r   r  r  r"  r)  r,  r2  r(  rN  r   rY  r`  rc  rV   rX   rR   rN   rT   rP   rn  rq  rs  ru  rw  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  r  r  r  r  r   r  r  r  r  r  r  r  r   r6  r9  r>  r@  rB  rD  rF  rI  rK  rM  rO  rQ  rT  r   r   r   r   rb  rg  r   r   r   rv  rE   rJ   rG   r<   r<      s	         5444      L L L L 
 
 
 [
  
 
 
 [
!
 !
 !
 !
H ;@
 
 
 
 
 
< ).     
 1 1 1 [1       D#
 #
 #
 #
J
 
 
 
&7 7 7 79 9 9 9J J J J2 2 2 22 2 2 22 2 2 22 2 2 22 2 2 22 2 2 23 3 3 32 2 2 23 3 3 33 3 3 3: : : :3 3 3 37 7 7 7> > > >8 8 8 8? ? ? ?3 3 3 3: : : :3 3 3 3: : : :0 0 0 0E E E EC C C C> > > >@ @ @ @? ? ? ?A A A AI I I II I I I? ? ? ?C C C C> > > >> > > >> > > >> > > >B B B BB B B B

 
 
 

I I I II I I I- - - -, , , ,; ; ; ;
 
 
 
8 8 8 8. . . .A A A A
0 0 0 0

 

 

 

X X X X) ) ) )B B B B* * * *

 

 

 


 
 
 
/ / / /7 7 7 76 6 6 6
 
 
 
/ / / // / / /> > > >+ + + +* * * *> > > >F F F F5 5 5 5/ / / /
 
 
 
	
 	
 	
 	

 
 
 

	
 	
 	
 	
,
 ,
 ,
 ,
\0 0 0 0> > > >@ @ @ @> > > >> > > >? ? ? ?P P P P4 4 4 4) ) ) )) ) ) )) ) ) )* * * *
 
 
 

 
 
 
 

 
 
 
 

 
 
 

 + + + X+ 0 0 0 X0 , , , X, , , , X, . . . X. . . . X. . .rJ   r<   c                  ~    e Zd ZU ddZddZedd
            Z e            Z e            Z	 e            Z
ded<   dS )r=   r   ra   rB   r'   c                   d S rD   rE   rV  s     rG   r"  z!LazyExpr._with_alias_output_names|  rI   rJ   r   r   c                :    dfd}|                      |          S )Nr   r   rB   c                X    t          |           dk    rd|  }t          |          gS r  )r   
ValueErrorr  s     rG   r   zLazyExpr.alias.<locals>.fn~  s3    5zzQZSXZZ oo%6MrJ   r  )r"  )rF   r   r   s    ` rG   r   zLazyExpr.alias}  s7    	 	 	 	 	 	 ,,R000rJ   LazyExprNameNamespace[Self]c                     t          |           S rD   )LazyExprNameNamespacern   s    rG   r   zLazyExpr.name  rc  rJ   r    rb  N)r   ra   rB   r'   r   )rB   r|  )rY   rZ   r[   r"  r   r   r   r    ewm_meanr   rb  r   rE   rJ   rG   r=   r=   y  s          POOO1 1 1 1 + + + X+   H!/##K*?,,C,,,,,,rJ   r=   c                  2    e Zd ZU ded<   edd            ZdS )_ExprNamespacer   _compliant_exprrB   c                    | j         S rD   r  rn   s    rG   	compliantz_ExprNamespace.compliant  s    ##rJ   NrB   r   )rY   rZ   r[   r   r   r  rE   rJ   rG   r  r    sB          '&&&$ $ $ X$ $ $rJ   r  c                      e Zd ZddZdS )EagerExprNamespaceexprr   rB   r   c                   || _         d S rD   r  rF   r  s     rG   r   zEagerExprNamespace.__init__      #rJ   N)r  r   rB   r   rY   rZ   r[   r   rE   rJ   rG   r  r    (        $ $ $ $ $ $rJ   r  c                      e Zd ZddZdS )LazyExprNamespacer  r   rB   r   c                   || _         d S rD   r  r  s     rG   r   zLazyExprNamespace.__init__  r  rJ   N)r  r   rB   r   r  rE   rJ   rG   r  r    r  rJ   r  c                      e Zd ZddZdS )ra  rB   r   c                8    | j                             dd          S )Nrb  get_categoriesr  rN  rn   s    rG   r  z$EagerExprCatNamespace.get_categories  s    ~55e=MNNNrJ   NrB   r   )rY   rZ   r[   r  rE   rJ   rG   ra  ra    s.        O O O O O OrJ   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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"S )*rf  formatr   rB   r   c                <    | j                             dd|          S )Nrg  	to_stringr  r  rF   r  s     rG   r  z$EagerExprDateTimeNamespace.to_string  s     ~55dKPV5WWWrJ   	time_zone
str | Nonec                <    | j                             dd|          S )Nrg  replace_time_zoner  r  rF   r  s     rG   r  z,EagerExprDateTimeNamespace.replace_time_zone  )    ~55% 6 
 
 	
rJ   c                <    | j                             dd|          S )Nrg  convert_time_zoner  r  r  s     rG   r  z,EagerExprDateTimeNamespace.convert_time_zone  r  rJ   	time_unitr9   c                <    | j                             dd|          S )Nrg  	timestamp)r  r  )rF   r  s     rG   r  z$EagerExprDateTimeNamespace.timestamp  s(    ~55+ 6 
 
 	
rJ   c                8    | j                             dd          S )Nrg  dater  rn   s    rG   r  zEagerExprDateTimeNamespace.date      ~55dFCCCrJ   c                8    | j                             dd          S )Nrg  yearr  rn   s    rG   r  zEagerExprDateTimeNamespace.year  r  rJ   c                8    | j                             dd          S )Nrg  monthr  rn   s    rG   r  z EagerExprDateTimeNamespace.month  s    ~55dGDDDrJ   c                8    | j                             dd          S )Nrg  dayr  rn   s    rG   r  zEagerExprDateTimeNamespace.day  s    ~55dEBBBrJ   c                8    | j                             dd          S )Nrg  hourr  rn   s    rG   r  zEagerExprDateTimeNamespace.hour  r  rJ   c                8    | j                             dd          S )Nrg  minuter  rn   s    rG   r  z!EagerExprDateTimeNamespace.minute      ~55dHEEErJ   c                8    | j                             dd          S )Nrg  secondr  rn   s    rG   r  z!EagerExprDateTimeNamespace.second  r  rJ   c                8    | j                             dd          S )Nrg  millisecondr  rn   s    rG   r  z&EagerExprDateTimeNamespace.millisecond      ~55dMJJJrJ   c                8    | j                             dd          S )Nrg  microsecondr  rn   s    rG   r  z&EagerExprDateTimeNamespace.microsecond  r  rJ   c                8    | j                             dd          S )Nrg  
nanosecondr  rn   s    rG   r  z%EagerExprDateTimeNamespace.nanosecond  s    ~55dLIIIrJ   c                8    | j                             dd          S )Nrg  ordinal_dayr  rn   s    rG   r  z&EagerExprDateTimeNamespace.ordinal_day  r  rJ   c                8    | j                             dd          S )Nrg  weekdayr  rn   s    rG   r  z"EagerExprDateTimeNamespace.weekday  s    ~55dIFFFrJ   c                8    | j                             dd          S )Nrg  total_minutesr  rn   s    rG   r  z(EagerExprDateTimeNamespace.total_minutes      ~55dOLLLrJ   c                8    | j                             dd          S )Nrg  total_secondsr  rn   s    rG   r  z(EagerExprDateTimeNamespace.total_seconds  r  rJ   c                8    | j                             dd          S )Nrg  total_millisecondsr  rn   s    rG   r  z-EagerExprDateTimeNamespace.total_milliseconds      ~55d<PQQQrJ   c                8    | j                             dd          S )Nrg  total_microsecondsr  rn   s    rG   r  z-EagerExprDateTimeNamespace.total_microseconds  r  rJ   c                8    | j                             dd          S )Nrg  total_nanosecondsr  rn   s    rG   r  z,EagerExprDateTimeNamespace.total_nanoseconds  s    ~55d<OPPPrJ   everyc                <    | j                             dd|          S )Nrg  truncate)r  r  )rF   r  s     rG   r  z#EagerExprDateTimeNamespace.truncate  s    ~55dJe5TTTrJ   byc                <    | j                             dd|          S )Nrg  	offset_byr  r  rF   r  s     rG   r  z$EagerExprDateTimeNamespace.offset_by  s    ~55dKB5OOOrJ   N)r  r   rB   r   )r  r  rB   r   )r  r   rB   r   )r  r9   rB   r   r  )r  r   rB   r   r  r   rB   r   )rY   rZ   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   rJ   rG   rf  rf    s2       X X X X
 
 
 


 
 
 


 
 
 

D D D DD D D DE E E EC C C CD D D DF F F FF F F FK K K KK K K KJ J J JK K K KG G G GM M M MM M M MR R R RR R R RQ Q Q QU U U UP P P P P PrJ   rf  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S )rj  rB   r   c                8    | j                             dd          S )Nr   r   r  rn   s    rG   r   zEagerExprListNamespace.len      ~55feDDDrJ   c                8    | j                             dd          S )Nr   r  r  rn   s    rG   r  zEagerExprListNamespace.unique      ~55fhGGGrJ   itemr6   c                <    | j                             dd|          S )Nr   contains)r  r  )rF   r  s     rG   r  zEagerExprListNamespace.contains  s    ~55fjt5TTTrJ   r*  rt   c                <    | j                             dd|          S )Nr   get)r*  r  )rF   r*  s     rG   r  zEagerExprListNamespace.get  s    ~55fe55QQQrJ   c                8    | j                             dd          S )Nr   r   r  rn   s    rG   r   zEagerExprListNamespace.min  r  rJ   c                8    | j                             dd          S )Nr   r   r  rn   s    rG   r   zEagerExprListNamespace.max  r  rJ   c                8    | j                             dd          S )Nr   r   r  rn   s    rG   r   zEagerExprListNamespace.mean  s    ~55ffEEErJ   c                8    | j                             dd          S )Nr   r   r  rn   s    rG   r   zEagerExprListNamespace.median  r  rJ   c                8    | j                             dd          S )Nr   r   r  rn   s    rG   r   zEagerExprListNamespace.sum  r  rJ   r  r   r  c               >    | j                             dd||          S )Nr   r  r  r  r  s      rG   r  zEagerExprListNamespace.sort  s*    ~55Fzj 6 
 
 	
rJ   Nr  )r  r6   rB   r   )r*  rt   rB   r   )r  r   r  r   rB   r   )rY   rZ   r[   r   r  r  r  r   r   r   r   r   r  rE   rJ   rG   rj  rj    s        E E E EH H H HU U U UR R R RE E E EE E E EF F F FH H H HE E E E
 
 
 
 
 
rJ   rj  c                  ^    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dS )CompliantExprNameNamespacerB   r   c                ,    |                      d           S rD   r  rn   s    rG   r  zCompliantExprNameNamespace.keep"  s    ""4(((rJ   r   r   c                ,    |                      |          S rD   r  )rF   r   s     rG   mapzCompliantExprNameNamespace.map%  s    ""8,,,rJ   prefixr   c                4    |                      fd          S )Nc                     |  S rD   rE   )r   r  s    rG   r  z3CompliantExprNameNamespace.prefix.<locals>.<lambda>)  s    60A40A0A rJ   r  rF   r  s    `rG   r  z!CompliantExprNameNamespace.prefix(  !    ""#A#A#A#ABBBrJ   suffixc                4    |                      fd          S )Nc                    |   S rD   rE   )r   r  s    rG   r  z3CompliantExprNameNamespace.suffix.<locals>.<lambda>,  s    40A0A0A rJ   r  rF   r  s    `rG   r  z!CompliantExprNameNamespace.suffix+  r  rJ   c                @    |                      t          j                  S rD   )r  r   lowerrn   s    rG   to_lowercasez'CompliantExprNameNamespace.to_lowercase.      ""39---rJ   c                @    |                      t          j                  S rD   )r  r   upperrn   s    rG   to_uppercasez'CompliantExprNameNamespace.to_uppercase1  r  rJ   r   r   c                    d fd}|S )Nr  r   rB   c                    fd| D             S )Nc                &    g | ]} |          S rE   rE   )r   r   r   s     rG   r   zNCompliantExprNameNamespace._alias_output_names.<locals>.fn.<locals>.<listcomp>7  s!    8884DDJJ888rJ   rE   )r  r   s    rG   r   z:CompliantExprNameNamespace._alias_output_names.<locals>.fn6  s    8888<8888rJ   )r  r   rB   r   rE   )r   r   s   ` rG   rb   z.CompliantExprNameNamespace._alias_output_names4  s(    	9 	9 	9 	9 	9 	9 	rJ   r  c                   d S rD   rE   rV  s     rG   r  z)CompliantExprNameNamespace._from_callable;  rI   rJ   Nr  )r   r   rB   r   )r  r   rB   r   )r  r   rB   r   )r   r   rB   r   )r   r  rB   r   )rY   rZ   r[   r  r  r  r  r  r  r   rb   r  rE   rJ   rG   r  r    s        
) ) ) )- - - -C C C CC C C C. . . .. . . .    \ RQQQQQrJ   r  c                      e Zd ZddZdS )rn  r   r  rB   r   c                :    | j         }|                    |          S rD   )r  r"  )rF   r   r  s      rG   r  z%EagerExprNameNamespace._from_callableC  s    ~,,T222rJ   N)r   r  rB   r   rY   rZ   r[   r  rE   rJ   rG   rn  rn  >  s(        
3 3 3 3 3 3rJ   rn  c                      e Zd ZddZdS )r~  r   r  rB   r   c                l    | j         }|r|                     |          nd }|                    |          S rD   )r  rb   r"  )rF   r   r  r  s       rG   r  z$LazyExprNameNamespace._from_callableM  s:    ~9=Gt//5554,,\:::rJ   N)r   r  rB   r   r  rE   rJ   rG   r~  r~  H  s(        
; ; ; ; ; ;rJ   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
d0dZd1dZd1dZd(dZd(dZd2d!Zd(d"Zd3d4d%Zd3d4d&Zd'S )5rq  rB   r   c                8    | j                             dd          S )Nr   	len_charsr  rn   s    rG   r
  z"EagerExprStringNamespace.len_charsV  s    ~55e[IIIrJ   rK   patternr   rb  r   r  rt   c               B    | j                             dd||||          S )Nr   replace)r  rK   rb  r  r  )rF   rK   r  rb  r  s        rG   r  z EagerExprStringNamespace.replaceY  s0     ~559gUGq 6 
 
 	
rJ   c               @    | j                             dd|||          S )Nr   replace_all)r  rK   rb  r  )rF   rK   r  rb  s       rG   r  z$EagerExprStringNamespace.replace_all`  s.     ~55=' 6 
 
 	
rJ   
charactersr  c                <    | j                             dd|          S )Nr   strip_chars)r  r  )rF   r  s     rG   r  z$EagerExprStringNamespace.strip_charsg  s(    ~55=Z 6 
 
 	
rJ   r  c                <    | j                             dd|          S )Nr   starts_with)r  r  r  s     rG   r  z$EagerExprStringNamespace.starts_withl       ~55e]SY5ZZZrJ   r  c                <    | j                             dd|          S )Nr   	ends_with)r  r  r  s     rG   r  z"EagerExprStringNamespace.ends_witho  s     ~55e[QW5XXXrJ   c               >    | j                             dd||          S )Nr   r  )r  rb  r  )rF   r  rb  s      rG   r  z!EagerExprStringNamespace.containsr  s*    ~55:w 6 
 
 	
rJ   r  lengthr  c                >    | j                             dd||          S )Nr   slice)r  r  r  )rF   r  r  s      rG   r  zEagerExprStringNamespace.slicew  s*    ~5576& 6 
 
 	
rJ   r  c                <    | j                             dd|          S )Nr   splitr  r  r  s     rG   r  zEagerExprStringNamespace.split|  s    ~55eW5LLLrJ   r  c                <    | j                             dd|          S )Nr   to_datetimer  r  r  s     rG   r  z$EagerExprStringNamespace.to_datetime  r  rJ   c                <    | j                             dd|          S )Nr   to_dater  r  r  s     rG   r!  z EagerExprStringNamespace.to_date  s    ~55eYv5VVVrJ   c                8    | j                             dd          S )Nr   r  r  rn   s    rG   r  z%EagerExprStringNamespace.to_lowercase      ~55e^LLLrJ   c                8    | j                             dd          S )Nr   r  r  rn   s    rG   r  z%EagerExprStringNamespace.to_uppercase  r#  rJ   widthc                <    | j                             dd|          S )Nr   zfill)r%  r  )rF   r%  s     rG   r'  zEagerExprStringNamespace.zfill  s    ~55eWE5RRRrJ   c                8    | j                             dd          S )Nr   to_titlecaser  rn   s    rG   r)  z%EagerExprStringNamespace.to_titlecase  r#  rJ    	fill_charc                >    | j                             dd||          S )Nr   	pad_startr  r+  r  rF   r  r+  s      rG   r-  z"EagerExprStringNamespace.pad_start  s*    ~55;v 6 
 
 	
rJ   c                >    | j                             dd||          S )Nr   pad_endr.  r  r/  s      rG   r1  z EagerExprStringNamespace.pad_end  s*    ~559Vy 6 
 
 	
rJ   Nr  )
rK   r   r  r   rb  r   r  rt   rB   r   )rK   r   r  r   rb  r   rB   r   )r  r  rB   r   )r  r   rB   r   )r  r   rB   r   )r  r   rb  r   rB   r   )r  rt   r  r  rB   r   r  )r  r  rB   r   )r%  rt   rB   r   )r*  )r  rt   r+  r   rB   r   )rY   rZ   r[   r
  r  r  r  r  r  r  r  r  r  r!  r  r  r'  r)  r-  r1  rE   rJ   rG   rq  rq  S  s       J J J J
 
 
 

 
 
 

 
 
 

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


 
 
 

M M M M[ [ [ [W W W WM M M MM M M MS S S SM M M M
 
 
 
 


 
 
 
 
 
 
rJ   rq  c                      e Zd ZddZdS )ru  r   r   rB   r   c                b    | j                             dd|                              |          S )Nrv  fieldr  )r  rN  r   r   s     rG   r4  zEagerExprStructNamespace.field  s4    ~55hd5SSYY
 
 	
rJ   N)r   r   rB   r   )rY   rZ   r[   r4  rE   rJ   rG   ru  ru    s(        
 
 
 
 
 
rJ   ru  N)Z
__future__r   	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!   r"   narwhals.dependenciesr#   r$   narwhals.exceptionsr%   collections.abcr&   typing_extensionsr'   r(   r)   narwhals._compliant.seriesr*   r+   r,   narwhals._expression_parsingr-   narwhals._typingr.   r/   r0   r1   narwhals.typingr2   r3   r4   r5   r6   r7   r8   r9   __all__r>   r:   r   r;   r<   r=   r  r  r  ra  rf  rj  r  rn  r~  rq  ru  rE   rJ   rG   <module>rF     sa   " " " " " "       ! ! ! ! ! ! K K K K K K K K K K K K K K K K                7 6 6 6 6 6 < < < < < <                                     B A A A A A A A : : : : : : ((((((........PPPPPPPP::::::LLLLLLLLLL999999******HHHHHHHHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 X
W
W1 1 1 1 1 1 1 1*U/ U/ U/ U/ U/Xo/NNOU/ U/ U/pN N N N N/#BBC_==>N N N("B "B "B "B "B_==>_==>"B "B "BJO
. O
. O
. O
. O
.o|34_l*+O
. O
. O
.f- - - - - +-.9Lk9Y0Z- - -,$ $ $ $ $&'2C)D$ $ $$ $ $ $ $
3WZ5H $ $ $
$ $ $ $ $y1793E $ $ $
O O O O Oz"L$<gj>QO O OLP LP LP LP LPz"$5j$A7:CVLP LP LP^!
 !
 !
 !
 !
z"M*$=wz?R!
 !
 !
HR R R R R$%#$R R RB3 3 3 3 3z"z*J3 3 3; ; ; ; ;i y)I; ; ;F
 F
 F
 F
 F
z"OJ$?ATF
 F
 F
R
 
 
 
 
z"OJ$?AT
 
 
 
 
rJ   