o
    篪g	                     @  s^   d dl 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	 G dd dZ
d	S )
    )annotations)TYPE_CHECKING)Callable)Sequence)Self)
DuckDBExprc                   @  s\   e Zd ZdddZd d	d
Zd!ddZd"ddZd#ddZd ddZd ddZ	d$ddZ
dS )%DuckDBExprNameNamespaceselfr   exprr   returnNonec                 C  s
   || _ d S )N)_compliant_expr)r	   r
    r   V/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/narwhals/_duckdb/expr_name.py__init__   s   
z DuckDBExprNameNamespace.__init__c                 C  s   | j d dS )Nalias_output_names_from_alias_output_namesr	   r   r   r   keep   s   zDuckDBExprNameNamespace.keepfunctionCallable[[str], str]c                      | j  fdddS )Nc                       fdd| D S )Nc                   s   g | ]} |qS r   r   .0namer   r   r   
<listcomp>       zADuckDBExprNameNamespace.map.<locals>.<lambda>.<locals>.<listcomp>r   output_namesr   r   r   <lambda>      
 z-DuckDBExprNameNamespace.map.<locals>.<lambda>r   r   )r	   r   r   r   r   map      
zDuckDBExprNameNamespace.mapprefixstrc                   r   )Nc                   r   )Nc                   s   g | ]}  | qS r   r   r   output_namer'   r   r   r          zDDuckDBExprNameNamespace.prefix.<locals>.<lambda>.<locals>.<listcomp>r   r!   r+   r   r   r#      r$   z0DuckDBExprNameNamespace.prefix.<locals>.<lambda>r   r   )r	   r'   r   r+   r   r'      r&   zDuckDBExprNameNamespace.prefixsuffixc                   r   )Nc                   r   )Nc                   s   g | ]}|   qS r   r   r)   r-   r   r   r   $   r,   zDDuckDBExprNameNamespace.suffix.<locals>.<lambda>.<locals>.<listcomp>r   r!   r.   r   r   r#   $   r$   z0DuckDBExprNameNamespace.suffix.<locals>.<lambda>r   r   )r	   r-   r   r.   r   r-   "   r&   zDuckDBExprNameNamespace.suffixc                 C     | j dd dS )Nc                 S     dd | D S )Nc                 S     g | ]}|  qS r   )lowerr   r   r   r   r   +   r    zJDuckDBExprNameNamespace.to_lowercase.<locals>.<lambda>.<locals>.<listcomp>r   r!   r   r   r   r#   +       z6DuckDBExprNameNamespace.to_lowercase.<locals>.<lambda>r   r   r   r   r   r   to_lowercase)      z$DuckDBExprNameNamespace.to_lowercasec                 C  r/   )Nc                 S  r0   )Nc                 S  r1   r   )upperr   r   r   r   r   2   r    zJDuckDBExprNameNamespace.to_uppercase.<locals>.<lambda>.<locals>.<listcomp>r   r!   r   r   r   r#   2   r3   z6DuckDBExprNameNamespace.to_uppercase.<locals>.<lambda>r   r   r   r   r   r   to_uppercase0   r5   z$DuckDBExprNameNamespace.to_uppercaser   /Callable[[Sequence[str]], Sequence[str]] | Nonec              	   C  s2   | j j| j j| j j| j j|| j j| j j| j jdS )N)callfunction_nameevaluate_output_namesr   	expr_kindbackend_versionversion)r   	__class___call_function_name_evaluate_output_names
_expr_kind_backend_version_version)r	   r   r   r   r   r   7   s   z0DuckDBExprNameNamespace._from_alias_output_namesN)r	   r   r
   r   r   r   )r	   r   r   r   )r	   r   r   r   r   r   )r	   r   r'   r(   r   r   )r	   r   r-   r(   r   r   )r	   r   r   r8   r   r   )__name__
__module____qualname__r   r   r%   r'   r-   r4   r7   r   r   r   r   r   r      s    






r   N)
__future__r   typingr   r   r   typing_extensionsr   narwhals._duckdb.exprr   r   r   r   r   r   <module>   s    