o
    Lh                     @  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 erUd 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)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sJ |d S N   r   )window_functionlen)selfr   r   result r   X/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/narwhals/_sql/dataframe.py_evaluate_window_expr   s   z"SQLLazyFrame._evaluate_window_exprr   r   c                C  s    || }t |dksJ |d S r   )r   )r   r   r   r   r   r    _evaluate_expr(   s   zSQLLazyFrame._evaluate_exprsubsetSequence[str]ColumnNotFoundError | Nonec                 C  s   t || jdS )N)	available)r   columns)r   r#   r   r   r    _check_columns_exist-   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   collections.abcr   typing_extensionsr   r   narwhals._compliant.windowr   narwhals._sql.exprr   narwhals.exceptionsr   r   __annotations__r   r   r   r   r    <module>   s"    
