
    hhd                        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 d dlmZ  G d	 d
ed                   ZdS )    )annotations)chain)TYPE_CHECKING)
SQLGroupBy)Sequence)
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        P/var/www/histauto/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)tupler   r   _evaluate_exprs	compliant_with_nativenative	aggregaterenamedictzipr   )r   r   agg_columnss      r   aggzDuckDBGroupBy.agg   s~    E$*d.B.B5.I.IJJKK~**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   narwhals._sql.group_byr   collections.abcr   duckdbr   narwhals._duckdb.dataframer	   narwhals._duckdb.exprr
   r   r/   r   r   <module>r8      s    " " " " " "                   - - - - - - 1((((((!!!!!!::::::000000@ @ @ @ @JLM @ @ @ @ @r   