o
    Lh                  	   @  s   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ er4d dlmZmZ G dd	 d	ee	ef ee	ef ee	ee
f Zd
S )    )annotations)TYPE_CHECKINGProtocol)CompliantGroupByParseKeysGroupBy)CompliantLazyFrameT_coNativeExprT_co)SQLExprT_contra)
zip_strict)IterableIteratorc                   @  s2   e Zd ZU ded< ded< ddd	ZdddZdS )
SQLGroupByz	list[str]_keys_output_key_namesexprr	   returnIterator[NativeExprT_co]c          	      c  s    | | j}|jr||n|}|| j}| r;h | j| j}t|||D ]\}}}||vr8|||V  q(d S t||D ]\}}|||V  q@d S N)_evaluate_output_names	compliant_alias_output_names_is_multi_output_unnamedr   r   r
   _alias_native)	selfr   output_namesaliasesnative_exprsexcludenative_exprnamealias r!   W/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/narwhals/_sql/group_by.py_evaluate_expr   s&   
zSQLGroupBy._evaluate_exprexprsIterable[SQLExprT_contra]c                c  s     |D ]
}|  |E d H  qd S r   )r#   )r   r$   r   r!   r!   r"   _evaluate_exprs)   s   zSQLGroupBy._evaluate_exprsN)r   r	   r   r   )r$   r%   r   r   )__name__
__module____qualname____annotations__r#   r&   r!   r!   r!   r"   r      s
   
 
r   N)
__future__r   typingr   r   narwhals._compliant.group_byr   r   narwhals._compliant.typingr   r   narwhals._sql.typingr	   narwhals._utilsr
   collections.abcr   r   r   r!   r!   r!   r"   <module>   s    


