
    hh6                       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"                   ZZd7S )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                  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 )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.
    argsr   kwdsreturnc                    d S N )selfrC   rD   s      O/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_compliant/expr.pybetweenzNativeExpr.betweenH             valuer'   c                   d S rG   rH   rI   rN   s     rJ   __gt__zNativeExpr.__gt__N   rL   rM   c                   d S rG   rH   rP   s     rJ   __lt__zNativeExpr.__lt__O   rL   rM   c                   d S rG   rH   rP   s     rJ   __ge__zNativeExpr.__ge__P   rL   rM   c                   d S rG   rH   rP   s     rJ   __le__zNativeExpr.__le__Q   rL   rM   c                   d S rG   rH   rP   s     rJ   __eq__zNativeExpr.__eq__R   rL   rM   c                   d S rG   rH   rP   s     rJ   __ne__zNativeExpr.__ne__S   rL   rM   N)rC   r   rD   r   rE   r   )rN   r   rE   r'   )__name__
__module____qualname____doc__rK   rQ   rS   rU   rW   rY   r[   rH   rM   rJ   rA   rA   A   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0rM   rA   c                  @   e Zd ZU ded<   ded<   ded<   ded<   dAdZdBdZdCdZedDd            ZedEd            Z	dFdZ
dBdZdBdZdBdZdBdZdBd ZdBd!ZdBd"ZdBd#ZdBd$ZdBd%ZdBd&ZdBd'ZdGd)ZdGd*ZdBd+ZdBd,ZdBd-ZdHd1ZdId6ZdJd=ZedKd?            Z d@S )Lr=   r0   _implementationEvalNames[CompliantFrameT]_evaluate_output_namesAliasNames | None_alias_output_nameszExprMetadata | None	_metadatadfr   rE   )Sequence[CompliantSeriesOrNativeExprT_co]c                    d S rG   rH   rI   rg   s     rJ   __call__zCompliantExpr.__call___   s    47CrM   r'   c                    | S rG   rH   rI   s    rJ   __narwhals_expr__zCompliantExpr.__narwhals_expr__b   s    rM   )CompliantNamespace[CompliantFrameT, Self]c                    d S rG   rH   rm   s    rJ   __narwhals_namespace__z$CompliantExpr.__narwhals_namespace__e   rL   rM   column_indicesintcontextr2   c                   d S rG   rH   )clsrt   rr   s      rJ   from_column_indicesz!CompliantExpr.from_column_indicesf   s	     srM   evaluate_column_namesc                  d S rG   rH   )rv   rx   rt   s      rJ   from_column_nameszCompliantExpr.from_column_namesj   s	     srM   kind/Literal[ExprKind.AGGREGATION, ExprKind.LITERAL]c                    d S rG   rH   )rI   r{   s     rJ   	broadcastzCompliantExpr.broadcastr       srM   c                    d S rG   rH   rm   s    rJ   allzCompliantExpr.allw   rL   rM   c                    d S rG   rH   rm   s    rJ   anyzCompliantExpr.anyx   rL   rM   c                    d S rG   rH   rm   s    rJ   countzCompliantExpr.county   rL   rM   c                    d S rG   rH   rm   s    rJ   minzCompliantExpr.minz   rL   rM   c                    d S rG   rH   rm   s    rJ   maxzCompliantExpr.max{   rL   rM   c                    d S rG   rH   rm   s    rJ   meanzCompliantExpr.mean|   rL   rM   c                    d S rG   rH   rm   s    rJ   sumzCompliantExpr.sum}   rL   rM   c                    d S rG   rH   rm   s    rJ   medianzCompliantExpr.median~   rL   rM   c                    d S rG   rH   rm   s    rJ   firstzCompliantExpr.first   rL   rM   c                    d S rG   rH   rm   s    rJ   lastzCompliantExpr.last   rL   rM   c                    d S rG   rH   rm   s    rJ   skewzCompliantExpr.skew   rL   rM   c                    d S rG   rH   rm   s    rJ   kurtosiszCompliantExpr.kurtosis   rL   rM   ddofc                   d S rG   rH   rI   r   s     rJ   stdzCompliantExpr.std   rL   rM   c                   d S rG   rH   r   s     rJ   varzCompliantExpr.var   rL   rM   c                    d S rG   rH   rm   s    rJ   n_uniquezCompliantExpr.n_unique   rL   rM   c                    d S rG   rH   rm   s    rJ   
null_countzCompliantExpr.null_count   rL   rM   c                    d S rG   rH   rm   s    rJ   lenzCompliantExpr.len   rL   rM   partition_bySequence[str]order_byc                    d S rG   rH   )rI   r   r   s      rJ   overzCompliantExpr.over   rL   rM   quantilefloatinterpolationr:   c                    d S rG   rH   rI   r   r   s      rJ   r   zCompliantExpr.quantile   r   rM   function9Callable[[CompliantSeries[Any]], CompliantExpr[Any, Any]]return_dtypeIntoDType | Nonereturns_scalarboolc                   d S rG   rH   )rI   r   r   r   s       rJ   map_batcheszCompliantExpr.map_batches   s	     srM   NameNamespace[Self]c                    d S rG   rH   rm   s    rJ   namezCompliantExpr.name   s    +.3rM   N)rg   r   rE   rh   rE   r'   )rE   ro   )rr   rs   rt   r2   rE   r'   )rx   rb   rt   r2   rE   r'   r{   r|   rE   r'   r   rs   rE   r'   )r   r   r   r   rE   r'   r   r   r   r:   rE   r'   )r   r   r   r   r   r   rE   r'   )rE   r   )!r\   r]   r^   __annotations__rk   rn   rq   classmethodrw   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   propertyr   rH   rM   rJ   r=   r=   V   s         $###6666****""""8 8 8 8    WVVV   [    [   
     !!!!    ####,,,,,,,,####%%%%UUUU       ... X...rM   r=   c                  .    e Zd Zedd            Zdd	Zd
S )ImplExprindicesSequence[int]rE   rb   c                    d fd}|S )Nrg   r   rE   r   c                0    | j         fdD             S )Nc                     g | ]
}|         S rH   rH   ).0icolumn_namess     rJ   
<listcomp>z<ImplExpr._eval_names_indices.<locals>.fn.<locals>.<listcomp>   s    555LO555rM   )columns)rg   r   r   s    @rJ   fnz(ImplExpr._eval_names_indices.<locals>.fn   s%    :L5555W5555rM   )rg   r   rE   r   rH   )r   r   s   ` rJ   _eval_names_indiceszImplExpr._eval_names_indices   s(    	6 	6 	6 	6 	6 	6 	rM   framer   r   c               X    |                      |          }| j        x}r ||          n|S rG   )rc   re   )rI   r   namesaliass       rJ   _evaluate_aliaseszImplExpr._evaluate_aliases   s6     ++E22)-)A AMuuU|||MrM   N)r   r   rE   rb   )r   r   rE   r   )r\   r]   r^   staticmethodr   r   rH   rM   rJ   r   r      sN            \N N N N N NrM   r   c                  R    e Zd ZU ded<   ded<   edddd            ZddZddZdS )r>   rs   _depthstr_function_name )function_namerv   
type[Self]rx   rb   rt   r2   r   rE   r'   c                  d S rG   rH   )rv   rx   rt   r   s       rJ   rz   z#DepthTrackingExpr.from_column_names   s	     srM   r   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   rm   s    rJ   _is_elementaryz DepthTrackingExpr._is_elementary   s     {QrM   c                P    t          |           j         d| j         d| j         dS )Nz(depth=z, function_name=))typer\   r   r   rm   s    rJ   __repr__zDepthTrackingExpr.__repr__   s/    t**%aadkaa4K^aaaarM   N)
rv   r   rx   rb   rt   r2   r   r   rE   r'   )rE   r   )rE   r   )r\   r]   r^   r   r   rz   r   r   rH   rM   rJ   r>   r>      s          KKK        [   "b b b b b brM   r>   c                  ,   e Zd ZU ded<   ded<   ddddZddZddZedddd#            Zedd&            Z	dd)Z
d*dd+dd1Zd*d2dd4Zedd8            Zdd9Zdd<Zdd?ZddBZddEZddFZddGZddHZddIZddJZddKZddLZddNZddOZddPZddQZddRZddSZddTZ ddUZ!ddVZ"ddWZ#ddXZ$ddYZ%ddZZ&dd[Z'dd\Z(dd]Z)dd^Z*dd_Z+dd`Z,ddaZ-ddbZ.dddZ/ddeZ0ddfZ1ddgZ2ddhZ3ddiZ4ddjZ5ddkZ6ddlZ7ddmZ8ddqZ9ddrZ:ddsZ;ddvZ<dd|Z=dd}Z>dd~Z?ddZ@ddZAddZBdd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ńZed dʄZfdd˄Zgdd̄Zheidd΄            ZjeiddЄ            Zkeidd҄            ZleiddԄ            Zmeiddք            Zneidd؄            ZodS (  r?   )EvalSeries[EagerDataFrameT, EagerSeriesT]_callr-   _scalar_kwargsNscalar_kwargscalldepthrs   r   r   evaluate_output_namesEvalNames[EagerDataFrameT]alias_output_namesrd   implementationr0   versionr1   r   ScalarKwargs | NonerE   Nonec                   d S rG   rH   )	rI   r   r   r   r   r   r   r   r   s	            rJ   __init__zEagerExpr.__init__   s	     srM   rg   r   Sequence[EagerSeriesT]c                ,    |                      |          S rG   )r   rj   s     rJ   rk   zEagerExpr.__call__   s    zz"~~rM   =EagerNamespace[EagerDataFrameT, EagerSeriesT, Self, Any, Any]c                    d S rG   rH   rm   s    rJ   rq   z EagerExpr.__narwhals_namespace__   s    HKrM   funcrt   r2   r'   c          
     <     | ||||||j         |j        |          S )Nr   r   r   r   r   r   r   ra   _version)rv   r   r   r   r   r   rt   r   s           rJ   _from_callablezEagerExpr._from_callable   s;     s'"71"2$'	
 	
 	
 		
rM   seriesr   c           	     H     | fdddfdd j         j                  S )Nc                
    gS rG   rH   _dfr   s    rJ   <lambda>z(EagerExpr._from_series.<locals>.<lambda>  s	     rM   r   r   c                    j         gS rG   r   r  s    rJ   r  z(EagerExpr._from_series.<locals>.<lambda>  s    v{m rM   )r   r   r   r   r   r   r   )rv   r   s    `rJ   _from_serieszEagerExpr._from_series  sH    s    "";";";";#!1O
 
 
 	
rM   
alias_nameAliasName | Nonec          
           j         d nfdnfdd	 fd}                     | j         j         j         j         j         j                  S )
Nc                2    fd |           D             S )Nc                &    g | ]} |          S rH   rH   r   xr  s     rJ   r   zHEagerExpr._with_alias_output_names.<locals>.<lambda>.<locals>.<listcomp>  s.     & & &&'JJqMM& & &rM   rH   )output_namesr  current_alias_output_namess    rJ   r  z4EagerExpr._with_alias_output_names.<locals>.<lambda>  s6     & & & &+E+El+S+S& & & rM   c                     fd| D             S )Nc                &    g | ]} |          S rH   rH   r  s     rJ   r   zHEagerExpr._with_alias_output_names.<locals>.<lambda>.<locals>.<listcomp>  s!    'L'L'L!

1'L'L'LrM   rH   )r  r  s    rJ   r  z4EagerExpr._with_alias_output_names.<locals>.<lambda>  s    'L'L'L'L|'L'L'L rM   rg   r   rE   list[EagerSeriesT]c           	         r?d t           |                                |                               D             S d t           |                               |                     D             S )Nc                >    g | ]\  }}|                     |          S rH   r   r   r   r   s      rJ   r   zDEagerExpr._with_alias_output_names.<locals>.func.<locals>.<listcomp>$  s8       $ LL&&  rM   c                >    g | ]\  }}|                     |          S rH   r  r  s      rJ   r   zDEagerExpr._with_alias_output_names.<locals>.func.<locals>.<listcomp>*  s8        FD T""  rM   )r#   rc   )rg   r   rI   s    rJ   r   z0EagerExpr._with_alias_output_names.<locals>.func"  s    !  (2R"4"4T5P5PQS5T5T"U"U) )    $.ttBxx9T9TUW9X9X$Y$Y   rM   r   rg   r   rE   r  )re   	__class__r   r   rc   ra   r   r   )rI   r  r   r   r  s   `` @@rJ   _with_alias_output_namesz"EagerExpr._with_alias_output_names  s    %)%=" ! D *5	     
 MLLL 		 	 	 	 	 	 	 ~~+-"&"=1/M-  	
 	
 		
rM   Fr   r   method_namer   r   expressifiable_argsr   c          	         t          | j        |||pi |          }|                     || 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')))`).
        )r  r   r   r     ->r   r   r   r   r   rt   )r   _reuse_series_innerr   r   r   rc   re   )rI   r  r   r   r  r   s         rJ   _reuse_serieszEagerExpr._reuse_series:  s    , $#)'-2 3
 
 
 ""+/!0AAKAA"&"=#7' # 
 
 	
rM   r   dict[str, Any]c                   i S rG   rH   )rI   r   s     rJ   _reuse_series_extra_kwargsz$EagerExpr._reuse_series_extra_kwargsc  s	     	rM   obj
Self | AnyTypeIs[Self]c                "    t          |d          S )Nrn   )hasattr)rv   r(  s     rJ   _is_exprzEagerExpr._is_exprh  s    s/000rM   c                   i | 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 rH   r-  _evaluate_exprr   r   rN   rg   rI   s      rJ   
<dictcomp>z1EagerExpr._reuse_series_inner.<locals>.<dictcomp>w  sS       D% $--2F2FQb''...E  rM   r$  c                f    g | ]-}r|                      |                    n
 |          .S rH   )_from_scalar)r   r   methodr   s     rJ   r   z1EagerExpr._reuse_series_inner.<locals>.<listcomp>  sR     '
 '
 '
 4BUFv///vvf~~'
 '
 '
rM   c              3  $   K   | ]}|j         V  d S rG   r  )r   ss     rJ   	<genexpr>z0EagerExpr._reuse_series_inner.<locals>.<genexpr>  s$      5J5Jaf5J5J5J5J5J5JrM   c              3  (   K   | ]\  }}||k    V  d S rG   rH   )r   r   r   s      rJ   r9  z0EagerExpr._reuse_series_inner.<locals>.<genexpr>  s;       
 
)eTETM
 
 
 
 
 
rM   ztSafety assertion failed, please report a bug to https://github.com/narwhals-dev/narwhals/issues
Expression aliases: 
)itemsr   r'  r   r   r#   AssertionError)rI   rg   r  r   r   r  kwargsoutaliasesr   msgr6  s   `` `       @rJ   r"  zEagerExpr._reuse_series_innerl  sS   

    #6#<#<#>#>  
 
 
--^-LL
 
 

'
 '
 '
 '
 '
$r(('
 '
 '
 //335J5Jc5J5J5J 
 
-7-G-G
 
 
 
 
 	&3'.3 3 3  !%%%
rM   series_namespace5Literal['cat', 'dt', 'list', 'name', 'str', 'struct']c           	          d
 fd}                      | 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')))`).
        rg   r   rE   r  c                |      fd                                 D             fd            D             S )Nc                p    i | ]2\  }}|                     |          r                    |          n|3S rH   r0  r2  s      rJ   r3  zDEagerExpr._reuse_series_namespace.<locals>.inner.<locals>.<dictcomp>  sS       D% $--2F2FQb''...E  rM   c           	     X    g | ]&} t          t          |                    d i 'S )rH   )getattr)r   r   r>  r  rB  s     rJ   r   zDEagerExpr._reuse_series_namespace.<locals>.inner.<locals>.<listcomp>  sO        H(899;GGQQ&QQ  rM   )r<  )rg   r>  r  r  rI   rB  s   `@rJ   innerz0EagerExpr._reuse_series_namespace.<locals>.inner  s{        #6#<#<#>#>  F     "d2hh   rM   r  r   .r!  r  )r   r   r   rc   re   r   )rI   rB  r  r  rI  s   ```` rJ   _reuse_series_namespacez!EagerExpr._reuse_series_namespace  s    $	 	 	 	 	 	 	 	 	 ""+/!0TT4DTT{TT"&"=#7- # 
 
 	
rM   r{   r|   c           
          d fd} t                     | j         j         j         j         j         j         j                  S )Nrg   r   rE   r  c                `    g } |           D ]}d|_         |                    |           |S )NT)
_broadcastappend)rg   resultsresultrI   s      rJ   r   z!EagerExpr.broadcast.<locals>.func  sA    G$r(( ' '$(!v&&&&NrM   r   r  )r   r   r   rc   re   ra   r   r   )rI   r{   r   s   `  rJ   r~   zEagerExpr.broadcast  sm    	 	 	 	 	 	 tDzz+-"&"=#7/M-	
 	
 	
 		
rM   dtyper5   c                0    |                      d|          S )Ncast)rR  r#  )rI   rR  s     rJ   rT  zEagerExpr.cast  s    !!&!666rM   operatorotherc               0    |                      ||          S )NrW  rU  rI   rV  rW  s      rJ   _with_binaryzEagerExpr._with_binary  s    !!(%!888rM   c               V    |                      d                              ||          S )NliteralrY  )r   r#  rZ  s      rJ   _with_binary_rightzEagerExpr._with_binary_right  s'    zz)$$22852IIIrM   c                .    |                      d|          S )NrY   r[  rI   rW  s     rJ   rY   zEagerExpr.__eq__        5111rM   c                .    |                      d|          S )Nr[   r`  ra  s     rJ   r[   zEagerExpr.__ne__  rb  rM   c                .    |                      d|          S )NrU   r`  ra  s     rJ   rU   zEagerExpr.__ge__  rb  rM   c                .    |                      d|          S )NrQ   r`  ra  s     rJ   rQ   zEagerExpr.__gt__  rb  rM   c                .    |                      d|          S )NrW   r`  ra  s     rJ   rW   zEagerExpr.__le__  rb  rM   c                .    |                      d|          S )NrS   r`  ra  s     rJ   rS   zEagerExpr.__lt__  rb  rM   Self | bool | Anyc                .    |                      d|          S )N__and__r`  ra  s     rJ   rj  zEagerExpr.__and__        E222rM   c                .    |                      d|          S )N__or__r`  ra  s     rJ   rm  zEagerExpr.__or__  rb  rM   c                .    |                      d|          S )N__add__r`  ra  s     rJ   ro  zEagerExpr.__add__  rk  rM   c                .    |                      d|          S )N__sub__r`  ra  s     rJ   rq  zEagerExpr.__sub__  rk  rM   c                .    |                      d|          S )N__rsub__r^  ra  s     rJ   rs  zEagerExpr.__rsub__      &&z5999rM   c                .    |                      d|          S )N__mul__r`  ra  s     rJ   rw  zEagerExpr.__mul__  rk  rM   c                .    |                      d|          S )N__truediv__r`  ra  s     rJ   ry  zEagerExpr.__truediv__  s      666rM   c                .    |                      d|          S )N__rtruediv__rt  ra  s     rJ   r{  zEagerExpr.__rtruediv__  s    &&~u===rM   c                .    |                      d|          S )N__floordiv__r`  ra  s     rJ   r}  zEagerExpr.__floordiv__  s      777rM   c                .    |                      d|          S )N__rfloordiv__rt  ra  s     rJ   r  zEagerExpr.__rfloordiv__  s    &&>>>rM   c                .    |                      d|          S )N__pow__r`  ra  s     rJ   r  zEagerExpr.__pow__  rk  rM   c                .    |                      d|          S )N__rpow__rt  ra  s     rJ   r  zEagerExpr.__rpow__  ru  rM   c                .    |                      d|          S )N__mod__r`  ra  s     rJ   r  zEagerExpr.__mod__  rk  rM   c                .    |                      d|          S )N__rmod__rt  ra  s     rJ   r  zEagerExpr.__rmod__  ru  rM   c                ,    |                      d          S )N
__invert__rU  rm   s    rJ   r  zEagerExpr.__invert__      !!,///rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.null_count  s    !!,t!DDDrM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.n_unique      !!*T!BBBrM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.sum      !!%!===rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.count      !!'$!???rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.mean"      !!&!>>>rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.median%  s    !!(4!@@@rM   r   c               6    |                      ddd|i          S )Nr   Tr   r  rU  r   s     rJ   r   zEagerExpr.std(  *    !!$vtn " 
 
 	
rM   c               6    |                      ddd|i          S )Nr   Tr   r  rU  r   s     rJ   r   zEagerExpr.var-  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.skew2  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.kurtosis5  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.any8  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.all;  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.max>  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.minA  r  rM   c                0    |                      dd          S )Narg_minTr$  rU  rm   s    rJ   r  zEagerExpr.arg_minD      !!)D!AAArM   c                0    |                      dd          S )Narg_maxTr$  rU  rm   s    rJ   r  zEagerExpr.arg_maxG  r  rM   lower_bound.Self | NumericLiteral | TemporalLiteral | Noneupper_boundc                2    |                      d||          S )Nclip)r  r  rU  )rI   r  r  s      rJ   r  zEagerExpr.clipL  s(    
 !! " 
 
 	
rM   c                ,    |                      d          S )Nis_nullrU  rm   s    rJ   r  zEagerExpr.is_nullU  s    !!),,,rM   c                ,    |                      d          S )Nis_nanrU  rm   s    rJ   r  zEagerExpr.is_nanX  s    !!(+++rM   rN   float | Nonec                0    |                      d|          S )Nfill_nan)rN   rU  rP   s     rJ   r  zEagerExpr.fill_nan[  s    !!*E!:::rM   Self | NonNestedLiteralstrategyFillNullStrategy | Nonelimit
int | Nonec                8    |                      d|||d          S )N	fill_null)r  r  )rN   r   rU  )rI   rN   r  r  s       rJ   r  zEagerExpr.fill_null^  s1     !!uTY4Z4Z " 
 
 	
rM   c                0    |                      d|          S )Nis_inrY  rU  ra  s     rJ   r  zEagerExpr.is_inh  s    !!'!777rM   c                ,    |                      d          S )Narg_truerU  rm   s    rJ   r  zEagerExpr.arg_truek  s    !!*---rM   
predicatesc                r    |                                  } |j        |ddi}|                     d|          S )Nignore_nullsFfilter)	predicate)rq   all_horizontalr#  )rI   r  plxr  s       rJ   r  zEagerExpr.filtern  sC    ))++&C&
GGG	!!(i!@@@rM   c                ,    |                      d          S )N
drop_nullsrU  rm   s    rJ   r  zEagerExpr.drop_nullss  r  rM   old!Sequence[Any] | Mapping[Any, Any]newSequence[Any]r   r   c               4    |                      d|||          S )Nreplace_strict)r  r  r   rU  )rI   r  r  r   s       rJ   r  zEagerExpr.replace_strictv  s*     !!#3\ " 
 
 	
rM   
descending
nulls_lastc               2    |                      d||          S )Nsort)r  r  rU  )rI   r  r  s      rJ   r  zEagerExpr.sort  s    !!&ZJ!WWWrM   c                ,    |                      d          S )NabsrU  rm   s    rJ   r  zEagerExpr.abs      !!%(((rM   c                0    |                      dd          S )NuniqueF)maintain_orderrU  rm   s    rJ   r  zEagerExpr.unique  s    !!(5!AAArM   c                ,    |                      d          S )NdiffrU  rm   s    rJ   r  zEagerExpr.diff      !!&)))rM   nfractionwith_replacementseedc               6    |                      d||||          S )Nsample)r  r  r  r  rU  )rI   r  r  r  r  s        rJ   r  zEagerExpr.sample  s.     !!H?OVZ " 
 
 	
rM   r   c           
          dfd} t                      fd j         j         j        | j         j         j                  S )Nr   r   rE   c                X    t          |           dk    rd|  }t          |          gS Nr  z:Expected function with single output, found output names: r   
ValueErrorr   rA  r   s     rJ   r   z+EagerExpr.alias.<locals>.alias_output_names  3    5zzQZSXZZ oo%6MrM   c                2    fd |           D             S )Nc                :    g | ]}|                               S rH   r  r  s     rJ   r   z5EagerExpr.alias.<locals>.<lambda>.<locals>.<listcomp>  s%    BBBvT**BBBrM   rH   )rg   r   rI   s    rJ   r  z!EagerExpr.alias.<locals>.<lambda>  s$    BBBBbBBB rM   r   r   r   rE   r   )r   r   r   rc   ra   r   r   )rI   r   r   s   `` rJ   r   zEagerExpr.alias  sw    	 	 	 	 	 	 tDzzBBBBB+-"&"=1/M-	
 	
 	
 		
rM   c                ,    |                      d          S )N	is_uniquerU  rm   s    rJ   r  zEagerExpr.is_unique      !!+...rM   c                ,    |                      d          S )Nis_first_distinctrU  rm   s    rJ   r  zEagerExpr.is_first_distinct  s    !!"5666rM   c                ,    |                      d          S )Nis_last_distinctrU  rm   s    rJ   r  zEagerExpr.is_last_distinct  s    !!"4555rM   r   r   r   r:   c                8    |                      dd||d          S )Nr   T)r   r   r  rU  r   s      rJ   r   zEagerExpr.quantile  s2     !!'/-PP " 
 
 	
rM   c                4    |                      dd|i          S )Nheadr  r   rU  rI   r  s     rJ   r  zEagerExpr.head      !!&a!AAArM   c                4    |                      dd|i          S )Ntailr  r   rU  r  s     rJ   r  zEagerExpr.tail  r  rM   decimalsc                0    |                      d|          S )Nround)r  rU  )rI   r  s     rJ   r  zEagerExpr.round  s    !!'H!===rM   c                ,    |                      d          S )NfloorrU  rm   s    rJ   r  zEagerExpr.floor  s    !!'***rM   c                ,    |                      d          S )NceilrU  rm   s    rJ   r  zEagerExpr.ceil  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.len  r  rM   offsetc                2    |                      d||          S )Ngather_every)r  r  rU  )rI   r  r  s      rJ   r  zEagerExpr.gather_every  s    !!.Af!EEErM   keepr6   c               4    |                      dd|i          S )Nmoder  r   rU  )rI   r  s     rJ   r  zEagerExpr.mode  s    !!&!GGGrM   c                ,    |                      d          S )N	is_finiterU  rm   s    rJ   r  zEagerExpr.is_finite  r  rM   window_sizemin_samplescenterc               8    |                      d|||d          S )Nrolling_meanr  r  r  r   rU  rI   r  r  r  s       rJ   r  zEagerExpr.rolling_mean  s5    !!**   " 
 
 	
rM   c               :    |                      d||||d          S )Nrolling_stdr  r  r  r   r   rU  rI   r  r  r  r   s        rJ   r  zEagerExpr.rolling_std  :     !!** 	  " 
 
 	
rM   c               8    |                      d|||d          S )Nrolling_sumr	  r   rU  r
  s       rJ   r  zEagerExpr.rolling_sum  s5    !!**   " 
 
 	
rM   c               :    |                      d||||d          S )Nrolling_varr  r   rU  r  s        rJ   r  zEagerExpr.rolling_var  r  rM   r   Callable[[Any], Any]c                    d	 fd}                      | j        dz    j        dz    j         j                   S )
Nrg   r   rE   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 rG   r  )r   input_seriess     rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s%      PP,L-PPPPPPrM   c              3  .   K   | ]} |          V  d S rG   rH   )r   r   r   s     rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s-      "P"P88F#3#3"P"P"P"P"P"PrM   r   )rt   c              3  Z   K   | ]%\  }} |                               |          V  &d S rG   r  )r   arrout_name
from_numpys      rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s=      WW=3zz#44X>>WWWWWWrM   c              3  F   K   | ]\  }}|                     |          V  d S rG   r  )r   r   r  s      rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s3      QQ:J&(v||H55QQQQQQrM   c              3  Z   K   | ]%\  }} |                               |          V  &d S rG   r  )r   valr  from_scalars      rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>  s?      XXMC{{3//55h??XXXXXXrM   c              3  B   K   | ]}|                               V  d S rG   )rT  )r   r   r   s     rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>!  s/      NNVv{{<88NNNNNNrM   c              3  <   K   | ]}t          |          d k    V  dS )r  N)r   )r   rs     rJ   r9  z6EagerExpr.map_batches.<locals>.func.<locals>.<genexpr>#  s,      $A$AQSVVq[$A$A$A$A$A$ArM   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  r5  r   r   indexr   r"   	TypeError)rg   udf_series_inr  udf_series_out	_first_in
_first_outitrQ  is_scalar_result_idx_typerA  r  r!  r   r   r   rI   s               @@rJ   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$MrM   r  z->map_batches)r   r   r   r   rt   rg   r   rE   r   )r   r   r   rc   re   )rI   r   r   r   r   s   ```` rJ   r   zEagerExpr.map_batches  sy    	 	 	 	 	 	 	 	 	@ ""+/-?"&"=#7 # 
 
 	
rM   c                4    |                      dd|i          S )Nshiftr  r   rU  r  s     rJ   r3  zEagerExpr.shift8  s    !!'#q!BBBrM   reversec               4    |                      dd|i          S )Ncum_sumr4  r   rU  rI   r4  s     rJ   r6  zEagerExpr.cum_sum;       !!)Iw;O!PPPrM   c               4    |                      dd|i          S )N	cum_countr4  r   rU  r7  s     rJ   r:  zEagerExpr.cum_count>  s     !!+i=Q!RRRrM   c               4    |                      dd|i          S )Ncum_minr4  r   rU  r7  s     rJ   r<  zEagerExpr.cum_minA  r8  rM   c               4    |                      dd|i          S )Ncum_maxr4  r   rU  r7  s     rJ   r>  zEagerExpr.cum_maxD  r8  rM   c               4    |                      dd|i          S )Ncum_prodr4  r   rU  r7  s     rJ   r@  zEagerExpr.cum_prodG  s     !!*Y<P!QQQrM   r6  r9   c               6    |                      d||d          S )Nrank)r6  r  r   rU  )rI   r6  r  s      rJ   rB  zEagerExpr.rankJ  s,    !!V:"N"N " 
 
 	
rM   basec                0    |                      d|          S )Nlog)rC  rU  )rI   rC  s     rJ   rE  zEagerExpr.logO  s    !!%d!333rM   c                ,    |                      d          S )NexprU  rm   s    rJ   rG  zEagerExpr.expR  r  rM   c                ,    |                      d          S )NsqrtrU  rm   s    rJ   rI  zEagerExpr.sqrtU  r  rM   closedr3   c                4    |                      d|||          S )N
is_between)r  r  rJ  rU  )rI   r  r  rJ  s       rJ   rL  zEagerExpr.is_betweenX  s+     !!k{SY " 
 
 	
rM   Self | NumericLiteralabs_tolrel_tol
nans_equalc               6    |                      d||||          S )Nis_close)rW  rN  rO  rP  rU  )rI   rW  rN  rO  rP  s        rJ   rR  zEagerExpr.is_close_  s0     !!! " 
 
 	
rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.firsto  r  rM   c                0    |                      dd          S )Nr   Tr$  rU  rm   s    rJ   r   zEagerExpr.lastr  r  rM   EagerExprCatNamespace[Self]c                     t          |           S rG   )EagerExprCatNamespacerm   s    rJ   catzEagerExpr.catu      $T***rM    EagerExprDateTimeNamespace[Self]c                     t          |           S rG   )EagerExprDateTimeNamespacerm   s    rJ   dtzEagerExpr.dty  s    )$///rM   EagerExprListNamespace[Self]c                     t          |           S rG   )EagerExprListNamespacerm   s    rJ   listzEagerExpr.list}      %d+++rM   EagerExprNameNamespace[Self]c                     t          |           S rG   )EagerExprNameNamespacerm   s    rJ   r   zEagerExpr.name  rb  rM   EagerExprStringNamespace[Self]c                     t          |           S rG   )EagerExprStringNamespacerm   s    rJ   r   zEagerExpr.str      '---rM   EagerExprStructNamespace[Self]c                     t          |           S rG   )EagerExprStructNamespacerm   s    rJ   structzEagerExpr.struct  ri  rM   )r   r   r   rs   r   r   r   r   r   rd   r   r0   r   r1   r   r   rE   r   r1  )rE   r   )r   r   r   rs   r   r   r   r   r   rd   rt   r2   r   r   rE   r'   )r   r   rE   r'   )r  r  rE   r'   )
r  r   r   r   r   r   r  r   rE   r'   )r   r   rE   r%  )r(  r)  rE   r*  )rg   r   r  r   r   r   r   r-   r  r%  rE   r   )rB  rC  r  r   r  r   rE   r'   r   )rR  r5   rE   r'   )rV  r   rW  r)  rE   r'   )rW  r)  rE   r'   )rW  rh  rE   r'   r   r   )r  r  r  r  rE   r'   )rN   r  rE   r'   )rN   r  r  r  r  r  rE   r'   )rW  r   rE   r'   )r  r'   rE   r'   )r  r  r  r  r   r   rE   r'   )r  r   r  r   rE   r'   )
r  r  r  r  r  r   r  r  rE   r'   r   r   rE   r'   r   )r  rs   rE   r'   )r  rs   rE   r'   )r  rs   r  rs   rE   r'   )r  r6   rE   r'   )r  rs   r  rs   r  r   rE   r'   )
r  rs   r  rs   r  r   r   rs   rE   r'   )r   r  r   r   r   r   rE   r'   )r4  r   rE   r'   )r6  r9   r  r   rE   r'   )rC  r   rE   r'   )r  r   r  r   rJ  r3   rE   r'   )
rW  rM  rN  r   rO  r   rP  r   rE   r'   )rE   rU  )rE   rZ  )rE   r^  )rE   rc  )rE   rf  )rE   rj  )pr\   r]   r^   r   r   rk   rq   r   r   r  r  r#  r'  r-  r"  rK  r~   rT  r[  r^  rY   r[   rU   rQ   rW   rS   rj  rm  ro  rq  rs  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  r   r  r  r  r  r  r  r  r   r3  r6  r:  r<  r>  r@  rB  rE  rG  rI  rL  rR  r   r   r   rX  r]  ra  r   r   rm  rH   rM   rJ   r?   r?      s	         5444     .2        L L L L  .2
 
 
 
 
 [
, 	
 	
 	
 [	
$
 $
 $
 $
T  %-1%
 %
 %
 %
 %
 %
T ).     
 1 1 1 [1" " " "H$
 $
 $
 $
L
 
 
 
,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
 
 
 


 
 
 

? ? ? ?C C C C> > > >> > > >> > > >> > > >B B B BB B B B

 
 
 
- - - -, , , ,; ; ; ;
 
 
 
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
 
 
 
B B B BB B B B> > > >+ + + +* * * *> > > >F F F FH H H H/ / / /
 
 
 

 
 
 

 
 
 

 
 
 
.
 .
 .
 .
`C C C CQ Q Q QS S S SQ Q Q QQ Q Q QR R R R
 
 
 

4 4 4 4) ) ) )* * * *
 
 
 

 
 
 
 @ @ @ @? ? ? ? + + + X+ 0 0 0 X0 , , , X, , , , X, . . . X. . . . X. . .rM   r?   c                      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<   dS )r@   r   rd   rE   r'   c                   d S rG   rH   rI   r   s     rJ   r  z!LazyExpr._with_alias_output_names  rL   rM   r   r   c                :    dfd}|                      |          S )Nr   r   rE   c                X    t          |           dk    rd|  }t          |          gS r  r  r  s     rJ   r   zLazyExpr.alias.<locals>.fn  r  rM   r  )r  )rI   r   r   s    ` rJ   r   zLazyExpr.alias  s7    	 	 	 	 	 	 ,,R000rM   LazyExprNameNamespace[Self]c                     t          |           S rG   )LazyExprNameNamespacerm   s    rJ   r   zLazyExpr.name  rY  rM   r!   rX  N)r   rd   rE   r'   rn  )rE   rt  )r\   r]   r^   r  r   r   r   r!   ewm_meanr   r  rX  r   rH   rM   rJ   r@   r@     s          POOO1 1 1 1 + + + X+   H!/##K$_&&N*?,,C,,,,,,rM   r@   c                  2    e Zd ZU ded<   edd            ZdS )_ExprNamespacer   _compliant_exprrE   c                    | j         S rG   rz  rm   s    rJ   	compliantz_ExprNamespace.compliant  s    ##rM   NrE   r   )r\   r]   r^   r   r   r}  rH   rM   rJ   ry  ry    sB          '&&&$ $ $ X$ $ $rM   ry  c                      e Zd ZddZdS )EagerExprNamespaceexprr   rE   r   c                   || _         d S rG   r|  rI   r  s     rJ   r   zEagerExprNamespace.__init__      #rM   N)r  r   rE   r   r\   r]   r^   r   rH   rM   rJ   r  r    (        $ $ $ $ $ $rM   r  c                      e Zd ZddZdS )LazyExprNamespacer  r   rE   r   c                   || _         d S rG   r|  r  s     rJ   r   zLazyExprNamespace.__init__  r  rM   N)r  r   rE   r   r  rH   rM   rJ   r  r    r  rM   r  c                      e Zd ZddZdS )rW  rE   r   c                8    | j                             dd          S )NrX  get_categoriesr}  rK  rm   s    rJ   r  z$EagerExprCatNamespace.get_categories  s    ~55e=MNNNrM   NrE   r   )r\   r]   r^   r  rH   rM   rJ   rW  rW    s.        O O O O O OrM   rW  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 )*r\  formatr   rE   r   c                <    | j                             dd|          S )Nr]  	to_stringr  r  rI   r  s     rJ   r  z$EagerExprDateTimeNamespace.to_string  s     ~55dKPV5WWWrM   	time_zone
str | Nonec                <    | j                             dd|          S )Nr]  replace_time_zoner  r  rI   r  s     rJ   r  z,EagerExprDateTimeNamespace.replace_time_zone  )    ~55% 6 
 
 	
rM   c                <    | j                             dd|          S )Nr]  convert_time_zoner  r  r  s     rJ   r  z,EagerExprDateTimeNamespace.convert_time_zone  r  rM   	time_unitr<   c                <    | j                             dd|          S )Nr]  	timestamp)r  r  )rI   r  s     rJ   r  z$EagerExprDateTimeNamespace.timestamp  s(    ~55+ 6 
 
 	
rM   c                8    | j                             dd          S )Nr]  dater  rm   s    rJ   r  zEagerExprDateTimeNamespace.date      ~55dFCCCrM   c                8    | j                             dd          S )Nr]  yearr  rm   s    rJ   r  zEagerExprDateTimeNamespace.year  r  rM   c                8    | j                             dd          S )Nr]  monthr  rm   s    rJ   r  z EagerExprDateTimeNamespace.month  s    ~55dGDDDrM   c                8    | j                             dd          S )Nr]  dayr  rm   s    rJ   r  zEagerExprDateTimeNamespace.day  s    ~55dEBBBrM   c                8    | j                             dd          S )Nr]  hourr  rm   s    rJ   r  zEagerExprDateTimeNamespace.hour  r  rM   c                8    | j                             dd          S )Nr]  minuter  rm   s    rJ   r  z!EagerExprDateTimeNamespace.minute      ~55dHEEErM   c                8    | j                             dd          S )Nr]  secondr  rm   s    rJ   r  z!EagerExprDateTimeNamespace.second  r  rM   c                8    | j                             dd          S )Nr]  millisecondr  rm   s    rJ   r  z&EagerExprDateTimeNamespace.millisecond      ~55dMJJJrM   c                8    | j                             dd          S )Nr]  microsecondr  rm   s    rJ   r  z&EagerExprDateTimeNamespace.microsecond  r  rM   c                8    | j                             dd          S )Nr]  
nanosecondr  rm   s    rJ   r  z%EagerExprDateTimeNamespace.nanosecond  s    ~55dLIIIrM   c                8    | j                             dd          S )Nr]  ordinal_dayr  rm   s    rJ   r  z&EagerExprDateTimeNamespace.ordinal_day  r  rM   c                8    | j                             dd          S )Nr]  weekdayr  rm   s    rJ   r  z"EagerExprDateTimeNamespace.weekday  s    ~55dIFFFrM   c                8    | j                             dd          S )Nr]  total_minutesr  rm   s    rJ   r  z(EagerExprDateTimeNamespace.total_minutes      ~55dOLLLrM   c                8    | j                             dd          S )Nr]  total_secondsr  rm   s    rJ   r  z(EagerExprDateTimeNamespace.total_seconds  r  rM   c                8    | j                             dd          S )Nr]  total_millisecondsr  rm   s    rJ   r  z-EagerExprDateTimeNamespace.total_milliseconds      ~55d<PQQQrM   c                8    | j                             dd          S )Nr]  total_microsecondsr  rm   s    rJ   r  z-EagerExprDateTimeNamespace.total_microseconds  r  rM   c                8    | j                             dd          S )Nr]  total_nanosecondsr  rm   s    rJ   r  z,EagerExprDateTimeNamespace.total_nanoseconds  s    ~55d<OPPPrM   everyc                <    | j                             dd|          S )Nr]  truncate)r  r  )rI   r  s     rJ   r  z#EagerExprDateTimeNamespace.truncate
  s    ~55dJe5TTTrM   byc                <    | j                             dd|          S )Nr]  	offset_byr  r  rI   r  s     rJ   r  z$EagerExprDateTimeNamespace.offset_by  s    ~55dKB5OOOrM   N)r  r   rE   r   )r  r  rE   r   )r  r   rE   r   )r  r<   rE   r   r  )r  r   rE   r   r  r   rE   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  rH   rM   rJ   r\  r\    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rM   r\  c                  .    e Zd ZddZddZddZdd
ZdS )r`  rE   r   c                8    | j                             dd          S )Nra  r   r  rm   s    rJ   r   zEagerExprListNamespace.len  s    ~55feDDDrM   c                8    | j                             dd          S )Nra  r  r  rm   s    rJ   r  zEagerExprListNamespace.unique  s    ~55fhGGGrM   itemr7   c                <    | j                             dd|          S )Nra  contains)r  r  )rI   r  s     rJ   r  zEagerExprListNamespace.contains  s    ~55fjt5TTTrM   r'  rs   c                <    | j                             dd|          S )Nra  get)r'  r  )rI   r'  s     rJ   r  zEagerExprListNamespace.get  s    ~55fe55QQQrM   Nr  )r  r7   rE   r   )r'  rs   rE   r   )r\   r]   r^   r   r  r  r  rH   rM   rJ   r`  r`    sv        E E E EH H H HU U U UR R R R R RrM   r`  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 )CompliantExprNameNamespacerE   r   c                ,    |                      d           S rG   r   rm   s    rJ   r  zCompliantExprNameNamespace.keep&  s    ""4(((rM   r   r   c                ,    |                      |          S rG   r  )rI   r   s     rJ   mapzCompliantExprNameNamespace.map)  s    ""8,,,rM   prefixr   c                4    |                      fd          S )Nc                     |  S rG   rH   )r   r  s    rJ   r  z3CompliantExprNameNamespace.prefix.<locals>.<lambda>-  s    60A40A0A rM   r  rI   r  s    `rJ   r  z!CompliantExprNameNamespace.prefix,  !    ""#A#A#A#ABBBrM   suffixc                4    |                      fd          S )Nc                    |   S rG   rH   )r   r  s    rJ   r  z3CompliantExprNameNamespace.suffix.<locals>.<lambda>0  s    40A0A0A rM   r  rI   r  s    `rJ   r  z!CompliantExprNameNamespace.suffix/  r  rM   c                @    |                      t          j                  S rG   )r   r   lowerrm   s    rJ   to_lowercasez'CompliantExprNameNamespace.to_lowercase2      ""39---rM   c                @    |                      t          j                  S rG   )r   r   upperrm   s    rJ   to_uppercasez'CompliantExprNameNamespace.to_uppercase5  r  rM   r   r   c                    d fd}|S )Nr  r   rE   c                    fd| D             S )Nc                &    g | ]} |          S rH   rH   )r   r   r   s     rJ   r   zNCompliantExprNameNamespace._alias_output_names.<locals>.fn.<locals>.<listcomp>;  s!    8884DDJJ888rM   rH   )r  r   s    rJ   r   z:CompliantExprNameNamespace._alias_output_names.<locals>.fn:  s    8888<8888rM   )r  r   rE   r   rH   )r   r   s   ` rJ   re   z.CompliantExprNameNamespace._alias_output_names8  s(    	9 	9 	9 	9 	9 	9 	rM   r  c                   d S rG   rH   rq  s     rJ   r   z)CompliantExprNameNamespace._from_callable?  rL   rM   Nr~  )r   r   rE   r   )r  r   rE   r   )r  r   rE   r   )r   r   rE   r   )r   r  rE   r   )r\   r]   r^   r  r  r  r  r  r  r   re   r   rH   rM   rJ   r  r  !  s        
) ) ) )- - - -C C C CC C C C. . . .. . . .    \ RQQQQQrM   r  c                      e Zd ZddZdS )re  r   r  rE   r   c                :    | j         }|                    |          S rG   )r}  r  )rI   r   r  s      rJ   r   z%EagerExprNameNamespace._from_callableG  s    ~,,T222rM   N)r   r  rE   r   r\   r]   r^   r   rH   rM   rJ   re  re  B  s(        
3 3 3 3 3 3rM   re  c                      e Zd ZddZdS )rv  r   r  rE   r   c                l    | j         }|r|                     |          nd }|                    |          S rG   )r}  re   r  )rI   r   r  r  s       rJ   r   z$LazyExprNameNamespace._from_callableQ  s:    ~9=Gt//5554,,\:::rM   N)r   r  rE   r   r  rH   rM   rJ   rv  rv  L  s(        
; ; ; ; ; ;rM   rv  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#S )/rh  rE   r   c                8    | j                             dd          S )Nr   	len_charsr  rm   s    rJ   r  z"EagerExprStringNamespace.len_charsZ  s    ~55e[IIIrM   patternr   rN   r]  r   r  rs   c               B    | j                             dd||||          S )Nr   replace)r  rN   r]  r  r  )rI   r  rN   r]  r  s        rJ   r  z EagerExprStringNamespace.replace]  s.    ~559gUGq 6 
 
 	
rM   c               @    | j                             dd|||          S )Nr   replace_all)r  rN   r]  r  )rI   r  rN   r]  s       rJ   r  z$EagerExprStringNamespace.replace_allb  s,    ~55=' 6 
 
 	
rM   
charactersr  c                <    | j                             dd|          S )Nr   strip_chars)r   r  )rI   r   s     rJ   r  z$EagerExprStringNamespace.strip_charsg  s(    ~55=Z 6 
 
 	
rM   r  c                <    | j                             dd|          S )Nr   starts_with)r  r  r  s     rJ   r  z$EagerExprStringNamespace.starts_withl       ~55e]SY5ZZZrM   r  c                <    | j                             dd|          S )Nr   	ends_with)r  r  r  s     rJ   r  z"EagerExprStringNamespace.ends_witho  s     ~55e[QW5XXXrM   c               >    | j                             dd||          S )Nr   r  )r  r]  r  )rI   r  r]  s      rJ   r  z!EagerExprStringNamespace.containsr  s*    ~55:w 6 
 
 	
rM   r  lengthr  c                >    | j                             dd||          S )Nr   slice)r  r	  r  )rI   r  r	  s      rJ   r  zEagerExprStringNamespace.slicew  s*    ~5576& 6 
 
 	
rM   r  c                <    | j                             dd|          S )Nr   splitr  r  r  s     rJ   r  zEagerExprStringNamespace.split|  s    ~55eW5LLLrM   r  c                <    | j                             dd|          S )Nr   to_datetimer  r  r  s     rJ   r  z$EagerExprStringNamespace.to_datetime  r  rM   c                <    | j                             dd|          S )Nr   to_dater  r  r  s     rJ   r  z EagerExprStringNamespace.to_date  s    ~55eYv5VVVrM   c                8    | j                             dd          S )Nr   r  r  rm   s    rJ   r  z%EagerExprStringNamespace.to_lowercase      ~55e^LLLrM   c                8    | j                             dd          S )Nr   r  r  rm   s    rJ   r  z%EagerExprStringNamespace.to_uppercase  r  rM   widthc                <    | j                             dd|          S )Nr   zfill)r  r  )rI   r  s     rJ   r  zEagerExprStringNamespace.zfill  s    ~55eWE5RRRrM   c                8    | j                             dd          S )Nr   to_titlecaser  rm   s    rJ   r  z%EagerExprStringNamespace.to_titlecase  r  rM   Nr  )
r  r   rN   r   r]  r   r  rs   rE   r   )r  r   rN   r   r]  r   rE   r   )r   r  rE   r   )r  r   rE   r   )r  r   rE   r   )r  r   r]  r   rE   r   )r  rs   r	  r  rE   r   r  )r  r  rE   r   )r  rs   rE   r   )r\   r]   r^   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rH   rM   rJ   rh  rh  W  sj       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 M MrM   rh  c                      e Zd ZddZdS )rl  r   r   rE   r   c                b    | j                             dd|                              |          S )Nrm  fieldr  )r}  rK  r   )rI   r   s     rJ   r  zEagerExprStructNamespace.field  s4    ~55hd5SSYY
 
 	
rM   N)r   r   rE   r   )r\   r]   r^   r  rH   rM   rJ   rl  rl    s(        
 
 
 
 
 
rM   rl  N)[
__future__r   collections.abcr   	functoolsr   rV  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@   ry  r  r  rW  r\  r`  r  re  rv  rh  rl  rH   rM   rJ   <module>r,     st   " " " " " " # # # # # #       ! ! ! ! ! ! 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 11111111........PPPPPPPP::::::ZZZZZZZZZZZZCCCCCCCCHHHHHHHHHH                        X
W
W1 1 1 1 1 1 1 1*>/ >/ >/ >/ >/Xo/NNO>/ >/ >/BN N N N N/#BBC_==>N N N()b )b )b )b )b_==>_==>)b )b )bXt
. t
. t
. t
. t
.o|34_l*+t
. t
. t
.p- - - - - +-.9Lk9Y0Z- - -0$ $ $ $ $&'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^R R R R Rz"M*$=wz?RR R R R R R R R$%#$R R RB3 3 3 3 3z"z*J3 3 3; ; ; ; ;i y)I; ; ;8M 8M 8M 8M 8Mz"OJ$?AT8M 8M 8Mv
 
 
 
 
z"OJ$?AT
 
 
 
 
rM   