
    gE                    d    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
  G d d      Zy	)
    )annotations)copy)TYPE_CHECKING)parse_into_exprs)DuckDBLazyFrame)IntoDuckDBExprc                  8    e Zd Z	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZy)DuckDBGroupByc                     || _         || _        y N)_compliant_frame_keys)selfcompliant_framekeysdrop_null_keyss       N/var/www/openai/venv/lib/python3.12/site-packages/narwhals/_duckdb/group_by.py__init__zDuckDBGroupBy.__init__   s     !0
    c                    t        |d j                  j                         i|}t         j                        }|D ]6  }|j
                  d}t        |      |j                  |j
                         8 g  j                   fd|D        }	  j                  j                   j                  j                  j                  |dj                   j                                    S # t        $ r}d}t        |      |d }~ww xY w)N	namespacezAnonymous expressions are not supported in group_by.agg.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c              3  P   K   | ]  } |j                         D ]  }|   y wr   )r   ).0exprxr   s      r   	<genexpr>z$DuckDBGroupBy.agg.<locals>.<genexpr>/   s&     GED40E0E+Faa+FaEs   #&,)
group_exprzFFailed to aggregated - does your aggregation function return a scalar?)r   r   __narwhals_namespace__r   r   _output_names
ValueErrorextend_from_native_frame_native_frame	aggregatejoinRuntimeError)	r   aggs
named_aggsexprsoutput_namesr   msgagg_columnsexcs	   `        r   aggzDuckDBGroupBy.agg   s   
 !
++BBD
 

 #'tzz"2D!!)+ 
 !o% 2 23 
ZZ
GEG
	-((;;%%33==CHHTZZ,@ >  
  	-ZCs#,	-s   AC* *	D3DDN)r   r   r   z	list[str]r   boolreturnNone)r(   r   r)   r   r1   r   )__name__
__module____qualname__r   r/    r   r   r
   r
      sN    (  	
 
"-"- %"- 
	"-r   r
   N)
__future__r   r   typingr   narwhals._expression_parsingr   narwhals._duckdb.dataframer   narwhals._duckdb.typingr   r
   r6   r   r   <module>r<      s$    "    9:6,- ,-r   