o
    h                     @  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r2d 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)Sequence)LazyGroupBy)
Expression)DuckDBLazyFrame)
DuckDBExprc                   @  s    e Zd Zdd	d
ZdddZdS )DuckDBGroupBydfr   keysSequence[str]drop_null_keysboolreturnNonec               C  s$   |r|j d dn|| _t|| _d S )N)subset)
drop_nulls_compliant_framelist_keys)selfr   r   r    r   M/var/www/vscode/kcb/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|S )N)r   r   r   _evaluate_exprs	compliant_with_nativenative	aggregate)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   r   narwhals._compliantr   duckdbr   narwhals._duckdb.dataframer   narwhals._duckdb.exprr	   r
   r   r   r   r   <module>   s    