
    hh              
          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rd dlmZmZ  G 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NativeExprT_co)SQLExprT_contra)
zip_strict)IterableIteratorc                  4    e Zd ZU ded<   ded<   ddZddZdS )
SQLGroupByz	list[str]_keys_output_key_namesexprr
   returnIterator[NativeExprT_co]c             #    K   |                     | j                  }|j        r|                    |          n|} || j                  }|                                rFh | j        | j        }t          |||          D ]"\  }}}||vr|                    ||          V  #d S t          ||          D ]\  }}|                    ||          V  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aliass	            M/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_sql/group_by.py_evaluate_exprzSQLGroupBy._evaluate_expr   s&     224>BB 'D$$\222 	
 tDN++((** 		=<
<T%;<G,6lG- - A A(T5 w&&,,[%@@@@@	A A '1w&G&G = ="U((e<<<<<<= =    exprsIterable[SQLExprT_contra]c             #  J   K   |D ]}|                      |          E d {V  d S r   )r%   )r   r'   r   s      r$   _evaluate_exprszSQLGroupBy._evaluate_exprs)   sJ        	1 	1D**40000000000	1 	1r&   N)r   r
   r   r   )r'   r(   r   r   )__name__
__module____qualname____annotations__r%   r*    r&   r$   r   r      sX         
     = = = =&1 1 1 1 1 1r&   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$   <module>r7      s   " " " " " " * * * * * * * * K K K K K K K K J J J J J J J J 0 0 0 0 0 0 & & & & & & 3222222221 1 1 1 1(/9:(/9: />AB1 1 1 1 1r&   