
    q-Ph                        d dl mZ d dl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 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
lmZmZ e	 	 	 d,dddd-d            Ze	 	 	 d,ddd.d            Ze	 	 	 d,ddd/d             Z	 	 	 d0ed"dd/d#Ze	 	 	 d,dddd-d$            Ze	 	 	 d,ddd.d%            Ze	 	 	 d,ddd/d&            Z	 	 	 d0ed"dd/d'Ze	 	 	 d,dddd1d(            Ze	 	 	 d,ddd2d)            Ze	 	 	 d,ddd3d*            Z	 	 	 d0ed"dd3d+ZdS )4    )annotationsN)TYPE_CHECKINGoverload)	functions)parse_into_expression)	wrap_exprwrap_s)Int64)Literal)ExprSeries)IntoExprColumnPolarsIntegerType.dtypeeagerstartint | IntoExprColumnendint | IntoExprColumn | Nonestepintr   r   r   Literal[False]returnr   c                   d S N r   r   r   r   r   s        `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/polars/functions/range/int_range.pyaranger       	     3    )r   Literal[True]r   c                   d S r   r   r   s        r   r    r        	     Sr"   boolExpr | Seriesc                   d S r   r   r   s        r   r    r    +   	     Cr"      Fc               *    t          | ||||          S )aS  
    Generate a range of integers.

    Alias for :func:`int_range`.

    Parameters
    ----------
    start
        Lower bound of the range (inclusive).
    end
        Upper bound of the range (exclusive).
    step
        Step size of the range.
    dtype
        Data type of the range. Defaults to `Int64`.
    eager
        Evaluate immediately and return a `Series`.
        If set to `False` (default), return an expression instead.

    Returns
    -------
    Expr or Series
        Column of integer data type `dtype`.

    See Also
    --------
    int_range : Generate a range of integers.
    int_ranges : Generate a range of integers for each row of the input columns.

    Examples
    --------
    >>> pl.arange(0, 3, eager=True)
    shape: (3,)
    Series: 'literal' [i64]
    [
            0
            1
            2
    ]
    r   )	int_ranger   s        r   r    r    6   s    ` UCU%@@@@r"   c                   d S r   r   r   s        r   r,   r,   i   r!   r"   c                   d S r   r   r   s        r   r,   r,   t   r%   r"   c                   d S r   r   r   s        r   r,   r,      r)   r"   c                  || }d} t          | t                    r;t          |t                    r&|r$t          t          j        | |||                    S t          |           } t          |          }t          t          j        | |||                    }|r&t          j	        |          
                                S |S )u  
    Generate a range of integers.

    Parameters
    ----------
    start
        Start of the range (inclusive). Defaults to 0.
    end
        End of the range (exclusive). If set to `None` (default),
        the value of `start` is used and `start` is set to `0`.
    step
        Step size of the range.
    dtype
        Data type of the range.
    eager
        Evaluate immediately and return a `Series`.
        If set to `False` (default), return an expression instead.

    Returns
    -------
    Expr or Series
        Column of integer data type `dtype`.

    See Also
    --------
    int_ranges : Generate a range of integers for each row of the input columns.

    Examples
    --------
    >>> pl.int_range(0, 3, eager=True)
    shape: (3,)
    Series: 'literal' [i64]
    [
            0
            1
            2
    ]

    `end` can be omitted for a shorter syntax.

    >>> pl.int_range(3, eager=True)
    shape: (3,)
    Series: 'literal' [i64]
    [
            0
            1
            2
    ]

    Generate an index column by using `int_range` in conjunction with :func:`len`.

    >>> df = pl.DataFrame({"a": [1, 3, 5], "b": [2, 4, 6]})
    >>> df.select(
    ...     pl.int_range(pl.len(), dtype=pl.UInt32).alias("index"),
    ...     pl.all(),
    ... )
    shape: (3, 3)
    ┌───────┬─────┬─────┐
    │ index ┆ a   ┆ b   │
    │ ---   ┆ --- ┆ --- │
    │ u32   ┆ i64 ┆ i64 │
    ╞═══════╪═════╪═════╡
    │ 0     ┆ 1   ┆ 2   │
    │ 1     ┆ 3   ┆ 4   │
    │ 2     ┆ 5   ┆ 6   │
    └───────┴─────┴─────┘
    Nr   )
isinstancer   r	   plreager_int_ranger   r   r,   Fselect	to_seriesr   r   r   r   r   results         r   r,   r,      s    V {% D*S#"6"6 D5 Dc)%dEBBCCC!%((E

$
$Cs}UCu==>>F ,x))+++Mr"   c                   d S r   r   r   s        r   
int_rangesr:      r!   r"   c                   d S r   r   r   s        r   r:   r:      r%   r"   c                   d S r   r   r   s        r   r:   r:      r)   r"   c                  || }d} t          |           } t          |          }t          |          }t          t          j        | |||                    }|r&t	          j        |                                          S |S )u  
    Generate a range of integers for each row of the input columns.

    Parameters
    ----------
    start
        Start of the range (inclusive). Defaults to 0.
    end
        End of the range (exclusive). If set to `None` (default),
        the value of `start` is used and `start` is set to `0`.
    step
        Step size of the range.
    dtype
        Integer data type of the ranges. Defaults to `Int64`.
    eager
        Evaluate immediately and return a `Series`.
        If set to `False` (default), return an expression instead.

    Returns
    -------
    Expr or Series
        Column of data type `List(dtype)`.

    See Also
    --------
    int_range : Generate a single range of integers.

    Examples
    --------
    >>> df = pl.DataFrame({"start": [1, -1], "end": [3, 2]})
    >>> df.with_columns(int_range=pl.int_ranges("start", "end"))
    shape: (2, 3)
    ┌───────┬─────┬────────────┐
    │ start ┆ end ┆ int_range  │
    │ ---   ┆ --- ┆ ---        │
    │ i64   ┆ i64 ┆ list[i64]  │
    ╞═══════╪═════╪════════════╡
    │ 1     ┆ 3   ┆ [1, 2]     │
    │ -1    ┆ 2   ┆ [-1, 0, 1] │
    └───────┴─────┴────────────┘

    `end` can be omitted for a shorter syntax.

    >>> df.select("end", int_range=pl.int_ranges("end"))
    shape: (2, 2)
    ┌─────┬───────────┐
    │ end ┆ int_range │
    │ --- ┆ ---       │
    │ i64 ┆ list[i64] │
    ╞═════╪═══════════╡
    │ 3   ┆ [0, 1, 2] │
    │ 2   ┆ [0, 1]    │
    └─────┴───────────┘
    Nr   )r   r   r2   r:   r4   r5   r6   r7   s         r   r:   r:     s    | {!%((E

$
$C &&Ds~eS$>>??F ,x))+++Mr"   )...)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   r   r   r&   r   r'   )r   Nr*   )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   r   r   r&   r   r'   )
__future__r   
contextlibtypingr   r   polarsr   r4   polars._utils.parser   polars._utils.wrapr   r	   polars.datatypesr
   suppressImportErrorpolars.polarsr2   r   r   r   polars._typingr   r   r    r,   r:   r   r"   r   <module>rI      sC   " " " " " "     * * * * * * * * ! ! ! ! ! ! 5 5 5 5 5 5 0 0 0 0 0 0 0 0 " " " " " "Z%%                                   A########@@@@@@@@ 
"%'*
  #     
 
"%'*
  #     
 
"%'*
  #     
 #$'+0A
  %0A 0A 0A 0A 0A 0Af 
"%'*
  #     
 
"%'*
  #     
 
"%'*
  #     
 #$'+Y
  %Y Y Y Y Y Yx 
"%'*!$
  #     
 
"%'*!$
  #     
 
"%'*!$
  #     
 #$'+!"J
  %J J J J J J J Js   AAA