o
    篪g                     @  sR   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	 G dd dZ
dS )	    )annotations)TYPE_CHECKING)Self)DuckDBLazyFrame)
DuckDBExprc                   @  s    e Zd ZdddZdddZdS )DuckDBGroupByselfr   compliant_framer   keys	list[str]drop_null_keysboolreturnNonec                 C  s$   |r
|j d d| _n|| _|| _d S )N)subset)
drop_nulls_compliant_frame_keys)r   r	   r
   r    r   U/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/narwhals/_duckdb/group_by.py__init__   s   
zDuckDBGroupBy.__init__exprsr   c                   s   | j  }| j}|D ]8}||}|jd u r|n||}||}|jjdddd dv r0| j ng  | fddt|||D  q
| j	| jj
|S )Nz->   )maxsplitr   )allselectorc                   s$   g | ]\}}}| vr| |qS r   )alias).0native_expressionoutput_namer   excluder   r   
<listcomp>*   s
    z%DuckDBGroupBy.agg.<locals>.<listcomp>)r   copyr   _evaluate_output_names_alias_output_names_function_namesplitextendzip_from_native_frame_native_frame	aggregate)r   r   agg_columnsdfexproutput_namesaliasesnative_expressionsr   r    r   agg   s.   




zDuckDBGroupBy.aggN)
r   r   r	   r   r
   r   r   r   r   r   )r   r   r   r   r   r   )__name__
__module____qualname__r   r3   r   r   r   r   r      s    
r   N)
__future__r   typingr   typing_extensionsr   narwhals._duckdb.dataframer   narwhals._duckdb.exprr   r   r   r   r   r   <module>   s    