
    bi              
          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y
)    )annotations)TYPE_CHECKINGProtocol)CompliantGroupByParseKeysGroupBy)CompliantLazyFrameTNativeExprT_co)SQLExprT_contra)
zip_strict)IterableIteratorc                  :    e Zd ZU ded<   ded<   ddZ	 	 	 	 ddZy)	
SQLGroupByz	list[str]_keys_output_key_namesc             #    K   |j                  | j                        }|j                  r|j                  |      n|} || j                        }|j                         rJh | j                  | j
                  }t        |||      D ]  \  }}}||vs|j                  ||       ! y t        ||      D ]  \  }}|j                  ||        y wN)_evaluate_output_names	compliant_alias_output_names_is_multi_output_unnamedr   r   r   _alias_native)	selfexproutput_namesaliasesnative_exprsexcludenative_exprnamealiass	            Q/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/narwhals/_sql/group_by.py_evaluate_exprzSQLGroupBy._evaluate_expr   s     224>>B '' $$\2 	
 DNN+((*<

<T%;%;<G,6lG- A(T5 w&,,[%@@	A '1w&G ="U((e<<=s   BCA Cc             #  P   K   |D ]  }| j                  |      E d {     y 7 wr   )r#   )r   exprsr   s      r"   _evaluate_exprszSQLGroupBy._evaluate_exprs)   s.       	1D**4000	10s   &$&N)r   r
   returnIterator[NativeExprT_co])r%   zIterable[SQLExprT_contra]r'   r(   )__name__
__module____qualname____annotations__r#   r&        r"   r   r      s*    
   =&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>r6      sS    " * K J 0 &21(/9:(/9: />AB1r.   