o
    $&]i                     @  s   U d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ er[d dlmZ d d	lmZmZ d d
lmZ d dlmZ d dlmZ eZded< G dd dee	eef ee	eef ZdS )    )annotations)TYPE_CHECKINGAnyProtocol)CompliantLazyFrame)CompliantExprT_contraNativeExprTNativeLazyFrameT)ToNarwhalsT_co)check_columns_exist)MultiOutputExpressionError)Sequence)Self	TypeAlias)WindowInputs)SQLExpr)ColumnNotFoundErrorr   
Incompletec                   @  s*   e Zd ZdddZdd	d
ZdddZdS )SQLLazyFramewindow_inputsWindowInputs[NativeExprT]exprSQLExpr[Self, NativeExprT]returnr   c                C  s,   | | |}t|dkrd}t||d S N   z4multi-output expressions not allowed in this contextr   )window_functionlenr   )selfr   r   resultmsg r!   U/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/narwhals/_sql/dataframe.py_evaluate_window_expr   s
   z"SQLLazyFrame._evaluate_window_exprc                C  s(   || }t |dkrd}t||d S r   )r   r   )r   r   r   r    r!   r!   r"   _evaluate_single_output_expr+   s
   z)SQLLazyFrame._evaluate_single_output_exprsubsetSequence[str]ColumnNotFoundError | Nonec                 C  s   t || jdS )N)	available)r   columns)r   r%   r!   r!   r"   _check_columns_exist4   s   z!SQLLazyFrame._check_columns_existN)r   r   r   r   r   r   )r   r   r   r   )r%   r&   r   r'   )__name__
__module____qualname__r#   r$   r*   r!   r!   r!   r"   r      s    

	r   N)
__future__r   typingr   r   r   narwhals._compliant.dataframer   narwhals._compliant.typingr   r   r	   narwhals._translater
   narwhals._utilsr   narwhals.exceptionsr   collections.abcr   typing_extensionsr   r   narwhals._compliant.windowr   narwhals._sql.exprr   r   r   __annotations__r   r!   r!   r!   r"   <module>   s$    
