
    Wh                    x    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	ed
         Zy)    )annotations)TYPE_CHECKING)
SQLGroupBy)Sequence)Column)SparkLikeLazyFrame)SparkLikeExprc                  ,    e Zd Z	 	 	 	 	 	 	 	 ddZddZy)SparkLikeLazyGroupByc                  | j                  ||      \  }| _        | _        |r!|j                  | j                        | _        y || _        y )N)keys)_parse_keys_keys_output_key_names
drop_nulls_compliant_frame)selfdfr   drop_null_keysframes        W/var/www/html/jupyter_env/lib/python3.12/site-packages/narwhals/_spark_like/group_by.py__init__zSparkLikeLazyGroupBy.__init__   sF     594D4DRd4D4S1tz41@N 0 0 <TY    c                   t        | j                  |            x}r:  | j                  j                  j                  | j
                   j                  | n: | j                  j                  j                  | j
                   j                         }| j                  j                  |      j                  t        t        | j
                  | j                                    S )N)list_evaluate_exprs	compliantnativegroupByr   aggselectdropDuplicates_with_nativerenamedictzipr   )r   exprsagg_columnsresults       r   r    zSparkLikeLazyGroupBy.agg   s      $D$8$8$?@@@ ;)DNN!!))4::6::KH-&&--tzz:IIK 	 ~~**6299TZZ!7!789
 	
r   N)r   r   r   z'Sequence[SparkLikeExpr] | Sequence[str]r   boolreturnNone)r'   r	   r+   r   )__name__
__module____qualname__r   r     r   r   r   r      s7    	Z	Z 6	Z 	Z 
	Z	
r   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   r0   r   r   <module>r8      s/    "   -(+A7
:&UV 
r   