
    AHj                     j   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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jL                  e'      5  d dl(m)Z* ddd       e
rd dl+m,Z, d dl-m.Z.m/Z/ 	 ddd	 	 	 	 	 	 	 ddZ0y# 1 sw Y   *xY w)    )annotationsN)datedatetimetime	timedeltatimezone)TYPE_CHECKINGAnycast)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_objectc          	     R   t        |t              r3t        | |j                               j                  j                  |      S t        |t              r!t        |t              rd| d}t        |      t        |t              rt        |       j                  |      S |t        k(  rDt        j                  d| g|      }t        t        j                  |j                   |d            S t        | t"              r|t$        k(  r/t        t        j                  | j'                         dd            S |t)        |d
d      x}t        d|      }|}nd}t)        |dd	      }| j*                  }||}	n|yt        |t,              s;t/        |      r<t        |t0        j*                  j2                        r|j4                  t7        |      }	n| j9                  t:        j<                        } d}	nt7        |      |k(  rt7        |      }	net?        |d      rEt)        t-        |      jA                  |       dd      t)        |jA                  |       dd      k(  r|}	nd|d|d}t        |      | jC                  t:        j<                        }
t        j                  d|
g      j                  tE        |            }|	.|jF                  jI                  |	| jJ                  dk(  rdnd      }t        t        j                  |j                   dd            }|S t        | tL              r{t        j                  d| g      }|5t)        |d
d	      x}&t        d|      }|j                  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      xs d}t#        | jR                  | jT                  | jV                        }
t        j                  d|
g      j                  tE        |            }t)        |dd	      x}$|jF                  jI                  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_        |       rKt        | t`        jb                        r1t        t        j                  d| je                  d      |            S t        | tf        th        f      rBt        t        j                  t        j                  d| g|      j                   |d            S t        | tj        jl                        rt        | jn                  |      S |rQt        j                  d| g      j                  |      }t        t        j                  |j                   |d            S tY        |       r_t        | tZ        jp                        rDt        | js                         x}t&        t"        tL        f      rt        |      S t        |tt              rt?        | d      r| jv                  jx                  }|j{                  d      r1|t}        d      d }t        |      j                  tE        |            S |j{                  d      r1|t}        d      d }t        |      j                  tO        |            S t~        j                  j                  | jv                  j                  | jv                  j                  f      }|t        | |      S | }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)dtypeT)	is_scalarF)r   r"   N	time_unitusr   	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   r   r   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Enumvaluegenericitemintr!   name
startswithlenr    NUMPY_KIND_AND_ITEMSIZE_TO_DTYPEgetkinditemsize)rR   r!   r   msgvalue_stur#   dtype_tzvalue_tztzdt_utcdt_utc_sexprr%   rT   
dtype_names                   L/root/tools/cai/cai_env/lib/python3.12/site-packages/polars/functions/lit.pyr2   r2      st   l %'5%++-.2255e<<	E4	 Z}%EwRSn	E<	(5zu%%	&))Iwe<\TJKK%"D=SWWUZZ\QUVWW {D(I"I"!Vj"%BII 5+t4<<B h1#H-"8T[[-C-CD 1 XB ",,X\\:EB X(*] ;/G",,U3Y5++E2IqA5B  +8, 7&\,   n$hll399Y166x	7JK>{{44EJJ!Oj 5 H 5DQR	E9	%))Iw/{D(I"I"!Vj"%Bll8B<0G%4PQ	E4	 UdKLL	E4	 H{D9ATIejj%++uyyAFyyVH5::8I;NOH$UK>>	K#;;88YHSWWX[[uPTUVDKSWWU$OPP	E299	%FGG	%	 Zrzz%B299YU;<<	%	 Zu||%D299Y%(@NOO	ED%=	)GG		)eWE:==
 	
 
E499	%5;;e,,))Iw/44U;\TJKK:eRZZ#@ejjl*dT8Y,GHt9 dC WUG%<))J$$]3&s='9B?	4y~~hy&9::$$^4&s>':R@	4y~~hy&9:: !AAEE[[u{{334
 uE**SWWT<4@AA    )N)rR   r
   r!   z$PolarsDataType | DataTypeExpr | Noner   boolreturnr   )1
__future__r   
contextlibrP   r   r   r   r   r   typingr	   r
   r   zoneinfor   polars._reexport	_reexportr9   polars._dependenciesr   r   r   r   r   r   rK   polars._utils.wrapr   polars.datatype_exprr   polars.datatypesr   r   r   r   r   polars.datatypes.convertr   suppressImportErrorpolars._plr_plrr;   polarsr   polars._typingr   r   r2    rh   rg   <module>r}      s    "   > > + +    - ( - L L 5Z%  7
 37CB 	CBCB/CB 	CB
 
CB s   9B))B2