
    jt                     \   d dl mZ d dlZd dlZd dlmZmZmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZm Z m!Z!m"Z" d dl#m$Z$  ej%        e&          5  d dl'm(Z) ddd           n# 1 swxY w Y   e
rd dl*m+Z+ d dl,m-Z-m.Z. 	 dddddZ/dS )    )annotationsN)datedatetimetime	timedeltatimezone)TYPE_CHECKINGAny)ZoneInfo)_check_for_numpy_check_for_pytz_check_for_torchpytztorch)numpy)	wrap_expr)DataTypeExpr)BaseExtensionDateDatetimeDurationObject)DataTypeMappings)Expr)PolarsDataTypeTimeUnitF)allow_objectvaluer
   dtype$PolarsDataType | DataTypeExpr | Noner   boolreturnr   c          	        t          |t                    r:t          | |                                          j                            |          S t          |t                    r*t          |t                    rd| d}t          |          t          |t                    r"t          |           
                    |          S |t          k    rAt          j        d| g|          }t          t          j        |j        |d                    S t          | t"                    rH|t$          k    r6t          t          j        |                                 dd                    S |t)          |d
d          x}|}nd}t)          |dd	          }| j        }||}	n#||t          |t,                    s5t/          |          r6t          |t0          j        j                  r|j        t7          |          }	n|                     t:          j                  } d}	nt7          |          |k    rt7          |          }	nt?          |d          rZt)          t-          |                               |           dd          t)          |                     |           dd          k    r|}	nd|d|d}t          |          | !                    t:          j                  }
t          j        d|
g          
                    tE          |                    }|	)|j#        $                    |	| j%        dk    rdnd          }t          t          j        |j        dd                    }|S t          | tL                    rxt          j        d| g          }|5t)          |d
d	          x}"|
                    tO          |                    }t          t          j        |j        dd                    }|S t          | tP                    r$t          t          j        | dd                    S t          | t&                    r|tD          k    rt)          |d
d          pd}t#          | j)        | j*        | j+                  }
t          j        d|
g          
                    tE          |                    }t)          |dd	          x}'|j#        $                    t7          |                    }t          t          j        |j        dd                    }|S t          t          j        | dd                    S t          | t          j                  r+| j        } t          t          j        | |d                    S tY          |           r>t          | tZ          j.                  r$t          t          j        d| |                    S t_          |           rRt          | t`          j1                  r8t          t          j        d| 2                    d          |                    S t          | tf          th          f          r?t          t          j        t          j        d| g|          j        |d                    S t          | tj          j6                  rt          | j7        |          S |rRt          j        d| g          
                    |          }t          t          j        |j        |d                    S tY          |           rt          | tZ          j8                  rut          | 9                                x}t&          t"          tL          f          rt          |          S t          |tt                    rt?          | d          r| j;        j<        }|=                    d          rF|t}          d          d         }t          |          
                    tE          |                    S |=                    d          rF|t}          d          d         }t          |          
                    tO          |                    S t~          j@        A                    | j;        jB        | j;        jC        f          }|t          | |          S n| }t          t          j        ||d                    S )a}  
    Return an expression representing a literal value.

    Parameters
    ----------
    value
        Value that should be used as a `literal`.
    dtype
        The data type of the resulting expression.
        If set to `None` (default), the data type is inferred from the `value` input.
    allow_object
        If type is unknown use an 'object' type.
        By default, we will raise a `ValueException`
        if the type is unknown.

    Notes
    -----
    Expected datatypes:

    - `pl.lit([])` -> empty List<Null>
    - `pl.lit([1, 2, 3])` -> List<i64>
    - `pl.lit(pl.Series([]))`-> empty Series Null
    - `pl.lit(pl.Series([1, 2, 3]))` -> Series Int64
    - `pl.lit(None)` -> Null

    Examples
    --------
    Literal scalar values:

    >>> pl.lit(1)  # doctest: +IGNORE_RESULT
    >>> pl.lit(5.5)  # doctest: +IGNORE_RESULT
    >>> pl.lit(None)  # doctest: +IGNORE_RESULT
    >>> pl.lit("foo_bar")  # doctest: +IGNORE_RESULT
    >>> pl.lit(date(2021, 1, 20))  # doctest: +IGNORE_RESULT
    >>> pl.lit(datetime(2023, 3, 31, 10, 30, 45))  # doctest: +IGNORE_RESULT

    Literal list/Series data (1D):

    >>> pl.lit([1, 2, 3])  # doctest: +SKIP
    >>> pl.lit(pl.Series("x", [1, 2, 3]))  # doctest: +IGNORE_RESULT

    Literal list/Series data (2D):

    >>> pl.lit([[1, 2], [3, 4]])  # doctest: +SKIP
    >>> pl.lit(pl.Series("y", [[1, 2], [3, 4]]))  # doctest: +IGNORE_RESULT
    zdtype 'z4' is a BaseExtension class, it should be an instanceliteral)r   T)	is_scalarF)r   r%   N	time_unitus	time_zoneUTC	utcoffsetsecondsr      ztime zone of dtype (z#) differs from time zone of value ())tzinfoearliestlatest)	ambiguous)forcer   zdatetime64[ztimedelta64[)D
isinstancer   litext_storageexttotype
issubclass	TypeErrorr   castr   plSeriesr   plr_sr   r   r   getattrr.   r   r   r   
BaseTzInfozonestr
astimezoner   utchasattrr*   replacer   dtreplace_time_zonefoldr   r   r   yearmonthdayr   npndarrayr   r   Tensorr   listtupleenumEnumr   genericitemintr   name
startswithlenr    NUMPY_KIND_AND_ITEMSIZE_TO_DTYPEgetkinditemsize)r   r   r   msgvalue_stur&   dtype_tzvalue_tztzdt_utcdt_utc_sexprr(   rW   
dtype_names                   Y/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/polars/functions/lit.pyr5   r5      s#   l %'' 	L5%++--..255e<<<	E4	 	  LZ}%E%E LSSSSnn	E<	(	( L5zzu%%%	&)Iwe<<<\TJJJKKK%"" b-D==SWUZZ\\QUVVVWWW {D(I(I"I"!VIII 5+t44<BB h11 
#H--
"8T[-CDD
 !1 XBB ",,X\::EBB X(**]] ;// 
%G"",,U33Y5 5++E22IqAA5B 5B ,8 , ,&, , ,   nn$hl339Y1166x	7J7JKK>{44EJ!OOjj 5  H 5DQQQRR	E9	%	% *-)Iw//{D(I(I"I"!Vll8B<<00G%4PPPQQ	E4	 	  #-UdKKKLLL	E4	 	   -H{D99ATIej%+uyAAFyVH55::8I;N;NOOH$UK>>>	K#;88YHHSWX[uPTUUUVVDKSWU$OOOPPP	E29	%	% -FFFGGG	%	 	  -Zrz%B%B -29YU;;;<<<	%	 	  -Zu|%D%D -29Y%(@(@NNNOOO	ED%=	)	) 
-G	)eWE:::=  
 
 	
 
E49	%	% -5;e,,,, L)Iw//44U;;\TJJJKKK :eRZ#@#@ ejjll*dT8Y,GHH 	t99 dC   	;WUG%<%< 	;)J$$]33 ;&s='9'9B'>?	4yy~~hy&9&9:::$$^44 ;&s>':':R'?@	4yy~~hy&9&9::: !AEE[u{34
 
 uE****  SWT<4@@@AAA    )N)r   r
   r   r    r   r!   r"   r   )0
__future__r   
contextlibrT   r   r   r   r   r   typingr	   r
   zoneinfor   polars._reexport	_reexportr=   polars._dependenciesr   r   r   r   r   r   rO   polars._utils.wrapr   polars.datatype_exprr   polars.datatypesr   r   r   r   r   polars.datatypes.convertr   suppressImportErrorpolars._plr_plrr?   polarsr   polars._typingr   r   r5    rk   rj   <module>r~      sC   " " " " " "      > > > > > > > > > > > > > > % % % % % % % %                          - , , , , , ( ( ( ( ( ( - - - - - - L L L L L L L L L L L L L L 5 5 5 5 5 5Z%%                  877777777
 37AB 	AB AB AB AB AB AB AB ABs   5BBB