
    q-Ph                    <   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 d dlmZmZ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)	wrap_expr)DateDatetimeDuration)_check_for_numpy_check_for_pytz_check_for_torchpytztorch)numpy)Expr)PolarsDataTypeTimeUnitF)allow_objectvaluer
   dtypePolarsDataType | Noner   boolreturnr   c          	     *   t          | t                    r-|t          k    r6t          t	          j        |                                 dd                    S |t          |dd          x}|}nd}t          |dd          }| j        }||}n#||t          |t                    s5t          |          r6t          |t          j        j                  r|j        t          |          }n|                     t           j                  } d}nt          |          |k    rt          |          }nt%          |d	          rZt          t          |                              |           d
d          t          |                    |           d
d          k    r|}nd|d|d}t)          |          |                     t           j                  }	t          t	          j        |	dd                                        t/          |                    }
|)|
j                            || j        dk    rdnd          }
|
S t          | t6                    r]t          t	          j        | dd                    }
|5t          |dd          x}"|
                    t9          |                    }
|
S t          | t:                    r$t          t	          j        | dd                    S t          | t                    r|t.          k    rt          |dd          pd}t          | j        | j        | j                   }	t          t	          j        |	dd                                        t/          |                    }
t          |dd          x}'|
j                            t          |                    }
|
S t          t	          j        | dd                    S t          | tB          j"                  r+| j#        } t          t	          j        | |d                    S tI          |           r>t          | tJ          j&                  r$t          tC          j"        d| |                    S tO          |           rRt          | tP          j)                  r8t          tC          j"        d| *                    d          |                    S t          | tV          tX          f          r?t          t	          j        tC          j"        d| g|          j#        |d                    S t          | tZ          j.                  rt          | j/        |          S |r7t          t	          j        | |d                                        |          S tI          |           rBt          | tJ          j0                  r't          | 1                                x}t          t6          f          rt          |          S t          |td                    rt%          | d          r| j3        j4        }|5                    d          rF|tm          d          d         }t          |                              t/          |                    S |5                    d          rF|tm          d          d         }t          |                              t9          |                    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
    FT)r   	is_scalarN	time_unitus	time_zoneUTC	utcoffsetsecondsr      ztime zone of dtype (z#) differs from time zone of value ())tzinfoearliestlatest)	ambiguous)r    literal)r   )forcer   zdatetime64[ztimedelta64[)7
isinstancer   r   r   plrlitr   getattrr)   r   r   r   
BaseTzInfozonestr
astimezoner   utchasattrr%   	TypeErrorreplacecastr   dtreplace_time_zonefoldr   r   r   yearmonthdayplSeries_sr   npndarrayr   r   Tensorr   listtupleenumEnumr   genericitemintr   name
startswithlen)r   r   r   tur!   dtype_tzvalue_tztzmsgdt_utcexprr#   rN   
dtype_names                 T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/polars/functions/lit.pyr2   r2      s   f %"" c-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etLLLMMRRY
 
 >7,,EJ!OOjj -  D 	E9	%	% *-UdKKKLL{D(I(I"I"!V99Xb\\**D	E4	 	  $-UdKKKLLL	E4	 	  !-H{D99ATIej%+uyAAFSWV%4PPPQQVV## D %UK>>>	Kw00Y@@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,,,, SEEEFFKKERRR :eRZ#@#@ ejjll*dXy,ABB 	t99 dC   	;WUG%<%< 	;)J$$]33 ;&s='9'9B'>?	4yy~~hy&9&9:::$$^44 ;&s>':':R'?@	4yy~~hy&9&9:::SWT<4@@@AAA    )N)r   r
   r   r   r   r   r   r   ))
__future__r   
contextlibrK   r   r   r   r   r   typingr	   r
   zoneinfor   polars._reexport	_reexportrC   polars._utils.wrapr   polars.datatypesr   r   r   polars.dependenciesr   r   r   r   r   r   rF   suppressImportErrorpolars.polarspolarsr1   r   polars._typingr   r   r2    r\   r[   <module>rl      s   " " " " " "      > > > > > > > > > > > > > > % % % % % % % %             ( ( ( ( ( ( 5 5 5 5 5 5 5 5 5 5              , + + + + +Z%%                                   877777777 04lBMRlB lB lB lB lB lB lB lBs   %A88A<?A<