
    /_i                    x    d dl mZ d dlmZmZmZmZ d dlmZm	Z	 erd dl
mZ  edd      Z G d d	ee         Zy
)    )annotations)TYPE_CHECKINGCallableGenericTypeVar)ExprKindExprNode)ExprExprTr
   )boundc                  D    e Zd Zd	dZd
dZddZddZddZd
dZd
dZ	y)ExprNameNamespacec                    || _         y )N)_expr)selfexprs     Q/var/www/html/land_sniper/venv/lib/python3.12/site-packages/narwhals/expr_name.py__init__zExprNameNamespace.__init__   s	    
    c                h    | j                   j                  t        t        j                  d            S )a  Keep the original root name of the expression.

        Notes:
            For Polars versions prior to 1.32, this will undo any previous renaming operations on the expression.

        Examples:
            >>> import pandas as pd
            >>> import narwhals as nw
            >>> df_native = pd.DataFrame({"foo": [1, 2], "BAR": [4, 5]})
            >>> df = nw.from_native(df_native)
            >>> df.select(nw.col("foo").alias("alias_for_foo").name.keep()).columns
            ['foo']
        z	name.keepr   _append_noder	   r   ELEMENTWISEr   s    r   keepzExprNameNamespace.keep   s&     zz&&x0D0Dk'RSSr   c                l    | j                   j                  t        t        j                  d|            S )a  Rename the output of an expression by mapping a function over the root name.

        Arguments:
            function: Function that maps a root name to a new name.

        Notes:
            For Polars versions prior to 1.32, this will undo any previous renaming operations on the expression.

        Examples:
            >>> import pandas as pd
            >>> import narwhals as nw
            >>> df_native = pd.DataFrame({"foo": [1, 2], "BAR": [4, 5]})
            >>> df = nw.from_native(df_native)
            >>> renaming_func = lambda s: s[::-1]  # reverse column name
            >>> df.select(nw.col("foo", "BAR").name.map(renaming_func)).columns
            ['oof', 'RAB']
        zname.map)functionr   )r   r   s     r   mapzExprNameNamespace.map!   s-    $ zz&&X)):I
 	
r   c                l    | j                   j                  t        t        j                  d|            S )aj  Add a prefix to the root column name of the expression.

        Arguments:
            prefix: Prefix to add to the root column name.

        Notes:
            For Polars versions prior to 1.32, this will undo any previous renaming operations on the expression.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> df_native = pl.DataFrame({"foo": [1, 2], "BAR": [4, 5]})
            >>> df = nw.from_native(df_native)
            >>> df.select(nw.col("foo", "BAR").name.prefix("with_prefix")).columns
            ['with_prefixfoo', 'with_prefixBAR']
        zname.prefix)prefixr   )r   r    s     r   r    zExprNameNamespace.prefix7   -    " zz&&X))=H
 	
r   c                l    | j                   j                  t        t        j                  d|            S )am  Add a suffix to the root column name of the expression.

        Arguments:
            suffix: Suffix to add to the root column name.

        Notes:
            For Polars versions prior to 1.32, this will undo any previous renaming operations on the expression.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> df_native = pl.DataFrame({"foo": [1, 2], "BAR": [4, 5]})
            >>> df = nw.from_native(df_native)
            >>> df.select(nw.col("foo", "BAR").name.suffix("_with_suffix")).columns
            ['foo_with_suffix', 'BAR_with_suffix']
        zname.suffix)suffixr   )r   r#   s     r   r#   zExprNameNamespace.suffixL   r!   r   c                h    | j                   j                  t        t        j                  d            S )a  Make the root column name lowercase.

        Notes:
            For Polars versions prior to 1.32, this will undo any previous renaming operations on the expression.

        Examples:
            >>> import pyarrow as pa
            >>> import narwhals as nw
            >>> df_native = pa.table({"foo": [1, 2], "BAR": [4, 5]})
            >>> df = nw.from_native(df_native)
            >>> df.select(nw.col("foo", "BAR").name.to_lowercase()).columns
            ['foo', 'bar']
        zname.to_lowercaser   r   s    r   to_lowercasezExprNameNamespace.to_lowercasea   ,     zz&&X))+>?
 	
r   c                h    | j                   j                  t        t        j                  d            S )a  Make the root column name uppercase.

        Notes:
            For Polars versions prior to 1.32, this will undo any previous renaming operations on the expression.

        Examples:
            >>> import pyarrow as pa
            >>> import narwhals as nw
            >>> df_native = pa.table({"foo": [1, 2], "BAR": [4, 5]})
            >>> df = nw.from_native(df_native)
            >>> df.select(nw.col("foo", "BAR").name.to_uppercase()).columns
            ['FOO', 'BAR']
        zname.to_uppercaser   r   s    r   to_uppercasezExprNameNamespace.to_uppercases   r&   r   N)r   r   returnNone)r)   r   )r   zCallable[[str], str]r)   r   )r    strr)   r   )r#   r+   r)   r   )
__name__
__module____qualname__r   r   r   r    r#   r%   r(    r   r   r   r      s&    T 
,
*
*
$
r   r   N)
__future__r   typingr   r   r   r   narwhals._expression_parsingr   r	   narwhals.exprr
   r   r   r/   r   r   <module>r4      s5    " < < ;"v&v
 v
r   