
    -Ph	                        d dl mZ d dlmZmZmZmZ d dlmZ erd dl	m
Z d dlmZ d dlmZmZ d dlmZ  G d d	          Z G d
 d          ZdS )    )annotations)TYPE_CHECKINGIteratorSequencecast)is_sequence_of)GroupBy)LazyGroupBy)PolarsDataFramePolarsLazyFrame)
PolarsExprc                  h    e Zd ZU ded<   ded<   ded<   ded<   edd
            ZddZddZddZdS )PolarsGroupByr   _compliant_frameNativeGroupBy_groupedbool_drop_null_keysSequence[str]_output_namesreturnc                    | j         S Nr   selfs    Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/narwhals/_polars/group_by.py	compliantzPolarsGroupBy.compliant       $$    dfkeys$Sequence[PolarsExpr] | Sequence[str]drop_null_keysNonec              .   t          |          | _        |r|                    |          n|| _        t	          |t
                    r| j        j                            |          n(| j        j                            d |D                       | _	        d S )Nc              3  $   K   | ]}|j         V  d S r   native.0args     r   	<genexpr>z)PolarsGroupBy.__init__.<locals>.<genexpr>&   $      /K/Ks
/K/K/K/K/K/Kr    
list_keys
drop_nullsr   r   strr   r)   group_byr   r   r!   r"   r$   s       r   __init__zPolarsGroupBy.__init__        $ZZ
7E Md 3 3 32 dC((LDN!**4000&///K/Kd/K/K/KKK 	r    aggsr   c                ~    | j                             d |D                       }| j                            |          S )Nc              3  $   K   | ]}|j         V  d S r   r(   r*   s     r   r-   z$PolarsGroupBy.agg.<locals>.<genexpr>*   $      &B&Bcsz&B&B&B&B&B&Br    r   aggr   _with_nativer   r8   
agg_results      r   r=   zPolarsGroupBy.agg)   <    ]&&&B&BT&B&B&BBB
~**:666r    1Iterator[tuple[tuple[str, ...], PolarsDataFrame]]c              #     K   | j         D ]>\  }}t          t          d|                    | j                            |          fV  ?d S )Nr3   )r   tupler   r   r>   )r   keyr!   s      r   __iter__zPolarsGroupBy.__iter__-   s_      } 	K 	KGCUC(())4>+F+Fr+J+JJJJJJ	K 	Kr    N)r   r   )r!   r   r"   r#   r$   r   r   r%   )r8   r   r   r   )r   rB   )	__name__
__module____qualname____annotations__propertyr   r6   r=   rF    r    r   r   r      s         %%%%    % % % X%
 
 
 
 7 7 7 7K K K K K Kr    r   c                  `    e Zd ZU ded<   ded<   ded<   ded<   edd
            ZddZddZdS )PolarsLazyGroupByr   r   NativeLazyGroupByr   r   r   r   r   r   c                    | j         S r   r   r   s    r   r   zPolarsLazyGroupBy.compliant8   r   r    r!   r"   r#   r$   r%   c              .   t          |          | _        |r|                    |          n|| _        t	          |t
                    r| j        j                            |          n(| j        j                            d |D                       | _	        d S )Nc              3  $   K   | ]}|j         V  d S r   r(   r*   s     r   r-   z-PolarsLazyGroupBy.__init__.<locals>.<genexpr>I   r.   r    r/   r5   s       r   r6   zPolarsLazyGroupBy.__init__<   r7   r    r8   r   c                ~    | j                             d |D                       }| j                            |          S )Nc              3  $   K   | ]}|j         V  d S r   r(   r*   s     r   r-   z(PolarsLazyGroupBy.agg.<locals>.<genexpr>M   r;   r    r<   r?   s      r   r=   zPolarsLazyGroupBy.aggL   rA   r    N)r   r   )r!   r   r"   r#   r$   r   r   r%   )r8   r   r   r   )rG   rH   rI   rJ   rK   r   r6   r=   rL   r    r   rN   rN   2   s         %%%%    % % % X%
 
 
 
 7 7 7 7 7 7r    rN   N)
__future__r   typingr   r   r   r   narwhals._utilsr   polars.dataframe.group_byr	   r   polars.lazyframe.group_byr
   rO   narwhals._polars.dataframer   r   narwhals._polars.exprr   r   rN   rL   r    r   <module>r\      s   " " " " " " : : : : : : : : : : : : * * * * * * 1BBBBBBJJJJJJKKKKKKKK000000 K  K  K  K  K  K  K  KF7 7 7 7 7 7 7 7 7 7r    