o
    $&]i                     @  s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 er8d 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)chain)TYPE_CHECKING)join_column_names)
SQLGroupBy)Sequence)
Expression)DuckDBLazyFrame)
DuckDBExprc                   @  s    e Zd Zdd	d
ZdddZdS )DuckDBGroupBydfr	   keys$Sequence[DuckDBExpr] | 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   W/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/narwhals/_duckdb/group_by.py__init__   s    zDuckDBGroupBy.__init__exprsr
   c                 G  sP   t | |}| jjt t| j|t| j }| j|	t
t| j| jS )N)tuple_evaluate_exprs	compliantnative	aggregater   r   r   _with_nativerenamedictzipr   )r   r   agg_columnsresultr   r   r   agg   s   zDuckDBGroupBy.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   	itertoolsr   typingr   narwhals._duckdb.utilsr   narwhals._sql.group_byr   collections.abcr   duckdbr   narwhals._duckdb.dataframer	   narwhals._duckdb.exprr
   r   r   r   r   r   <module>   s    