o
    Lh                     @  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S )SeriesListNamespaceseriesr   returnNonec                 C  s
   || _ d S )N)_narwhals_series)selfr    r   U/var/www/html/Persson_Maskin/env/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 )aK  Return the value by index in each list.

        Negative indices are not accepted.

        Returns:
            A new series.

        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.getN)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      s    



r   N)	
__future__r   typingr   r   narwhals.typingr   r   r   r   r   r   r   <module>   s    