
    Lpjc                        S SK Jr  S SKrS SKJr  S SKrS SKJr	  S SK
JrJrJrJrJr  S SKJr  \(       a  S SKJr  S SKJr   " S S	\\S
   5      rg)    )annotationsN)TYPE_CHECKING)ArrowSeriesNamespaceextract_nativelitparse_datetime_formatparse_time_format)StringNamespace)ArrowSeries)
Incompletec                      \ rS rSrSS jr          SS jr        SS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrS S jrS!S jrS"S jrS"S jrS"S jrSS jrSS jrSS jrS#S jrS$S jrS$S jrSrg)%ArrowSeriesStringNamespace   c                `    U R                  [        R                  " U R                  5      5      $ N)with_nativepcutf8_lengthnativeselfs    V/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_arrow/series_str.py	len_chars$ArrowSeriesStringNamespace.len_chars   s     t{{ ;<<    c               :   U(       a  [         R                  O[         R                  n[        U R                  U5      u  pg[        U[        R                  5      (       d  Sn[        U5      eU" U R                  X'R                  5       US9n	U R                  U	5      $ )NzBPyArrow backed `.str.replace` only supports str replacement values)replacementmax_replacements)r   replace_substringreplace_substring_regexr   	compliant
isinstancepaStringScalar	TypeErrorr   as_pyr   )
r   valuepatternliteralnfn_value_nativemsgarrs
             r   replace"ArrowSeriesStringNamespace.replace   s}     &-R!!"2L2L(?,88VCC. KK.@.@.BUV
 $$r   c               $    U R                  XUSS9$ )N)r)   r*   )r0   )r   r'   r(   r)   s       r   replace_all&ArrowSeriesStringNamespace.replace_all(   s     ||EGr|BBr   c                    U R                  [        R                  " U R                  U=(       d    [        R
                  5      5      $ r   )r   r   	utf8_trimr   string
whitespacer   
characterss     r   strip_chars&ArrowSeriesStringNamespace.strip_chars-   s2    LLj&EF4E4EF
 	
r   c                b    U R                  [        R                  " U R                  U5      5      $ r   )r   r   
utf8_ltrimr   r:   s     r   strip_chars_start,ArrowSeriesStringNamespace.strip_chars_start2   "    dkk: FGGr   c                b    U R                  [        R                  " U R                  U5      5      $ r   )r   r   
utf8_rtrimr   r:   s     r   strip_chars_end*ArrowSeriesStringNamespace.strip_chars_end5   rB   r   c                f   [        U R                  U5      u  p#[        U[        R                  5      (       d  Sn[        U5      eU R                  [        R                  " U R                  S[        UR                  5       5      5      R                  [        UR                  5       5      5      5      $ )NzF`.str.starts_with` only supports str prefix values for pyarrow backendr   r   r!   r"   r#   r$   r%   r   r   equalslicelenr&   r   r   )r   prefixr,   prefix_nativer.   s        r   starts_with&ArrowSeriesStringNamespace.starts_with8   s    )$..&A-99ZCC. HH

1c-"5"5"789@@M'')*
 	
r   c           
     h   [        U R                  U5      u  p#[        U[        R                  5      (       d  Sn[        U5      eU R                  [        R                  " U R                  [        UR                  5       5      * S 5      R                  [        UR                  5       5      5      5      $ )NzD`.str.ends_with` only supports str suffix values for pyarrow backendrH   )r   suffixr,   suffix_nativer.   s        r   	ends_with$ArrowSeriesStringNamespace.ends_withD   s    )$..&A-99XCC. HH

C 3 3 566=DDM'')*
 	
r   c               8   [        U R                  U5      u  p4[        U[        R                  5      (       d  Sn[        U5      eU(       a  [        R                  O[        R                  nU R                  U" U R                  UR                  5       5      5      $ )NzD`.str.contains` only supports str pattern values for pyarrow backend)r   r!   r"   r#   r$   r%   r   match_substringmatch_substring_regexr   r   r&   )r   r(   r)   r,   pattern_nativer.   r+   s          r   contains#ArrowSeriesStringNamespace.containsP   so    *4>>7C."//::XCC. #*R0H0H4;;0D0D0F GHHr   c                p    Ub  X-   OS nU R                  [        R                  " U R                  XS95      $ )N)startstop)r   r   utf8_slice_codeunitsr   )r   offsetlengthr]   s       r   rJ    ArrowSeriesStringNamespace.sliceX   s7    "("4v$##DKKvI
 	
r   c                f    [         R                  " U R                  U5      nU R                  U5      $ r   )r   split_patternr   r   )r   bysplit_seriess      r   split ArrowSeriesStringNamespace.split^   s)    ''R8--r   c                    Uc  [        U R                  5      OUn[        R                  " U R                  USS9nU R	                  U5      $ Nus)formatunit)r   r   r   strptimer   )r   rk   timestamp_arrays      r   to_datetime&ArrowSeriesStringNamespace.to_datetimeb   s>    7=~&t{{36++dkk&tL00r   c                P    U R                  US9R                  R                  5       $ )N)rk   )ro   dtdate)r   rk   s     r   to_date"ArrowSeriesStringNamespace.to_dateg   s%    v.116688r   c                    Uc  [        U R                  5      OUn[        R                  " U R                  USS9nU R                  R
                  R                  5       nU R                  U5      R                  U5      $ ri   )	r	   r   r   rm   versiondtypesTimer   cast)r   rk   rn   nw_time_dtypes       r   to_time"ArrowSeriesStringNamespace.to_timej   sa    39>"4;;/v++dkk&tL++002055mDDr   c                `    U R                  [        R                  " U R                  5      5      $ r   )r   r   
utf8_upperr   r   s    r   to_uppercase'ArrowSeriesStringNamespace.to_uppercaseq        dkk :;;r   c                `    U R                  [        R                  " U R                  5      5      $ r   )r   r   
utf8_lowerr   r   s    r   to_lowercase'ArrowSeriesStringNamespace.to_lowercaset   r   r   c                `    U R                  [        R                  " U R                  5      5      $ r   )r   r   
utf8_titler   r   s    r   to_titlecase'ArrowSeriesStringNamespace.to_titlecasew   r   r   c                V   [         R                  nU R                  n[        S5      [        S5      pTU R	                  SS5      R                  U R	                  SS 5      R                  pv[         R
                  " [         R                  " U5      [        U5      5      n[         R                  " Xd5      n	[         R                  " Xe5      n
[         R                  " [         R                  " X5      [         R                  " X5      U5      n[         R                  " XqS-
  SS9n[         R                  " UU" [        R                  " U[        U5      5      US5      U" [        R                  " U[        U5      5      US5      [         R                  " X1SS9U5      nU R                  U5      $ )	N-+r      0)padding widthr   )r   binary_join_element_wiser   r   rJ   lessr   rI   make_structand_	utf8_lpad	case_whenr#   repeatrK   r   )r   r   binary_joinr   hyphenplus
first_charremaining_charsless_than_widthstarts_with_hyphenstarts_with_plus
conditionspadded_remaining_charsresults                 r   zfill ArrowSeriesStringNamespace.zfillz   sI   "$"="=3xSJJq!##JJq$&& $ ''".."8#e*EXXj988J5^^GG&8GG$6

 "$oqyRU!V		&#f+.0F 		$F,.Db LLc:

 ''r   c                ^    U R                  [        R                  " U R                  XS95      $ Nr   )r   r   r   r   r   r`   	fill_chars      r   	pad_start$ArrowSeriesStringNamespace.pad_start   '    LLFF
 	
r   c                ^    U R                  [        R                  " U R                  XS95      $ r   )r   r   	utf8_rpadr   r   s      r   pad_end"ArrowSeriesStringNamespace.pad_end   r   r    N)returnr   )
r'   r   r(   strr)   boolr*   intr   r   )r'   r   r(   r   r)   r   r   r   )r;   
str | Noner   r   )r;   r   r   r   )rL   r   r   r   )rQ   r   r   r   )r(   r   r)   r   r   r   )r_   r   r`   z
int | Noner   r   )rd   r   r   r   )rk   r   r   r   )r   r   r   r   )r`   r   r   r   r   r   )__name__
__module____qualname____firstlineno__r   r0   r4   r<   r@   rE   rN   rS   rY   rJ   rf   ro   rt   r|   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    =% %+.%<@%EH%	%C C+.C<@C	C


HH



I
.1
9E<<<"(H


r   r   r   )
__future__r   r8   typingr   pyarrowr#   pyarrow.computecomputer   narwhals._arrow.utilsr   r   r   r   r	   !narwhals._compliant.any_namespacer
   narwhals._arrow.seriesr   narwhals._arrow.typingr   r   r   r   r   <module>r      sB    "       >21O
!5}7U O
r   