o
    $&]i                     @  sP   d dl mZ d dlmZmZ d dlmZ erd dlmZ G dd dee ZdS )    )annotations)TYPE_CHECKINGGeneric)SeriesT)NonNestedLiteralc                   @  s   e Zd Zd%ddZd&ddZd&d	d
Zd'ddZd(ddZd&ddZd&ddZ	d&ddZ
d&ddZd&ddZdddd)d"d#Zd$S )*SeriesListNamespaceseriesr   returnNonec                 C  s
   || _ d S )N)_narwhals_series)selfr    r   R/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/narwhals/series_list.py__init__   s   
zSeriesListNamespace.__init__c                 C     | j | j jj S )aM  Return the number of elements in each list.

        Null values count towards the total.

        Examples:
            >>> import pyarrow as pa
            >>> import narwhals as nw
            >>> s_native = pa.chunked_array([[[1, 2], [3, 4, None], None, []]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.len().to_native()  # doctest: +ELLIPSIS
            <pyarrow.lib.ChunkedArray object at ...>
            [
              [
                2,
                3,
                null,
                0
              ]
            ]
        )r   _with_compliant_compliant_serieslistlenr   r   r   r   r      s   zSeriesListNamespace.lenc                 C  r   )as  Get the unique/distinct values in the list.

        Null values are included in the result. The order of unique values is not guaranteed.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[1, 1, 2], [3, 3, None], None, []])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.unique().to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (4,)
            Series: '' [list[i64]]
            [
               [1, 2]
               [null, 3]
               null
               []
            ]
        )r   r   r   r   uniquer   r   r   r   r   (   s   zSeriesListNamespace.uniqueitemr   c                 C  s   | j | j jj|S )aF  Check if sublists contain the given item.

        Arguments:
            item: Item that will be checked for membership.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[1, 2], None, []])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.contains(1).to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (3,)
            Series: '' [bool]
            [
                    true
                    null
                    false
            ]
        )r   r   r   r   contains)r   r   r   r   r   r   @   s   zSeriesListNamespace.containsindexintc                 C  sX   t |tsdt|j d}t||dk r d| d}t|| j| jjj	
|S )a  Return the value by index in each list.

        Negative indices are not accepted.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[1, 2], [3, 4, None], [None, 5]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.get(1).to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (3,)
            Series: '' [i64]
            [
                    2
                    4
                    5
            ]
        z'Index must be of type 'int'. Got type 'z
' instead.r   zIndex z8 is out of bounds: should be greater than or equal to 0.)
isinstancer   type__name__	TypeError
ValueErrorr   r   r   r   get)r   r   msgr   r   r   r    X   s   
zSeriesListNamespace.getc                 C  r   )a  Compute the min value of the lists in the array.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[1], [3, 4, None]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.min().to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (2,)
            Series: '' [i64]
            [
                    1
                    3
            ]
        )r   r   r   r   minr   r   r   r   r"   y      zSeriesListNamespace.minc                 C  r   )a  Compute the max value of the lists in the array.

        Examples:
            >>> import pyarrow as pa
            >>> import narwhals as nw
            >>> s_native = pa.chunked_array([[[1], [3, 4, None]]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.max().to_native()  # doctest: +ELLIPSIS
            <pyarrow.lib.ChunkedArray object at ...>
            [
              [
                1,
                4
              ]
            ]
        )r   r   r   r   maxr   r   r   r   r$         zSeriesListNamespace.maxc                 C  r   )a  Compute the mean value of the lists in the array.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[1], [3, 4, None]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.mean().to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (2,)
            Series: '' [f64]
            [
                    1.0
                    3.5
            ]
        )r   r   r   r   meanr   r   r   r   r&      r#   zSeriesListNamespace.meanc                 C  r   )a  Compute the median value of the lists in the array.

        Examples:
            >>> import pyarrow as pa
            >>> import narwhals as nw
            >>> s_native = pa.chunked_array([[[1], [3, 4, None]]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.median().to_native()  # doctest: +ELLIPSIS
            <pyarrow.lib.ChunkedArray object at ...>
            [
              [
                1,
                3
              ]
            ]
        )r   r   r   r   medianr   r   r   r   r'      r%   zSeriesListNamespace.medianc                 C  r   )a  Compute the sum value of the lists in the array.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[1], [3, 4, None]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.sum().to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (2,)
            Series: '' [i64]
            [
                    1
                    7
            ]
        )r   r   r   r   sumr   r   r   r   r(      r#   zSeriesListNamespace.sumF
descending
nulls_lastr*   boolr+   c                C  s   | j | j jjj||dS )a^  Sort the lists of the series.

        Arguments:
            descending: Sort in descending order.
            nulls_last: Place null values last.

        Examples:
            >>> import polars as pl
            >>> import narwhals as nw
            >>> s_native = pl.Series([[2, -1, 1], [3, -4, None]])
            >>> s = nw.from_native(s_native, series_only=True)
            >>> s.list.sort().to_native()  # doctest: +NORMALIZE_WHITESPACE
            shape: (2,)
            Series: '' [list[i64]]
            [
                    [-1, 1, 2]
                    [null, -4, 3]
            ]
        r)   )r   r   r   r   sort)r   r*   r+   r   r   r   r-      s
   
zSeriesListNamespace.sortN)r   r   r	   r
   )r	   r   )r   r   r	   r   )r   r   r	   r   )r*   r,   r+   r,   r	   r   )r   
__module____qualname__r   r   r   r   r    r"   r$   r&   r'   r(   r-   r   r   r   r   r      s    





!



r   N)	
__future__r   typingr   r   narwhals.typingr   r   r   r   r   r   r   <module>   s    