o
    hM                     @  sp   d dl mZ d dlmZ d dlmZ d dlmZ er,d dlmZ d dl	m
Z
 d dlmZ G dd	 d	ed
 ZdS )    )annotations)TYPE_CHECKING)Sequence)LazyGroupBy)Column)SparkLikeLazyFrame)SparkLikeExprc                   @  s    e Zd Zdd	d
ZdddZdS )SparkLikeLazyGroupBydfr   keysSequence[str]drop_null_keysboolreturnNonec               C  s$   |r|j d dn|| _t|| _d S )N)subset)
drop_nulls_compliant_framelist_keys)selfr
   r   r    r   Q/var/www/vscode/kcb/lib/python3.10/site-packages/narwhals/_spark_like/group_by.py__init__   s   zSparkLikeLazyGroupBy.__init__exprsr   c                 G  sL   t | | }r| j| jjj| j j| S | j| jjj| j 	 S )N)
r   _evaluate_exprs	compliant_with_nativenativegroupByr   aggselectdropDuplicates)r   r   agg_columnsr   r   r   r       s   zSparkLikeLazyGroupBy.aggN)r
   r   r   r   r   r   r   r   )r   r   r   r   )__name__
__module____qualname__r   r    r   r   r   r   r	      s    
r	   )r   r   r   N)
__future__r   typingr   r   narwhals._compliantr   sqlframe.base.columnr   narwhals._spark_like.dataframer   narwhals._spark_like.exprr   r	   r   r   r   r   <module>   s    