/ lib / numpy / core / defchararray.pyi
defchararray.pyi
  1  from typing import (
  2      Literal as L,
  3      overload,
  4      TypeVar,
  5      Any,
  6  )
  7  
  8  from numpy import (
  9      chararray as chararray,
 10      dtype,
 11      str_,
 12      bytes_,
 13      int_,
 14      bool_,
 15      object_,
 16      _OrderKACF,
 17  )
 18  
 19  from numpy._typing import (
 20      NDArray,
 21      _ArrayLikeStr_co as U_co,
 22      _ArrayLikeBytes_co as S_co,
 23      _ArrayLikeInt_co as i_co,
 24      _ArrayLikeBool_co as b_co,
 25  )
 26  
 27  from numpy.core.multiarray import compare_chararrays as compare_chararrays
 28  
 29  _SCT = TypeVar("_SCT", str_, bytes_)
 30  _CharArray = chararray[Any, dtype[_SCT]]
 31  
 32  __all__: list[str]
 33  
 34  # Comparison
 35  @overload
 36  def equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
 37  @overload
 38  def equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
 39  
 40  @overload
 41  def not_equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
 42  @overload
 43  def not_equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
 44  
 45  @overload
 46  def greater_equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
 47  @overload
 48  def greater_equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
 49  
 50  @overload
 51  def less_equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
 52  @overload
 53  def less_equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
 54  
 55  @overload
 56  def greater(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
 57  @overload
 58  def greater(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
 59  
 60  @overload
 61  def less(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
 62  @overload
 63  def less(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
 64  
 65  # String operations
 66  @overload
 67  def add(x1: U_co, x2: U_co) -> NDArray[str_]: ...
 68  @overload
 69  def add(x1: S_co, x2: S_co) -> NDArray[bytes_]: ...
 70  
 71  @overload
 72  def multiply(a: U_co, i: i_co) -> NDArray[str_]: ...
 73  @overload
 74  def multiply(a: S_co, i: i_co) -> NDArray[bytes_]: ...
 75  
 76  @overload
 77  def mod(a: U_co, value: Any) -> NDArray[str_]: ...
 78  @overload
 79  def mod(a: S_co, value: Any) -> NDArray[bytes_]: ...
 80  
 81  @overload
 82  def capitalize(a: U_co) -> NDArray[str_]: ...
 83  @overload
 84  def capitalize(a: S_co) -> NDArray[bytes_]: ...
 85  
 86  @overload
 87  def center(a: U_co, width: i_co, fillchar: U_co = ...) -> NDArray[str_]: ...
 88  @overload
 89  def center(a: S_co, width: i_co, fillchar: S_co = ...) -> NDArray[bytes_]: ...
 90  
 91  def decode(
 92      a: S_co,
 93      encoding: None | str = ...,
 94      errors: None | str = ...,
 95  ) -> NDArray[str_]: ...
 96  
 97  def encode(
 98      a: U_co,
 99      encoding: None | str = ...,
100      errors: None | str = ...,
101  ) -> NDArray[bytes_]: ...
102  
103  @overload
104  def expandtabs(a: U_co, tabsize: i_co = ...) -> NDArray[str_]: ...
105  @overload
106  def expandtabs(a: S_co, tabsize: i_co = ...) -> NDArray[bytes_]: ...
107  
108  @overload
109  def join(sep: U_co, seq: U_co) -> NDArray[str_]: ...
110  @overload
111  def join(sep: S_co, seq: S_co) -> NDArray[bytes_]: ...
112  
113  @overload
114  def ljust(a: U_co, width: i_co, fillchar: U_co = ...) -> NDArray[str_]: ...
115  @overload
116  def ljust(a: S_co, width: i_co, fillchar: S_co = ...) -> NDArray[bytes_]: ...
117  
118  @overload
119  def lower(a: U_co) -> NDArray[str_]: ...
120  @overload
121  def lower(a: S_co) -> NDArray[bytes_]: ...
122  
123  @overload
124  def lstrip(a: U_co, chars: None | U_co = ...) -> NDArray[str_]: ...
125  @overload
126  def lstrip(a: S_co, chars: None | S_co = ...) -> NDArray[bytes_]: ...
127  
128  @overload
129  def partition(a: U_co, sep: U_co) -> NDArray[str_]: ...
130  @overload
131  def partition(a: S_co, sep: S_co) -> NDArray[bytes_]: ...
132  
133  @overload
134  def replace(
135      a: U_co,
136      old: U_co,
137      new: U_co,
138      count: None | i_co = ...,
139  ) -> NDArray[str_]: ...
140  @overload
141  def replace(
142      a: S_co,
143      old: S_co,
144      new: S_co,
145      count: None | i_co = ...,
146  ) -> NDArray[bytes_]: ...
147  
148  @overload
149  def rjust(
150      a: U_co,
151      width: i_co,
152      fillchar: U_co = ...,
153  ) -> NDArray[str_]: ...
154  @overload
155  def rjust(
156      a: S_co,
157      width: i_co,
158      fillchar: S_co = ...,
159  ) -> NDArray[bytes_]: ...
160  
161  @overload
162  def rpartition(a: U_co, sep: U_co) -> NDArray[str_]: ...
163  @overload
164  def rpartition(a: S_co, sep: S_co) -> NDArray[bytes_]: ...
165  
166  @overload
167  def rsplit(
168      a: U_co,
169      sep: None | U_co = ...,
170      maxsplit: None | i_co = ...,
171  ) -> NDArray[object_]: ...
172  @overload
173  def rsplit(
174      a: S_co,
175      sep: None | S_co = ...,
176      maxsplit: None | i_co = ...,
177  ) -> NDArray[object_]: ...
178  
179  @overload
180  def rstrip(a: U_co, chars: None | U_co = ...) -> NDArray[str_]: ...
181  @overload
182  def rstrip(a: S_co, chars: None | S_co = ...) -> NDArray[bytes_]: ...
183  
184  @overload
185  def split(
186      a: U_co,
187      sep: None | U_co = ...,
188      maxsplit: None | i_co = ...,
189  ) -> NDArray[object_]: ...
190  @overload
191  def split(
192      a: S_co,
193      sep: None | S_co = ...,
194      maxsplit: None | i_co = ...,
195  ) -> NDArray[object_]: ...
196  
197  @overload
198  def splitlines(a: U_co, keepends: None | b_co = ...) -> NDArray[object_]: ...
199  @overload
200  def splitlines(a: S_co, keepends: None | b_co = ...) -> NDArray[object_]: ...
201  
202  @overload
203  def strip(a: U_co, chars: None | U_co = ...) -> NDArray[str_]: ...
204  @overload
205  def strip(a: S_co, chars: None | S_co = ...) -> NDArray[bytes_]: ...
206  
207  @overload
208  def swapcase(a: U_co) -> NDArray[str_]: ...
209  @overload
210  def swapcase(a: S_co) -> NDArray[bytes_]: ...
211  
212  @overload
213  def title(a: U_co) -> NDArray[str_]: ...
214  @overload
215  def title(a: S_co) -> NDArray[bytes_]: ...
216  
217  @overload
218  def translate(
219      a: U_co,
220      table: U_co,
221      deletechars: None | U_co = ...,
222  ) -> NDArray[str_]: ...
223  @overload
224  def translate(
225      a: S_co,
226      table: S_co,
227      deletechars: None | S_co = ...,
228  ) -> NDArray[bytes_]: ...
229  
230  @overload
231  def upper(a: U_co) -> NDArray[str_]: ...
232  @overload
233  def upper(a: S_co) -> NDArray[bytes_]: ...
234  
235  @overload
236  def zfill(a: U_co, width: i_co) -> NDArray[str_]: ...
237  @overload
238  def zfill(a: S_co, width: i_co) -> NDArray[bytes_]: ...
239  
240  # String information
241  @overload
242  def count(
243      a: U_co,
244      sub: U_co,
245      start: i_co = ...,
246      end: None | i_co = ...,
247  ) -> NDArray[int_]: ...
248  @overload
249  def count(
250      a: S_co,
251      sub: S_co,
252      start: i_co = ...,
253      end: None | i_co = ...,
254  ) -> NDArray[int_]: ...
255  
256  @overload
257  def endswith(
258      a: U_co,
259      suffix: U_co,
260      start: i_co = ...,
261      end: None | i_co = ...,
262  ) -> NDArray[bool_]: ...
263  @overload
264  def endswith(
265      a: S_co,
266      suffix: S_co,
267      start: i_co = ...,
268      end: None | i_co = ...,
269  ) -> NDArray[bool_]: ...
270  
271  @overload
272  def find(
273      a: U_co,
274      sub: U_co,
275      start: i_co = ...,
276      end: None | i_co = ...,
277  ) -> NDArray[int_]: ...
278  @overload
279  def find(
280      a: S_co,
281      sub: S_co,
282      start: i_co = ...,
283      end: None | i_co = ...,
284  ) -> NDArray[int_]: ...
285  
286  @overload
287  def index(
288      a: U_co,
289      sub: U_co,
290      start: i_co = ...,
291      end: None | i_co = ...,
292  ) -> NDArray[int_]: ...
293  @overload
294  def index(
295      a: S_co,
296      sub: S_co,
297      start: i_co = ...,
298      end: None | i_co = ...,
299  ) -> NDArray[int_]: ...
300  
301  def isalpha(a: U_co | S_co) -> NDArray[bool_]: ...
302  def isalnum(a: U_co | S_co) -> NDArray[bool_]: ...
303  def isdecimal(a: U_co | S_co) -> NDArray[bool_]: ...
304  def isdigit(a: U_co | S_co) -> NDArray[bool_]: ...
305  def islower(a: U_co | S_co) -> NDArray[bool_]: ...
306  def isnumeric(a: U_co | S_co) -> NDArray[bool_]: ...
307  def isspace(a: U_co | S_co) -> NDArray[bool_]: ...
308  def istitle(a: U_co | S_co) -> NDArray[bool_]: ...
309  def isupper(a: U_co | S_co) -> NDArray[bool_]: ...
310  
311  @overload
312  def rfind(
313      a: U_co,
314      sub: U_co,
315      start: i_co = ...,
316      end: None | i_co = ...,
317  ) -> NDArray[int_]: ...
318  @overload
319  def rfind(
320      a: S_co,
321      sub: S_co,
322      start: i_co = ...,
323      end: None | i_co = ...,
324  ) -> NDArray[int_]: ...
325  
326  @overload
327  def rindex(
328      a: U_co,
329      sub: U_co,
330      start: i_co = ...,
331      end: None | i_co = ...,
332  ) -> NDArray[int_]: ...
333  @overload
334  def rindex(
335      a: S_co,
336      sub: S_co,
337      start: i_co = ...,
338      end: None | i_co = ...,
339  ) -> NDArray[int_]: ...
340  
341  @overload
342  def startswith(
343      a: U_co,
344      prefix: U_co,
345      start: i_co = ...,
346      end: None | i_co = ...,
347  ) -> NDArray[bool_]: ...
348  @overload
349  def startswith(
350      a: S_co,
351      prefix: S_co,
352      start: i_co = ...,
353      end: None | i_co = ...,
354  ) -> NDArray[bool_]: ...
355  
356  def str_len(A: U_co | S_co) -> NDArray[int_]: ...
357  
358  # Overload 1 and 2: str- or bytes-based array-likes
359  # overload 3: arbitrary object with unicode=False  (-> bytes_)
360  # overload 4: arbitrary object with unicode=True  (-> str_)
361  @overload
362  def array(
363      obj: U_co,
364      itemsize: None | int = ...,
365      copy: bool = ...,
366      unicode: L[False] = ...,
367      order: _OrderKACF = ...,
368  ) -> _CharArray[str_]: ...
369  @overload
370  def array(
371      obj: S_co,
372      itemsize: None | int = ...,
373      copy: bool = ...,
374      unicode: L[False] = ...,
375      order: _OrderKACF = ...,
376  ) -> _CharArray[bytes_]: ...
377  @overload
378  def array(
379      obj: object,
380      itemsize: None | int = ...,
381      copy: bool = ...,
382      unicode: L[False] = ...,
383      order: _OrderKACF = ...,
384  ) -> _CharArray[bytes_]: ...
385  @overload
386  def array(
387      obj: object,
388      itemsize: None | int = ...,
389      copy: bool = ...,
390      unicode: L[True] = ...,
391      order: _OrderKACF = ...,
392  ) -> _CharArray[str_]: ...
393  
394  @overload
395  def asarray(
396      obj: U_co,
397      itemsize: None | int = ...,
398      unicode: L[False] = ...,
399      order: _OrderKACF = ...,
400  ) -> _CharArray[str_]: ...
401  @overload
402  def asarray(
403      obj: S_co,
404      itemsize: None | int = ...,
405      unicode: L[False] = ...,
406      order: _OrderKACF = ...,
407  ) -> _CharArray[bytes_]: ...
408  @overload
409  def asarray(
410      obj: object,
411      itemsize: None | int = ...,
412      unicode: L[False] = ...,
413      order: _OrderKACF = ...,
414  ) -> _CharArray[bytes_]: ...
415  @overload
416  def asarray(
417      obj: object,
418      itemsize: None | int = ...,
419      unicode: L[True] = ...,
420      order: _OrderKACF = ...,
421  ) -> _CharArray[str_]: ...