@@ -358,7 +358,7 @@ def _str_repeat(self, repeats: int | Sequence[int]):
358
358
if not isinstance (repeats , int ):
359
359
return super ()._str_repeat (repeats )
360
360
else :
361
- return type ( self )( pc . binary_repeat (self . _pa_array , repeats ) )
361
+ return ArrowExtensionArray . _str_repeat (self , repeats = repeats )
362
362
363
363
def _str_match (
364
364
self , pat : str , case : bool = True , flags : int = 0 , na : Scalar | None = None
@@ -379,13 +379,7 @@ def _str_slice(
379
379
) -> Self :
380
380
if stop is None :
381
381
return super ()._str_slice (start , stop , step )
382
- if start is None :
383
- start = 0
384
- if step is None :
385
- step = 1
386
- return type (self )(
387
- pc .utf8_slice_codeunits (self ._pa_array , start = start , stop = stop , step = step )
388
- )
382
+ return ArrowExtensionArray ._str_slice (self , start = start , stop = stop , step = step )
389
383
390
384
def _str_isalnum (self ):
391
385
result = pc .utf8_is_alnum (self ._pa_array )
@@ -427,39 +421,15 @@ def _str_len(self):
427
421
result = pc .utf8_length (self ._pa_array )
428
422
return self ._convert_int_dtype (result )
429
423
430
- def _str_lower (self ) -> Self :
431
- return type (self )(pc .utf8_lower (self ._pa_array ))
432
-
433
- def _str_upper (self ) -> Self :
434
- return type (self )(pc .utf8_upper (self ._pa_array ))
435
-
436
- def _str_strip (self , to_strip = None ) -> Self :
437
- if to_strip is None :
438
- result = pc .utf8_trim_whitespace (self ._pa_array )
439
- else :
440
- result = pc .utf8_trim (self ._pa_array , characters = to_strip )
441
- return type (self )(result )
442
-
443
- def _str_lstrip (self , to_strip = None ) -> Self :
444
- if to_strip is None :
445
- result = pc .utf8_ltrim_whitespace (self ._pa_array )
446
- else :
447
- result = pc .utf8_ltrim (self ._pa_array , characters = to_strip )
448
- return type (self )(result )
449
-
450
- def _str_rstrip (self , to_strip = None ) -> Self :
451
- if to_strip is None :
452
- result = pc .utf8_rtrim_whitespace (self ._pa_array )
453
- else :
454
- result = pc .utf8_rtrim (self ._pa_array , characters = to_strip )
455
- return type (self )(result )
424
+ _str_lower = ArrowExtensionArray ._str_lower
425
+ _str_upper = ArrowExtensionArray ._str_upper
426
+ _str_strip = ArrowExtensionArray ._str_strip
427
+ _str_lstrip = ArrowExtensionArray ._str_lstrip
428
+ _str_rstrip = ArrowExtensionArray ._str_rstrip
456
429
457
430
def _str_removeprefix (self , prefix : str ):
458
431
if not pa_version_under13p0 :
459
- starts_with = pc .starts_with (self ._pa_array , pattern = prefix )
460
- removed = pc .utf8_slice_codeunits (self ._pa_array , len (prefix ))
461
- result = pc .if_else (starts_with , removed , self ._pa_array )
462
- return type (self )(result )
432
+ return ArrowExtensionArray ._str_removeprefix (self , prefix )
463
433
return super ()._str_removeprefix (prefix )
464
434
465
435
def _str_removesuffix (self , suffix : str ):
0 commit comments