
    h                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  \(       a  S SK
Jr  S SKJr  \	 " S S	5      5       rg
)    )annotations)TYPE_CHECKING)unstable)wrap_s)expr_dispatch)Series)PySeriesc                      \ rS rSrSrSrSS jrSS jrSS jrSS jr	\
" 5       SS j5       rSS	 jrSS
 jrSS jrSS jrSSS jjrSrg)CatNameSpace   z)Namespace for categorical related series.catc                &    UR                   U l         g N_s)selfseriess     S/home/james-whalen/.local/lib/python3.13/site-packages/polars/series/categorical.py__init__CatNameSpace.__init__   s    "II    c                    g)z
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_categoriesCatNameSpace.get_categories       r   c                6    U R                   R                  5       $ )zQ
Return whether or not the column is a local categorical.

Always returns false.
)r   cat_is_localr   s    r   is_localCatNameSpace.is_local(   s     ww##%%r   c                H    [        U R                  R                  5       5      $ )zFSimply returns the column as-is, local representations are deprecated.)r   r   cat_to_localr   s    r   to_localCatNameSpace.to_local0   s    dgg**,--r   c                6    U R                   R                  5       $ )a9  
Indicate whether the Series uses lexical ordering.

.. warning::
    This functionality is considered **unstable**. It may be changed
    at any point without it being considered a breaking change.

Examples
--------
>>> s = pl.Series(["b", "a", "b"]).cast(pl.Categorical)
>>> s.cat.uses_lexical_ordering()
True
)r   cat_uses_lexical_orderingr   s    r   uses_lexical_ordering"CatNameSpace.uses_lexical_ordering4   s     ww0022r   c                    g)uN  
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_bytesCatNameSpace.len_bytesE   r   r   c                    g)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_charsCatNameSpace.len_charsg   r   r   c                    g)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_withCatNameSpace.starts_with   r   r   c                    g)a  
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_withCatNameSpace.ends_with   r   r   Nc                    g)a  
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   sliceCatNameSpace.slice   r   r   r   )r   r   returnNone)r=   r   )r=   bool)r1   strr=   r   )r5   r@   r=   r   r   )r9   intr:   z
int | Noner=   r   )__name__
__module____qualname____firstlineno____doc__	_accessorr   r   r    r$   r   r(   r+   r.   r2   r6   r;   __static_attributes__r   r   r   r   r      sT    3I&"&. Z3 3  D%N662 2r   r   N)
__future__r   typingr   polars._utils.unstabler   polars._utils.wrapr   polars.series.utilsr   polarsr   polars._plrr	   r   r   r   r   <module>rP      s9    "   + % -$ g g gr   