codekingpro/portable-devtools
115k
1from typing import (
2 Any,
3 Literal as L,
4 Self,
5 SupportsIndex,
6 SupportsInt,
7 TypeAlias,
8 overload,
9)
10from typing_extensions import Buffer, TypeVar
11
12import numpy as np
13from numpy import _OrderKACF, bytes_, dtype, int_, ndarray, object_, str_
14from numpy._core.multiarray import compare_chararrays
15from numpy._typing import (
16 NDArray,
17 _AnyShape,
18 _ArrayLikeAnyString_co as UST_co,
19 _ArrayLikeBool_co as b_co,
20 _ArrayLikeBytes_co as S_co,
21 _ArrayLikeInt_co as i_co,
22 _ArrayLikeStr_co as U_co,
23 _ArrayLikeString_co as T_co,
24 _Shape,
25 _ShapeLike,
26 _SupportsArray,
27)
28
29__all__ = [
30 "equal",
31 "not_equal",
32 "greater_equal",
33 "less_equal",
34 "greater",
35 "less",
36 "str_len",
37 "add",
38 "multiply",
39 "mod",
40 "capitalize",
41 "center",
42 "count",
43 "decode",
44 "encode",
45 "endswith",
46 "expandtabs",
47 "find",
48 "index",
49 "isalnum",
50 "isalpha",
51 "isdigit",
52 "islower",
53 "isspace",
54 "istitle",
55 "isupper",
56 "join",
57 "ljust",
58 "lower",
59 "lstrip",
60 "partition",
61 "replace",
62 "rfind",
63 "rindex",
64 "rjust",
65 "rpartition",
66 "rsplit",
67 "rstrip",
68 "split",
69 "splitlines",
70 "startswith",
71 "strip",
72 "swapcase",
73 "title",
74 "translate",
75 "upper",
76 "zfill",
77 "isnumeric",
78 "isdecimal",
79 "array",
80 "asarray",
81 "compare_chararrays",
82 "chararray",
83]
84
85_ShapeT_co = TypeVar("_ShapeT_co", bound=_Shape, default=_AnyShape, covariant=True)
86_CharacterT = TypeVar("_CharacterT", bound=np.character)
87_CharDTypeT_co = TypeVar("_CharDTypeT_co", bound=dtype[np.character], default=dtype, covariant=True)
88
89_CharArray: TypeAlias = chararray[_AnyShape, dtype[_CharacterT]]
90
91_StringDTypeArray: TypeAlias = np.ndarray[_AnyShape, np.dtypes.StringDType]
92_StringDTypeOrUnicodeArray: TypeAlias = _StringDTypeArray | NDArray[np.str_]
93_StringDTypeSupportsArray: TypeAlias = _SupportsArray[np.dtypes.StringDType]
94
95class chararray(ndarray[_ShapeT_co, _CharDTypeT_co]):
96 @overload
97 def __new__(
98 subtype,
99 shape: _ShapeLike,
100 itemsize: SupportsIndex | SupportsInt = 1,
101 unicode: L[False] = False,
102 buffer: Buffer | np.ndarray | None = None,
103 offset: SupportsIndex = 0,
104 strides: _ShapeLike | None = None,
105 order: _OrderKACF = "C",
106 ) -> _CharArray[bytes_]: ...
107 @overload
108 def __new__(
109 subtype,
110 shape: _ShapeLike,
111 itemsize: SupportsIndex | SupportsInt,
112 unicode: L[True],
113 buffer: Buffer | np.ndarray | None = None,
114 offset: SupportsIndex = 0,
115 strides: _ShapeLike | None = None,
116 order: _OrderKACF = "C",
117 ) -> _CharArray[str_]: ...
118 @overload
119 def __new__(
120 subtype,
121 shape: _ShapeLike,
122 itemsize: SupportsIndex | SupportsInt = 1,
123 *,
124 unicode: L[True],
125 buffer: Buffer | np.ndarray | None = None,
126 offset: SupportsIndex = 0,
127 strides: _ShapeLike | None = None,
128 order: _OrderKACF = "C",
129 ) -> _CharArray[str_]: ...
130
131 def __array_finalize__(self, obj: object) -> None: ...
132 def __mul__(self, other: i_co) -> chararray[_AnyShape, _CharDTypeT_co]: ... # type: ignore[override]
133 def __rmul__(self, other: i_co) -> chararray[_AnyShape, _CharDTypeT_co]: ... # type: ignore[override]
134 def __mod__(self, i: Any) -> chararray[_AnyShape, _CharDTypeT_co]: ... # type: ignore[override]
135
136 @overload # type: ignore[override]
137 def __eq__(
138 self: _CharArray[str_],
139 other: U_co,
140 ) -> NDArray[np.bool]: ...
141 @overload
142 def __eq__(
143 self: _CharArray[bytes_],
144 other: S_co,
145 ) -> NDArray[np.bool]: ...
146
147 @overload # type: ignore[override]
148 def __ne__(
149 self: _CharArray[str_],
150 other: U_co,
151 ) -> NDArray[np.bool]: ...
152 @overload
153 def __ne__(
154 self: _CharArray[bytes_],
155 other: S_co,
156 ) -> NDArray[np.bool]: ...
157
158 @overload # type: ignore[override]
159 def __ge__(
160 self: _CharArray[str_],
161 other: U_co,
162 ) -> NDArray[np.bool]: ...
163 @overload
164 def __ge__(
165 self: _CharArray[bytes_],
166 other: S_co,
167 ) -> NDArray[np.bool]: ...
168
169 @overload # type: ignore[override]
170 def __le__(
171 self: _CharArray[str_],
172 other: U_co,
173 ) -> NDArray[np.bool]: ...
174 @overload
175 def __le__(
176 self: _CharArray[bytes_],
177 other: S_co,
178 ) -> NDArray[np.bool]: ...
179
180 @overload # type: ignore[override]
181 def __gt__(
182 self: _CharArray[str_],
183 other: U_co,
184 ) -> NDArray[np.bool]: ...
185 @overload
186 def __gt__(
187 self: _CharArray[bytes_],
188 other: S_co,
189 ) -> NDArray[np.bool]: ...
190
191 @overload # type: ignore[override]
192 def __lt__(
193 self: _CharArray[str_],
194 other: U_co,
195 ) -> NDArray[np.bool]: ...
196 @overload
197 def __lt__(
198 self: _CharArray[bytes_],
199 other: S_co,
200 ) -> NDArray[np.bool]: ...
201
202 @overload # type: ignore[override]
203 def __add__(
204 self: _CharArray[str_],
205 other: U_co,
206 ) -> _CharArray[str_]: ...
207 @overload
208 def __add__(
209 self: _CharArray[bytes_],
210 other: S_co,
211 ) -> _CharArray[bytes_]: ...
212
213 @overload # type: ignore[override]
214 def __radd__(
215 self: _CharArray[str_],
216 other: U_co,
217 ) -> _CharArray[str_]: ...
218 @overload
219 def __radd__(
220 self: _CharArray[bytes_],
221 other: S_co,
222 ) -> _CharArray[bytes_]: ...
223
224 @overload
225 def center(
226 self: _CharArray[str_],
227 width: i_co,
228 fillchar: U_co = " ",
229 ) -> _CharArray[str_]: ...
230 @overload
231 def center(
232 self: _CharArray[bytes_],
233 width: i_co,
234 fillchar: str | S_co = " ",
235 ) -> _CharArray[bytes_]: ...
236
237 @overload
238 def count(
239 self: _CharArray[str_],
240 sub: U_co,
241 start: i_co = 0,
242 end: i_co | None = None,
243 ) -> NDArray[int_]: ...
244 @overload
245 def count(
246 self: _CharArray[bytes_],
247 sub: S_co,
248 start: i_co = 0,
249 end: i_co | None = None,
250 ) -> NDArray[int_]: ...
251
252 def decode(
253 self: _CharArray[bytes_],
254 encoding: str | None = None,
255 errors: str | None = None,
256 ) -> _CharArray[str_]: ...
257
258 def encode(
259 self: _CharArray[str_],
260 encoding: str | None = None,
261 errors: str | None = None,
262 ) -> _CharArray[bytes_]: ...
263
264 @overload
265 def endswith(
266 self: _CharArray[str_],
267 suffix: U_co,
268 start: i_co = 0,
269 end: i_co | None = None,
270 ) -> NDArray[np.bool]: ...
271 @overload
272 def endswith(
273 self: _CharArray[bytes_],
274 suffix: S_co,
275 start: i_co = 0,
276 end: i_co | None = None,
277 ) -> NDArray[np.bool]: ...
278
279 def expandtabs(
280 self,
281 tabsize: i_co = 8,
282 ) -> Self: ...
283
284 @overload
285 def find(
286 self: _CharArray[str_],
287 sub: U_co,
288 start: i_co = 0,
289 end: i_co | None = None,
290 ) -> NDArray[int_]: ...
291 @overload
292 def find(
293 self: _CharArray[bytes_],
294 sub: S_co,
295 start: i_co = 0,
296 end: i_co | None = None,
297 ) -> NDArray[int_]: ...
298
299 @overload
300 def index(
301 self: _CharArray[str_],
302 sub: U_co,
303 start: i_co = 0,
304 end: i_co | None = None,
305 ) -> NDArray[int_]: ...
306 @overload
307 def index(
308 self: _CharArray[bytes_],
309 sub: S_co,
310 start: i_co = 0,
311 end: i_co | None = None,
312 ) -> NDArray[int_]: ...
313
314 @overload
315 def join(
316 self: _CharArray[str_],
317 seq: U_co,
318 ) -> _CharArray[str_]: ...
319 @overload
320 def join(
321 self: _CharArray[bytes_],
322 seq: S_co,
323 ) -> _CharArray[bytes_]: ...
324
325 @overload
326 def ljust(
327 self: _CharArray[str_],
328 width: i_co,
329 fillchar: U_co = " ",
330 ) -> _CharArray[str_]: ...
331 @overload
332 def ljust(
333 self: _CharArray[bytes_],
334 width: i_co,
335 fillchar: str | S_co = " ",
336 ) -> _CharArray[bytes_]: ...
337
338 @overload
339 def lstrip(
340 self: _CharArray[str_],
341 chars: U_co | None = None,
342 ) -> _CharArray[str_]: ...
343 @overload
344 def lstrip(
345 self: _CharArray[bytes_],
346 chars: S_co | None = None,
347 ) -> _CharArray[bytes_]: ...
348
349 @overload # type: ignore[override]
350 def partition(
351 self: _CharArray[str_],
352 sep: U_co,
353 ) -> _CharArray[str_]: ...
354 @overload
355 def partition(
356 self: _CharArray[bytes_],
357 sep: S_co,
358 ) -> _CharArray[bytes_]: ...
359
360 @overload
361 def replace(
362 self: _CharArray[str_],
363 old: U_co,
364 new: U_co,
365 count: i_co | None = None,
366 ) -> _CharArray[str_]: ...
367 @overload
368 def replace(
369 self: _CharArray[bytes_],
370 old: S_co,
371 new: S_co,
372 count: i_co | None = None,
373 ) -> _CharArray[bytes_]: ...
374
375 @overload
376 def rfind(
377 self: _CharArray[str_],
378 sub: U_co,
379 start: i_co = 0,
380 end: i_co | None = None,
381 ) -> NDArray[int_]: ...
382 @overload
383 def rfind(
384 self: _CharArray[bytes_],
385 sub: S_co,
386 start: i_co = 0,
387 end: i_co | None = None,
388 ) -> NDArray[int_]: ...
389
390 @overload
391 def rindex(
392 self: _CharArray[str_],
393 sub: U_co,
394 start: i_co = 0,
395 end: i_co | None = None,
396 ) -> NDArray[int_]: ...
397 @overload
398 def rindex(
399 self: _CharArray[bytes_],
400 sub: S_co,
401 start: i_co = 0,
402 end: i_co | None = None,
403 ) -> NDArray[int_]: ...
404
405 @overload
406 def rjust(
407 self: _CharArray[str_],
408 width: i_co,
409 fillchar: U_co = " ",
410 ) -> _CharArray[str_]: ...
411 @overload
412 def rjust(
413 self: _CharArray[bytes_],
414 width: i_co,
415 fillchar: str | S_co = " ",
416 ) -> _CharArray[bytes_]: ...
417
418 @overload
419 def rpartition(
420 self: _CharArray[str_],
421 sep: U_co,
422 ) -> _CharArray[str_]: ...
423 @overload
424 def rpartition(
425 self: _CharArray[bytes_],
426 sep: S_co,
427 ) -> _CharArray[bytes_]: ...
428
429 @overload
430 def rsplit(
431 self: _CharArray[str_],
432 sep: U_co | None = None,
433 maxsplit: i_co | None = None,
434 ) -> NDArray[object_]: ...
435 @overload
436 def rsplit(
437 self: _CharArray[bytes_],
438 sep: S_co | None = None,
439 maxsplit: i_co | None = None,
440 ) -> NDArray[object_]: ...
441
442 @overload
443 def rstrip(
444 self: _CharArray[str_],
445 chars: U_co | None = None,
446 ) -> _CharArray[str_]: ...
447 @overload
448 def rstrip(
449 self: _CharArray[bytes_],
450 chars: S_co | None = None,
451 ) -> _CharArray[bytes_]: ...
452
453 @overload
454 def split(
455 self: _CharArray[str_],
456 sep: U_co | None = None,
457 maxsplit: i_co | None = None,
458 ) -> NDArray[object_]: ...
459 @overload
460 def split(
461 self: _CharArray[bytes_],
462 sep: S_co | None = None,
463 maxsplit: i_co | None = None,
464 ) -> NDArray[object_]: ...
465
466 def splitlines(self, keepends: b_co | None = None) -> NDArray[object_]: ...
467
468 @overload
469 def startswith(
470 self: _CharArray[str_],
471 prefix: U_co,
472 start: i_co = 0,
473 end: i_co | None = None,
474 ) -> NDArray[np.bool]: ...
475 @overload
476 def startswith(
477 self: _CharArray[bytes_],
478 prefix: S_co,
479 start: i_co = 0,
480 end: i_co | None = None,
481 ) -> NDArray[np.bool]: ...
482
483 @overload
484 def strip(
485 self: _CharArray[str_],
486 chars: U_co | None = None,
487 ) -> _CharArray[str_]: ...
488 @overload
489 def strip(
490 self: _CharArray[bytes_],
491 chars: S_co | None = None,
492 ) -> _CharArray[bytes_]: ...
493
494 @overload
495 def translate(
496 self: _CharArray[str_],
497 table: U_co,
498 deletechars: U_co | None = None,
499 ) -> _CharArray[str_]: ...
500 @overload
501 def translate(
502 self: _CharArray[bytes_],
503 table: S_co,
504 deletechars: S_co | None = None,
505 ) -> _CharArray[bytes_]: ...
506
507 def zfill(self, width: i_co) -> Self: ...
508 def capitalize(self) -> Self: ...
509 def title(self) -> Self: ...
510 def swapcase(self) -> Self: ...
511 def lower(self) -> Self: ...
512 def upper(self) -> Self: ...
513 def isalnum(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
514 def isalpha(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
515 def isdigit(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
516 def islower(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
517 def isspace(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
518 def istitle(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
519 def isupper(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
520 def isnumeric(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
521 def isdecimal(self) -> ndarray[_ShapeT_co, dtype[np.bool]]: ...
522
523# Comparison
524@overload
525def equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
526@overload
527def equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
528@overload
529def equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
530
531@overload
532def not_equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
533@overload
534def not_equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
535@overload
536def not_equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
537
538@overload
539def greater_equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
540@overload
541def greater_equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
542@overload
543def greater_equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
544
545@overload
546def less_equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
547@overload
548def less_equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
549@overload
550def less_equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
551
552@overload
553def greater(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
554@overload
555def greater(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
556@overload
557def greater(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
558
559@overload
560def less(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
561@overload
562def less(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
563@overload
564def less(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
565
566@overload
567def add(x1: U_co, x2: U_co) -> NDArray[np.str_]: ...
568@overload
569def add(x1: S_co, x2: S_co) -> NDArray[np.bytes_]: ...
570@overload
571def add(x1: _StringDTypeSupportsArray, x2: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
572@overload
573def add(x1: T_co, x2: T_co) -> _StringDTypeOrUnicodeArray: ...
574
575@overload
576def multiply(a: U_co, i: i_co) -> NDArray[np.str_]: ...
577@overload
578def multiply(a: S_co, i: i_co) -> NDArray[np.bytes_]: ...
579@overload
580def multiply(a: _StringDTypeSupportsArray, i: i_co) -> _StringDTypeArray: ...
581@overload
582def multiply(a: T_co, i: i_co) -> _StringDTypeOrUnicodeArray: ...
583
584@overload
585def mod(a: U_co, value: Any) -> NDArray[np.str_]: ...
586@overload
587def mod(a: S_co, value: Any) -> NDArray[np.bytes_]: ...
588@overload
589def mod(a: _StringDTypeSupportsArray, value: Any) -> _StringDTypeArray: ...
590@overload
591def mod(a: T_co, value: Any) -> _StringDTypeOrUnicodeArray: ...
592
593@overload
594def capitalize(a: U_co) -> NDArray[str_]: ...
595@overload
596def capitalize(a: S_co) -> NDArray[bytes_]: ...
597@overload
598def capitalize(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
599@overload
600def capitalize(a: T_co) -> _StringDTypeOrUnicodeArray: ...
601
602@overload
603def center(a: U_co, width: i_co, fillchar: U_co = " ") -> NDArray[str_]: ...
604@overload
605def center(a: S_co, width: i_co, fillchar: str | S_co = " ") -> NDArray[bytes_]: ...
606@overload
607def center(a: _StringDTypeSupportsArray, width: i_co, fillchar: str | _StringDTypeSupportsArray = " ") -> _StringDTypeArray: ...
608@overload
609def center(a: T_co, width: i_co, fillchar: T_co = " ") -> _StringDTypeOrUnicodeArray: ...
610
611def decode(
612 a: S_co,
613 encoding: str | None = None,
614 errors: str | None = None,
615) -> NDArray[str_]: ...
616def encode(
617 a: U_co | T_co,
618 encoding: str | None = None,
619 errors: str | None = None,
620) -> NDArray[bytes_]: ...
621
622@overload
623def expandtabs(a: U_co, tabsize: i_co = 8) -> NDArray[str_]: ...
624@overload
625def expandtabs(a: S_co, tabsize: i_co = 8) -> NDArray[bytes_]: ...
626@overload
627def expandtabs(a: _StringDTypeSupportsArray, tabsize: i_co = 8) -> _StringDTypeArray: ...
628@overload
629def expandtabs(a: T_co, tabsize: i_co = 8) -> _StringDTypeOrUnicodeArray: ...
630
631@overload
632def join(sep: U_co, seq: U_co) -> NDArray[str_]: ...
633@overload
634def join(sep: S_co, seq: S_co) -> NDArray[bytes_]: ...
635@overload
636def join(sep: _StringDTypeSupportsArray, seq: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
637@overload
638def join(sep: T_co, seq: T_co) -> _StringDTypeOrUnicodeArray: ...
639
640@overload
641def ljust(a: U_co, width: i_co, fillchar: U_co = " ") -> NDArray[str_]: ...
642@overload
643def ljust(a: S_co, width: i_co, fillchar: str | S_co = " ") -> NDArray[bytes_]: ...
644@overload
645def ljust(a: _StringDTypeSupportsArray, width: i_co, fillchar: str | _StringDTypeSupportsArray = " ") -> _StringDTypeArray: ...
646@overload
647def ljust(a: T_co, width: i_co, fillchar: T_co = " ") -> _StringDTypeOrUnicodeArray: ...
648
649@overload
650def lower(a: U_co) -> NDArray[str_]: ...
651@overload
652def lower(a: S_co) -> NDArray[bytes_]: ...
653@overload
654def lower(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
655@overload
656def lower(a: T_co) -> _StringDTypeOrUnicodeArray: ...
657
658@overload
659def lstrip(a: U_co, chars: U_co | None = None) -> NDArray[str_]: ...
660@overload
661def lstrip(a: S_co, chars: S_co | None = None) -> NDArray[bytes_]: ...
662@overload
663def lstrip(a: _StringDTypeSupportsArray, chars: _StringDTypeSupportsArray | None = None) -> _StringDTypeArray: ...
664@overload
665def lstrip(a: T_co, chars: T_co | None = None) -> _StringDTypeOrUnicodeArray: ...
666
667@overload
668def partition(a: U_co, sep: U_co) -> NDArray[str_]: ...
669@overload
670def partition(a: S_co, sep: S_co) -> NDArray[bytes_]: ...
671@overload
672def partition(a: _StringDTypeSupportsArray, sep: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
673@overload
674def partition(a: T_co, sep: T_co) -> _StringDTypeOrUnicodeArray: ...
675
676@overload
677def replace(
678 a: U_co,
679 old: U_co,
680 new: U_co,
681 count: i_co | None = -1,
682) -> NDArray[str_]: ...
683@overload
684def replace(
685 a: S_co,
686 old: S_co,
687 new: S_co,
688 count: i_co | None = -1,
689) -> NDArray[bytes_]: ...
690@overload
691def replace(
692 a: _StringDTypeSupportsArray,
693 old: _StringDTypeSupportsArray,
694 new: _StringDTypeSupportsArray,
695 count: i_co = -1,
696) -> _StringDTypeArray: ...
697@overload
698def replace(
699 a: T_co,
700 old: T_co,
701 new: T_co,
702 count: i_co = -1,
703) -> _StringDTypeOrUnicodeArray: ...
704
705@overload
706def rjust(
707 a: U_co,
708 width: i_co,
709 fillchar: U_co = " ",
710) -> NDArray[str_]: ...
711@overload
712def rjust(
713 a: S_co,
714 width: i_co,
715 fillchar: str | S_co = " ",
716) -> NDArray[bytes_]: ...
717@overload
718def rjust(
719 a: _StringDTypeSupportsArray,
720 width: i_co,
721 fillchar: str | _StringDTypeSupportsArray = " ",
722) -> _StringDTypeArray: ...
723@overload
724def rjust(
725 a: T_co,
726 width: i_co,
727 fillchar: T_co = " ",
728) -> _StringDTypeOrUnicodeArray: ...
729
730@overload
731def rpartition(a: U_co, sep: U_co) -> NDArray[str_]: ...
732@overload
733def rpartition(a: S_co, sep: S_co) -> NDArray[bytes_]: ...
734@overload
735def rpartition(a: _StringDTypeSupportsArray, sep: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
736@overload
737def rpartition(a: T_co, sep: T_co) -> _StringDTypeOrUnicodeArray: ...
738
739@overload
740def rsplit(
741 a: U_co,
742 sep: U_co | None = None,
743 maxsplit: i_co | None = None,
744) -> NDArray[object_]: ...
745@overload
746def rsplit(
747 a: S_co,
748 sep: S_co | None = None,
749 maxsplit: i_co | None = None,
750) -> NDArray[object_]: ...
751@overload
752def rsplit(
753 a: _StringDTypeSupportsArray,
754 sep: _StringDTypeSupportsArray | None = None,
755 maxsplit: i_co | None = None,
756) -> NDArray[object_]: ...
757@overload
758def rsplit(
759 a: T_co,
760 sep: T_co | None = None,
761 maxsplit: i_co | None = None,
762) -> NDArray[object_]: ...
763
764@overload
765def rstrip(a: U_co, chars: U_co | None = None) -> NDArray[str_]: ...
766@overload
767def rstrip(a: S_co, chars: S_co | None = None) -> NDArray[bytes_]: ...
768@overload
769def rstrip(a: _StringDTypeSupportsArray, chars: _StringDTypeSupportsArray | None = None) -> _StringDTypeArray: ...
770@overload
771def rstrip(a: T_co, chars: T_co | None = None) -> _StringDTypeOrUnicodeArray: ...
772
773@overload
774def split(
775 a: U_co,
776 sep: U_co | None = None,
777 maxsplit: i_co | None = None,
778) -> NDArray[object_]: ...
779@overload
780def split(
781 a: S_co,
782 sep: S_co | None = None,
783 maxsplit: i_co | None = None,
784) -> NDArray[object_]: ...
785@overload
786def split(
787 a: _StringDTypeSupportsArray,
788 sep: _StringDTypeSupportsArray | None = None,
789 maxsplit: i_co | None = None,
790) -> NDArray[object_]: ...
791@overload
792def split(
793 a: T_co,
794 sep: T_co | None = None,
795 maxsplit: i_co | None = None,
796) -> NDArray[object_]: ...
797
798def splitlines(a: UST_co, keepends: b_co | None = None) -> NDArray[np.object_]: ...
799
800@overload
801def strip(a: U_co, chars: U_co | None = None) -> NDArray[str_]: ...
802@overload
803def strip(a: S_co, chars: S_co | None = None) -> NDArray[bytes_]: ...
804@overload
805def strip(a: _StringDTypeSupportsArray, chars: _StringDTypeSupportsArray | None = None) -> _StringDTypeArray: ...
806@overload
807def strip(a: T_co, chars: T_co | None = None) -> _StringDTypeOrUnicodeArray: ...
808
809@overload
810def swapcase(a: U_co) -> NDArray[str_]: ...
811@overload
812def swapcase(a: S_co) -> NDArray[bytes_]: ...
813@overload
814def swapcase(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
815@overload
816def swapcase(a: T_co) -> _StringDTypeOrUnicodeArray: ...
817
818@overload
819def title(a: U_co) -> NDArray[str_]: ...
820@overload
821def title(a: S_co) -> NDArray[bytes_]: ...
822@overload
823def title(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
824@overload
825def title(a: T_co) -> _StringDTypeOrUnicodeArray: ...
826
827@overload
828def translate(
829 a: U_co,
830 table: str,
831 deletechars: str | None = None,
832) -> NDArray[str_]: ...
833@overload
834def translate(
835 a: S_co,
836 table: str,
837 deletechars: str | None = None,
838) -> NDArray[bytes_]: ...
839@overload
840def translate(
841 a: _StringDTypeSupportsArray,
842 table: str,
843 deletechars: str | None = None,
844) -> _StringDTypeArray: ...
845@overload
846def translate(
847 a: T_co,
848 table: str,
849 deletechars: str | None = None,
850) -> _StringDTypeOrUnicodeArray: ...
851
852@overload
853def upper(a: U_co) -> NDArray[str_]: ...
854@overload
855def upper(a: S_co) -> NDArray[bytes_]: ...
856@overload
857def upper(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
858@overload
859def upper(a: T_co) -> _StringDTypeOrUnicodeArray: ...
860
861@overload
862def zfill(a: U_co, width: i_co) -> NDArray[str_]: ...
863@overload
864def zfill(a: S_co, width: i_co) -> NDArray[bytes_]: ...
865@overload
866def zfill(a: _StringDTypeSupportsArray, width: i_co) -> _StringDTypeArray: ...
867@overload
868def zfill(a: T_co, width: i_co) -> _StringDTypeOrUnicodeArray: ...
869
870# String information
871@overload
872def count(
873 a: U_co,
874 sub: U_co,
875 start: i_co = 0,
876 end: i_co | None = None,
877) -> NDArray[int_]: ...
878@overload
879def count(
880 a: S_co,
881 sub: S_co,
882 start: i_co = 0,
883 end: i_co | None = None,
884) -> NDArray[int_]: ...
885@overload
886def count(
887 a: T_co,
888 sub: T_co,
889 start: i_co = 0,
890 end: i_co | None = None,
891) -> NDArray[np.int_]: ...
892
893@overload
894def endswith(
895 a: U_co,
896 suffix: U_co,
897 start: i_co = 0,
898 end: i_co | None = None,
899) -> NDArray[np.bool]: ...
900@overload
901def endswith(
902 a: S_co,
903 suffix: S_co,
904 start: i_co = 0,
905 end: i_co | None = None,
906) -> NDArray[np.bool]: ...
907@overload
908def endswith(
909 a: T_co,
910 suffix: T_co,
911 start: i_co = 0,
912 end: i_co | None = None,
913) -> NDArray[np.bool]: ...
914
915@overload
916def find(
917 a: U_co,
918 sub: U_co,
919 start: i_co = 0,
920 end: i_co | None = None,
921) -> NDArray[int_]: ...
922@overload
923def find(
924 a: S_co,
925 sub: S_co,
926 start: i_co = 0,
927 end: i_co | None = None,
928) -> NDArray[int_]: ...
929@overload
930def find(
931 a: T_co,
932 sub: T_co,
933 start: i_co = 0,
934 end: i_co | None = None,
935) -> NDArray[np.int_]: ...
936
937@overload
938def index(
939 a: U_co,
940 sub: U_co,
941 start: i_co = 0,
942 end: i_co | None = None,
943) -> NDArray[int_]: ...
944@overload
945def index(
946 a: S_co,
947 sub: S_co,
948 start: i_co = 0,
949 end: i_co | None = None,
950) -> NDArray[int_]: ...
951@overload
952def index(
953 a: T_co,
954 sub: T_co,
955 start: i_co = 0,
956 end: i_co | None = None,
957) -> NDArray[np.int_]: ...
958
959def isalpha(a: UST_co) -> NDArray[np.bool]: ...
960def isalnum(a: UST_co) -> NDArray[np.bool]: ...
961def isdecimal(a: U_co | T_co) -> NDArray[np.bool]: ...
962def isdigit(a: UST_co) -> NDArray[np.bool]: ...
963def islower(a: UST_co) -> NDArray[np.bool]: ...
964def isnumeric(a: U_co | T_co) -> NDArray[np.bool]: ...
965def isspace(a: UST_co) -> NDArray[np.bool]: ...
966def istitle(a: UST_co) -> NDArray[np.bool]: ...
967def isupper(a: UST_co) -> NDArray[np.bool]: ...
968
969@overload
970def rfind(
971 a: U_co,
972 sub: U_co,
973 start: i_co = 0,
974 end: i_co | None = None,
975) -> NDArray[int_]: ...
976@overload
977def rfind(
978 a: S_co,
979 sub: S_co,
980 start: i_co = 0,
981 end: i_co | None = None,
982) -> NDArray[int_]: ...
983@overload
984def rfind(
985 a: T_co,
986 sub: T_co,
987 start: i_co = 0,
988 end: i_co | None = None,
989) -> NDArray[np.int_]: ...
990
991@overload
992def rindex(
993 a: U_co,
994 sub: U_co,
995 start: i_co = 0,
996 end: i_co | None = None,
997) -> NDArray[int_]: ...
998@overload
999def rindex(
1000 a: S_co,
1001 sub: S_co,
1002 start: i_co = 0,
1003 end: i_co | None = None,
1004) -> NDArray[int_]: ...
1005@overload
1006def rindex(
1007 a: T_co,
1008 sub: T_co,
1009 start: i_co = 0,
1010 end: i_co | None = None,
1011) -> NDArray[np.int_]: ...
1012
1013@overload
1014def startswith(
1015 a: U_co,
1016 prefix: U_co,
1017 start: i_co = 0,
1018 end: i_co | None = None,
1019) -> NDArray[np.bool]: ...
1020@overload
1021def startswith(
1022 a: S_co,
1023 prefix: S_co,
1024 start: i_co = 0,
1025 end: i_co | None = None,
1026) -> NDArray[np.bool]: ...
1027@overload
1028def startswith(
1029 a: T_co,
1030 prefix: T_co,
1031 start: i_co = 0,
1032 end: i_co | None = None,
1033) -> NDArray[np.bool]: ...
1034
1035def str_len(A: UST_co) -> NDArray[int_]: ...
1036
1037# Overload 1 and 2: str- or bytes-based array-likes
1038# overload 3 and 4: arbitrary object with unicode=False (-> bytes_)
1039# overload 5 and 6: arbitrary object with unicode=True (-> str_)
1040# overload 7: arbitrary object with unicode=None (default) (-> str_ | bytes_)
1041@overload
1042def array(
1043 obj: U_co,
1044 itemsize: int | None = None,
1045 copy: bool = True,
1046 unicode: L[True] | None = None,
1047 order: _OrderKACF = None,
1048) -> _CharArray[str_]: ...
1049@overload
1050def array(
1051 obj: S_co,
1052 itemsize: int | None = None,
1053 copy: bool = True,
1054 unicode: L[False] | None = None,
1055 order: _OrderKACF = None,
1056) -> _CharArray[bytes_]: ...
1057@overload
1058def array(
1059 obj: object,
1060 itemsize: int | None,
1061 copy: bool,
1062 unicode: L[False],
1063 order: _OrderKACF = None,
1064) -> _CharArray[bytes_]: ...
1065@overload
1066def array(
1067 obj: object,
1068 itemsize: int | None = None,
1069 copy: bool = True,
1070 *,
1071 unicode: L[False],
1072 order: _OrderKACF = None,
1073) -> _CharArray[bytes_]: ...
1074@overload
1075def array(
1076 obj: object,
1077 itemsize: int | None,
1078 copy: bool,
1079 unicode: L[True],
1080 order: _OrderKACF = None,
1081) -> _CharArray[str_]: ...
1082@overload
1083def array(
1084 obj: object,
1085 itemsize: int | None = None,
1086 copy: bool = True,
1087 *,
1088 unicode: L[True],
1089 order: _OrderKACF = None,
1090) -> _CharArray[str_]: ...
1091@overload
1092def array(
1093 obj: object,
1094 itemsize: int | None = None,
1095 copy: bool = True,
1096 unicode: bool | None = None,
1097 order: _OrderKACF = None,
1098) -> _CharArray[str_] | _CharArray[bytes_]: ...
1099
1100@overload
1101def asarray(
1102 obj: U_co,
1103 itemsize: int | None = None,
1104 unicode: L[True] | None = None,
1105 order: _OrderKACF = None,
1106) -> _CharArray[str_]: ...
1107@overload
1108def asarray(
1109 obj: S_co,
1110 itemsize: int | None = None,
1111 unicode: L[False] | None = None,
1112 order: _OrderKACF = None,
1113) -> _CharArray[bytes_]: ...
1114@overload
1115def asarray(
1116 obj: object,
1117 itemsize: int | None,
1118 unicode: L[False],
1119 order: _OrderKACF = None,
1120) -> _CharArray[bytes_]: ...
1121@overload
1122def asarray(
1123 obj: object,
1124 itemsize: int | None = None,
1125 *,
1126 unicode: L[False],
1127 order: _OrderKACF = None,
1128) -> _CharArray[bytes_]: ...
1129@overload
1130def asarray(
1131 obj: object,
1132 itemsize: int | None,
1133 unicode: L[True],
1134 order: _OrderKACF = None,
1135) -> _CharArray[str_]: ...
1136@overload
1137def asarray(
1138 obj: object,
1139 itemsize: int | None = None,
1140 *,
1141 unicode: L[True],
1142 order: _OrderKACF = None,
1143) -> _CharArray[str_]: ...
1144@overload
1145def asarray(
1146 obj: object,
1147 itemsize: int | None = None,
1148 unicode: bool | None = None,
1149 order: _OrderKACF = None,
1150) -> _CharArray[str_] | _CharArray[bytes_]: ...
1151 