o
    h?                     @  sr   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 d dlm	Z	 er,d dl
mZ G dd	 d	eed
 ZdS )    )annotations)TYPE_CHECKING)Any)StringNamespace)PandasLikeSeriesNamespace)is_pyarrow_dtype_backend)PandasLikeSeriesc                   @  s   e Zd Zd0ddZd1ddZd2ddZd3ddZd4ddZd5ddZd6ddZ	d7dd Z
d8d"d#Zd9d%d&Zd:d)d*Zd0d+d,Zd0d-d.Zd/S );PandasLikeSeriesStringNamespacereturnr   c                 C     |  | jj S N)with_nativenativestrlenself r   T/var/www/vscode/kcb/lib/python3.10/site-packages/narwhals/_pandas_like/series_str.py	len_chars      z)PandasLikeSeriesStringNamespace.len_charspatternr   valueliteralboolnintc                C  s   |  | jjj|||| dS )N)patreplr   regex)r   r   r   replace)r   r   r   r   r   r   r   r   r       s   z'PandasLikeSeriesStringNamespace.replacec                C  s   | j |||ddS )N)r   r   )r    )r   r   r   r   r   r   r   replace_all   r   z+PandasLikeSeriesStringNamespace.replace_all
characters
str | Nonec                 C     |  | jj|S r   )r   r   r   strip)r   r#   r   r   r   strip_chars      z+PandasLikeSeriesStringNamespace.strip_charsprefixc                 C  r%   r   )r   r   r   
startswith)r   r)   r   r   r   starts_with!   r(   z+PandasLikeSeriesStringNamespace.starts_withsuffixc                 C  r%   r   )r   r   r   endswith)r   r,   r   r   r   	ends_with$   r(   z)PandasLikeSeriesStringNamespace.ends_withc                C  s   |  | jjj|| dS )N)r   r   )r   r   r   contains)r   r   r   r   r   r   r/   '   s   z(PandasLikeSeriesStringNamespace.containsoffsetlength
int | Nonec                 C  s(   |r|| nd }|  | jjj||dS )N)startstop)r   r   r   slice)r   r0   r1   r4   r   r   r   r5   *   s   z%PandasLikeSeriesStringNamespace.slicebyc                 C  s>   | j }| st| jj|sd}t|| | jjj|dS )Na  This operation requires a pyarrow-backed series. Please refer to https://narwhals-dev.github.io/narwhals/api-reference/narwhals/#narwhals.maybe_convert_dtypes and ensure you are using dtype_backend='pyarrow'. Additionally, make sure you have pandas version 1.5+ and pyarrow installed. )r   )	implementationis_cudfr   r   dtype	TypeErrorr   r   split)r   r6   r7   msgr   r   r   r;   .   s   
z%PandasLikeSeriesStringNamespace.splitformatc                   sl    rt  fdddD r| | j ddS | | j dd}t|jdd  }r4|dkr4|jdS |S )	Nc                 3  s    | ]}| v V  qd S r   r   ).0xr=   r   r   	<genexpr>>   s    z>PandasLikeSeriesStringNamespace.to_datetime.<locals>.<genexpr>)z%zZT)utcF	time_zoneUTC)anyr   _to_datetimegetattrr9   dtconvert_time_zone)r   r=   resulttzr   r@   r   to_datetime<   s   z+PandasLikeSeriesStringNamespace.to_datetimerC   r   c                C  s   | j  j| j||dS )N)r=   rC   )r7   to_native_namespacerM   r   )r   r=   rC   r   r   r   rG   E   s   
z,PandasLikeSeriesStringNamespace._to_datetimec                 C  r   r   )r   r   r   upperr   r   r   r   to_uppercaseJ   r   z,PandasLikeSeriesStringNamespace.to_uppercasec                 C  r   r   )r   r   r   lowerr   r   r   r   to_lowercaseM   r   z,PandasLikeSeriesStringNamespace.to_lowercaseN)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
   r   )r0   r   r1   r2   r
   r   )r6   r   r
   r   )r=   r$   r
   r   )r=   r$   rC   r   r
   r   )__name__
__module____qualname__r   r    r"   r'   r+   r.   r/   r5   r;   rM   rG   rP   rR   r   r   r   r   r	      s    










	
r	   r   N)
__future__r   typingr   r   !narwhals._compliant.any_namespacer   narwhals._pandas_like.utilsr   r   narwhals._pandas_like.seriesr   r	   r   r   r   r   <module>   s    
