
    .i'	                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ erd dlmc mZ d dlmZ d d	lmZ  G d
 ded   e
d         Zy)    )annotations)TYPE_CHECKING)casesliteral)LazyExprNamespace)ListNamespace)not_implementedN)IbisExpr)NonNestedLiteralc                  b    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 e       Zy
)IbisExprListNamespacec                :    | j                   j                  d       S )Nc                "    | j                         S N)lengthexprs    U/opt/house_gps_flutter/.venv/lib/python3.12/site-packages/narwhals/_ibis/expr_list.py<lambda>z+IbisExprListNamespace.len.<locals>.<lambda>       $++-     	compliant_with_callableselfs    r   lenzIbisExprListNamespace.len       ~~,,-GHHr   c                :    | j                   j                  d       S )Nc                "    | j                         S r   )uniquer   s    r   r   z.IbisExprListNamespace.unique.<locals>.<lambda>   r   r   r   r   s    r   r!   zIbisExprListNamespace.unique   r   r   c                @    | j                   j                  fd      S )Nc                &    | j                        S r   )contains)r   items    r   r   z0IbisExprListNamespace.contains.<locals>.<lambda>   s    $--:M r   r   )r   r%   s    `r   r$   zIbisExprListNamespace.contains   s    ~~,,-MNNr   c                F    dfd}| j                   j                  |      S )Nc                    |    S r    )r   indexs    r   _getz'IbisExprListNamespace.get.<locals>._get   s    ;r   )r   ir.ArrayColumnreturnz	ir.Columnr   )r   r)   r*   s    ` r   getzIbisExprListNamespace.get   s    	 ~~,,T22r   c                :    | j                   j                  d       S )Nc                "    | j                         S r   )minsr   s    r   r   z+IbisExprListNamespace.min.<locals>.<lambda>#       $))+ r   r   r   s    r   minzIbisExprListNamespace.min"       ~~,,-EFFr   c                :    | j                   j                  d       S )Nc                "    | j                         S r   )maxsr   s    r   r   z+IbisExprListNamespace.max.<locals>.<lambda>&   r1   r   r   r   s    r   maxzIbisExprListNamespace.max%   r3   r   c                :    | j                   j                  d       S )Nc                "    | j                         S r   )meansr   s    r   r   z,IbisExprListNamespace.mean.<locals>.<lambda>)   s    $**, r   r   r   s    r   meanzIbisExprListNamespace.mean(   s    ~~,,-FGGr   c                @    dd}| j                   j                  |      S )Nc                    | j                  d       }|j                         }t        |j                         t	        d       f|t	        d      k(  t	        d      f| j                               S )Nc                "    | j                         S r   notnullxs    r   r   z9IbisExprListNamespace.sum.<locals>.func.<locals>.<lambda>-       !))+ r   r   )else_)filterr   r   isnullr   sums)r   expr_no_nullsr   s      r   funcz'IbisExprListNamespace.sum.<locals>.func,   s\     KK(=>M&&(Cwt}-
"GAJ/iik r   )r   r+   r,   zir.Valuer   )r   rI   s     r   sumzIbisExprListNamespace.sum+   s    	 ~~,,T22r   c               d    |rd}t        |      dfd}| j                  j                  |      S )Nz4Descending sort is not currently supported for Ibis.c                    r| j                         S | j                  d       }| j                  d       }|j                  |j                               S )Nc                "    | j                         S r   r?   rA   s    r   r   z:IbisExprListNamespace.sort.<locals>.func.<locals>.<lambda>?   rC   r   c                "    | j                         S r   )rF   rA   s    r   r   z:IbisExprListNamespace.sort.<locals>.func.<locals>.<lambda>@   s    qxxz r   )sortrE   concat)r   rH   
expr_nulls
nulls_lasts      r   rI   z(IbisExprListNamespace.sort.<locals>.func<   sJ    yy{" KK(=>M%9:J$$]%7%7%9::r   )r   r+   r,   zir.ArrayValue)NotImplementedErrorr   r   )r   
descendingrR   msgrI   s     `  r   rO   zIbisExprListNamespace.sort7   s2    HC%c**	; ~~,,T22r   N)r,   r
   )r%   r   r,   r
   )r)   intr,   r
   )rT   boolrR   rW   r,   r
   )__name__
__module____qualname__r   r!   r$   r-   r2   r7   r;   rJ   rO   r	   medianr(   r   r   r   r      s?    IIO3GGH
33 Fr   r   r
   )
__future__r   typingr   ibisr   r   narwhals._compliantr   !narwhals._compliant.any_namespacer   narwhals._utilsr	   ibis.expr.typesr   typesirnarwhals._ibis.exprr
   narwhals.typingr   r   r(   r   r   <module>rg      s?    "    1 ; +  ,03-j9=;T 3r   