o
    $&]i                     @  sp   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 d dlmZ G dd	 d	ed
 ZdS )    )annotations)TYPE_CHECKING)
SQLGroupBy)Sequence)Column)SparkLikeLazyFrame)SparkLikeExprc                   @  s    e Zd Zdd	d
ZdddZdS )SparkLikeLazyGroupBydfr   keys'Sequence[SparkLikeExpr] | Sequence[str]drop_null_keysboolreturnNonec               C  s8   | j ||d\}| _| _|r|| j| _d S || _d S )N)r   )_parse_keys_keys_output_key_names
drop_nulls_compliant_frame)selfr
   r   r   frame r   [/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/narwhals/_spark_like/group_by.py__init__   s    zSparkLikeLazyGroupBy.__init__exprsr   c                 G  s\   t | | }r| jjj| j j| n	| jjj| j  }| j	|
tt| j| jS )N)tuple_evaluate_exprs	compliantnativegroupByr   aggselectdropDuplicates_with_nativerenamedictzipr   )r   r   agg_columnsresultr   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   narwhals._sql.group_byr   collections.abcr   sqlframe.base.columnr   narwhals._spark_like.dataframer   narwhals._spark_like.exprr   r	   r   r   r   r   <module>   s    