o
    h6                     @  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 d dlmZ erDd dl	m
Z d dlmZ d d	lmZ d d
lmZ d dlmZ G dd dZG dd dZdS )    )annotations)TYPE_CHECKING)Iterator)Sequence)castextract_native)GroupBy)LazyGroupBy)PolarsDataFrame)PolarsLazyFrame)
PolarsExprc                   @  sJ   e Zd ZU ded< ded< edddZdddZdddZdddZdS )PolarsGroupByr   _compliant_frameSequence[str]_keysreturnc                 C     | j S Nr   self r   M/var/www/vscode/kcb/lib/python3.10/site-packages/narwhals/_polars/group_by.py	compliant      zPolarsGroupBy.compliantdfkeysdrop_null_keysboolNonec               C  4   || _ t|| _|r||n|}|j|| _d S r   r   listr   
drop_nulls_native_framegroup_by_groupedr   r   r   r   r   r   r   __init__      
zPolarsGroupBy.__init__aggsr   c                 G  "   | j j}|| jdd |D S )Nc                 s      | ]}t |V  qd S r   r   .0argr   r   r   	<genexpr>%       z$PolarsGroupBy.agg.<locals>.<genexpr>r   _with_nativer'   aggr   r+   from_nativer   r   r   r5   #      zPolarsGroupBy.agg1Iterator[tuple[tuple[str, ...], PolarsDataFrame]]c                 c  s2    | j D ]\}}ttd|| j|fV  qd S )Nstr)r'   tupler   r   r4   )r   keyr   r   r   r   __iter__'   s   zPolarsGroupBy.__iter__N)r   r   )r   r   r   r   r   r   r   r    )r+   r   r   r   )r   r9   )	__name__
__module____qualname____annotations__propertyr   r)   r5   r=   r   r   r   r   r      s   
 

r   c                   @  s@   e Zd ZU ded< ded< edddZdddZdddZdS )PolarsLazyGroupByr   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   0   r   zPolarsLazyGroupBy.compliantr   r   r   r   r    c               C  r!   r   r"   r(   r   r   r   r)   4   r*   zPolarsLazyGroupBy.__init__r+   r   c                 G  r,   )Nc                 s  r-   r   r   r.   r   r   r   r1   >   r2   z(PolarsLazyGroupBy.agg.<locals>.<genexpr>r3   r6   r   r   r   r5   <   r8   zPolarsLazyGroupBy.aggN)r   r   )r   r   r   r   r   r   r   r    )r+   r   r   r   )r>   r?   r@   rA   rB   r   r)   r5   r   r   r   r   rC   ,   s   
 
rC   N)
__future__r   typingr   r   r   r   narwhals._polars.utilsr   polars.dataframe.group_byr	   NativeGroupBypolars.lazyframe.group_byr
   NativeLazyGroupBynarwhals._polars.dataframer   r   narwhals._polars.exprr   r   rC   r   r   r   r   <module>   s    