
    g                        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
 d dl	mZ d dlmZ  G d	 d
      Z G d d      Zy)    )annotations)TYPE_CHECKING)Iterator)extract_args_kwargs)Self)PolarsDataFrame)PolarsLazyFrame)
PolarsExprc                  8    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZddZy)PolarsGroupByc                   || _         || _        |r0|j                  |      j                  j	                  |      | _        y |j                  j	                  |      | _        y N_compliant_framekeys
drop_nulls_native_framegroup_by_groupedselfdfr   drop_null_keyss       N/var/www/openai/venv/lib/python3.12/site-packages/narwhals/_polars/group_by.py__init__zPolarsGroupBy.__init__   O     !#	MM$/==FFtLDM,,55d;DM    c                    t        ||      \  }}| j                  j                   | j                  j                  |i |      S r   r   r   _from_native_framer   aggr   aggs
named_aggss      r   r!   zPolarsGroupBy.agg   E    .tZ@j$$77DMMt2z2
 	
r   c              #     K   | j                   D ]-  \  }}t        |      | j                  j                  |      f / y wr   )r   tupler   r    )r   keyr   s      r   __iter__zPolarsGroupBy.__iter__!   s8     }}GC*d33FFrJJJ %s   >A N)
r   r   r   r   r   	list[str]r   boolreturnNone)r   r   r#   r
   r$   r
   r,   r   )r   r   r,   z1Iterator[tuple[tuple[str, ...], PolarsDataFrame]])__name__
__module____qualname__r   r!   r)    r   r   r   r      s:    <<'</8<MQ<	<
Kr   r   c                  0    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZy)PolarsLazyGroupByc                   || _         || _        |r0|j                  |      j                  j	                  |      | _        y |j                  j	                  |      | _        y r   r   r   s       r   r   zPolarsLazyGroupBy.__init__'   r   r   c                    t        ||      \  }}| j                  j                   | j                  j                  |i |      S r   r   r"   s      r   r!   zPolarsLazyGroupBy.agg1   r%   r   N)
r   r   r   r	   r   r*   r   r+   r,   r-   )r   r   r#   r
   r$   r
   r,   r	   )r.   r/   r0   r   r!   r1   r   r   r3   r3   &   s4    <<'</8<MQ<	<
r   r3   N)
__future__r   typingr   r   narwhals._polars.utilsr   typing_extensionsr   narwhals._polars.dataframer   r	   narwhals._polars.exprr
   r   r3   r1   r   r   <module>r<      s6    "    6&::0K K,
 
r   