Ë
    	êñi�  ã                  óz   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 erd dl
mZ d dlmZ e	 G d„ d	«      «       Zy
)é    )Úannotations)ÚTYPE_CHECKING)Ú
deprecated)Úwrap_s)Úexpr_dispatch)ÚSeries)ÚPySeriesc                  ó’   — e Zd ZdZdZdd„Zdd„Z ed«      dd„«       Zdd„Z	 ed«      dd	„«       Z
dd
„Zdd„Zdd„Zdd„Zddd„Zy)ÚCatNameSpacez)Namespace for categorical related series.Úcatc                ó&   — |j                   | _         y ©N)Ú_s)ÚselfÚseriess     ú[/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/series/categorical.pyÚ__init__zCatNameSpace.__init__   s   € Ø"ŸI™Iˆ�ó    c                 ó   — y)ab  
        Get the categories stored in this data type.

        Examples
        --------
        >>> s = pl.Series(["foo", "bar", "foo", "foo", "ham"], dtype=pl.Categorical)
        >>> s.cat.get_categories()  # doctest: +SKIP
        shape: (3,)
        Series: '' [str]
        [
            "foo"
            "bar"
            "ham"
        ]
        N© ©r   s    r   Úget_categorieszCatNameSpace.get_categories   ó   � r   zu`cat.is_local()` is deprecated; Categoricals no longer have a local scope. This method will be removed in Polars 2.0.c                ó6   — | j                   j                  «       S )zi
        Return whether or not the column is a local categorical.

        Always returns false.
        )r   Úcat_is_localr   s    r   Úis_localzCatNameSpace.is_local(   s   € ð �w‰w×#Ñ#Ó%Ð%r   c                óH   — t        | j                  j                  «       «      S )zFSimply returns the column as-is, local representations are deprecated.)r   r   Úcat_to_localr   s    r   Úto_localzCatNameSpace.to_local4   s   € ä�d—g‘g×*Ñ*Ó,Ó-Ð-r   z†`cat.uses_lexical_ordering()` is deprecated; Categoricals are now always ordered lexically. This method will be removed in Polars 2.0.c                ó6   — | j                   j                  «       S )a  
        Indicate whether the Series uses lexical ordering.

        Always returns true.

        Examples
        --------
        >>> s = pl.Series(["b", "a", "b"]).cast(pl.Categorical)
        >>> s.cat.uses_lexical_ordering()  # doctest: +SKIP
        True
        )r   Úcat_uses_lexical_orderingr   s    r   Úuses_lexical_orderingz"CatNameSpace.uses_lexical_ordering8   s   € ð  �w‰w×0Ñ0Ó2Ð2r   c                 ó   — y)u&  
        Return the byte-length of the string representation of each value.

        Returns
        -------
        Series
            Series of data type :class:`UInt32`.

        See Also
        --------
        len_chars

        Notes
        -----
        When working with non-ASCII text, the length in bytes is not the same as the
        length in characters. You may want to use :func:`len_chars` instead.
        Note that :func:`len_bytes` is much more performant (_O(1)_) than
        :func:`len_chars` (_O(n)_).

        Examples
        --------
        >>> s = pl.Series(["CafÃ©", "345", "æ�±äº¬", None], dtype=pl.Categorical)
        >>> s.cat.len_bytes()
        shape: (4,)
        Series: '' [u32]
        [
            5
            3
            6
            null
        ]
        Nr   r   s    r   Ú	len_byteszCatNameSpace.len_bytesJ   r   r   c                 ó   — y)u  
        Return the number of characters of the string representation of each value.

        Returns
        -------
        Series
            Series of data type :class:`UInt32`.

        See Also
        --------
        len_bytes

        Notes
        -----
        When working with ASCII text, use :func:`len_bytes` instead to achieve
        equivalent output with much better performance:
        :func:`len_bytes` runs in _O(1)_, while :func:`len_chars` runs in (_O(n)_).

        A character is defined as a `Unicode scalar value`_. A single character is
        represented by a single byte when working with ASCII text, and a maximum of
        4 bytes otherwise.

        .. _Unicode scalar value: https://www.unicode.org/glossary/#unicode_scalar_value

        Examples
        --------
        >>> s = pl.Series(["CafÃ©", "345", "æ�±äº¬", None], dtype=pl.Categorical)
        >>> s.cat.len_chars()
        shape: (4,)
        Series: '' [u32]
        [
            4
            3
            2
            null
        ]
        Nr   r   s    r   Ú	len_charszCatNameSpace.len_charsl   r   r   c                 ó   — y)a{  
        Check if string representations of values start with a substring.

        Parameters
        ----------
        prefix
            Prefix substring.

        See Also
        --------
        contains : Check if the string repr contains a substring that matches a pattern.
        ends_with : Check if string repr ends with a substring.

        Examples
        --------
        >>> s = pl.Series("fruits", ["apple", "mango", None], dtype=pl.Categorical)
        >>> s.cat.starts_with("app")
        shape: (3,)
        Series: 'fruits' [bool]
        [
            true
            false
            null
        ]
        Nr   )r   Úprefixs     r   Ústarts_withzCatNameSpace.starts_with“   r   r   c                 ó   — y)az  
        Check if string representations of values end with a substring.

        Parameters
        ----------
        suffix
            Suffix substring.

        See Also
        --------
        contains : Check if the string repr contains a substring that matches a pattern.
        starts_with : Check if string repr starts with a substring.

        Examples
        --------
        >>> s = pl.Series("fruits", ["apple", "mango", None], dtype=pl.Categorical)
        >>> s.cat.ends_with("go")
        shape: (3,)
        Series: 'fruits' [bool]
        [
            false
            true
            null
        ]
        Nr   )r   Úsuffixs     r   Ú	ends_withzCatNameSpace.ends_with®   r   r   Nc                 ó   — y)aV  
        Extract a substring from the string representation of each string value.

        Parameters
        ----------
        offset
            Start index. Negative indexing is supported.
        length
            Length of the slice. If set to `None` (default), the slice is taken to the
            end of the string.

        Returns
        -------
        Series
            Series of data type :class:`String`.

        Notes
        -----
        Both the `offset` and `length` inputs are defined in terms of the number
        of characters in the (UTF8) string. A character is defined as a
        `Unicode scalar value`_. A single character is represented by a single byte
        when working with ASCII text, and a maximum of 4 bytes otherwise.

        .. _Unicode scalar value: https://www.unicode.org/glossary/#unicode_scalar_value

        Examples
        --------
        >>> s = pl.Series(["pear", None, "papaya", "dragonfruit"], dtype=pl.Categorical)
        >>> s.cat.slice(-3)
        shape: (4,)
        Series: '' [str]
        [
            "ear"
            null
            "aya"
            "uit"
        ]

        Using the optional `length` parameter

        >>> s.cat.slice(4, length=3)
        shape: (4,)
        Series: '' [str]
        [
            ""
            null
            "ya"
            "onf"
        ]
        Nr   )r   ÚoffsetÚlengths      r   ÚslicezCatNameSpace.sliceÉ   r   r   )r   r   ÚreturnÚNone)r1   r   )r1   Úbool)r(   Ústrr1   r   )r+   r4   r1   r   r   )r.   Úintr/   z
int | Noner1   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	_accessorr   r   r   r   r   r"   r$   r&   r)   r,   r0   r   r   r   r   r      sp   „ á3à€Ió&óñ" ð	5óò&ó	ð&ó.ñ ð	5óò3ó	ð3ó óD%óNó6õ62r   r   N)Ú
__future__r   Útypingr   Úpolars._utils.deprecationr   Úpolars._utils.wrapr   Úpolars.series.utilsr   Úpolarsr   Úpolars._plrr	   r   r   r   r   ú<module>rB      s9   ðÝ "å  å 0Ý %Ý -áÝÝ$ð ÷lð ló ñlr   