o
    Lhc                     @  s|   d dl mZ d dlmZ d dlmZ d dlmZ er2d 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)
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   Z/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/narwhals/_duckdb/group_by.py__init__   s    zDuckDBGroupBy.__init__exprsr	   c                 G  s@   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_columnsr   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._sql.group_byr   collections.abcr   duckdbr   narwhals._duckdb.dataframer   narwhals._duckdb.exprr	   r
   r   r   r   r   <module>   s    