
    -PhB                        d dl mZ d dlmZ d dlmZ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	ed
                   ZdS )    )annotations)chain)TYPE_CHECKINGSequence)LazyGroupBy)
Expression)DuckDBLazyFrame)
DuckDBExprc                      e Zd Zdd	ZddZdS )DuckDBGroupBydfr	   keys$Sequence[DuckDBExpr] | Sequence[str]drop_null_keysboolreturnNonec                  |                      ||          \  }| _        | _        |r|                    | j                  n|| _        d S )N)r   )_parse_keys_keys_output_key_names
drop_nulls_compliant_frame)selfr   r   r   frames        Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/narwhals/_duckdb/group_by.py__init__zDuckDBGroupBy.__init__   sQ     594D4DRd4D4S4S1tz41@N Y 0 0 < < <TY    exprsr
   c                J   t          t          | j        |                     |                              }| j                            | j        j                            |                                        t          t          | j        | j                                      S )N)listr   r   _evaluate_exprs	compliant_with_nativenative	aggregaterenamedictzipr   )r   r   agg_columnss      r   aggzDuckDBGroupBy.agg   s~    5T-A-A%-H-HIIJJ~**N!++K88
 

&c$*d&<==>>
?
?	@r   N)r   r	   r   r   r   r   r   r   )r   r
   r   r	   )__name__
__module____qualname__r   r+    r   r   r   r      sF        	Z 	Z 	Z 	Z@ @ @ @ @ @r   r   )r	   r
   r   N)
__future__r   	itertoolsr   typingr   r   narwhals._compliantr   duckdbr   narwhals._duckdb.dataframer	   narwhals._duckdb.exprr
   r   r/   r   r   <module>r7      s    " " " " " "       * * * * * * * * + + + + + + 1!!!!!!::::::000000@ @ @ @ @K MN @ @ @ @ @r   