422 lines
9.0 KiB
Python
422 lines
9.0 KiB
Python
|
from typing import (
|
||
|
Literal as L,
|
||
|
overload,
|
||
|
TypeVar,
|
||
|
Any,
|
||
|
)
|
||
|
|
||
|
from numpy import (
|
||
|
chararray as chararray,
|
||
|
dtype,
|
||
|
str_,
|
||
|
bytes_,
|
||
|
int_,
|
||
|
bool_,
|
||
|
object_,
|
||
|
_OrderKACF,
|
||
|
)
|
||
|
|
||
|
from numpy._typing import (
|
||
|
NDArray,
|
||
|
_ArrayLikeStr_co as U_co,
|
||
|
_ArrayLikeBytes_co as S_co,
|
||
|
_ArrayLikeInt_co as i_co,
|
||
|
_ArrayLikeBool_co as b_co,
|
||
|
)
|
||
|
|
||
|
from numpy.core.multiarray import compare_chararrays as compare_chararrays
|
||
|
|
||
|
_SCT = TypeVar("_SCT", str_, bytes_)
|
||
|
_CharArray = chararray[Any, dtype[_SCT]]
|
||
|
|
||
|
__all__: list[str]
|
||
|
|
||
|
# Comparison
|
||
|
@overload
|
||
|
def equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def not_equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def not_equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def greater_equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def greater_equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def less_equal(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def less_equal(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def greater(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def greater(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def less(x1: U_co, x2: U_co) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def less(x1: S_co, x2: S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
# String operations
|
||
|
@overload
|
||
|
def add(x1: U_co, x2: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def add(x1: S_co, x2: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def multiply(a: U_co, i: i_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def multiply(a: S_co, i: i_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def mod(a: U_co, value: Any) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def mod(a: S_co, value: Any) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def capitalize(a: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def capitalize(a: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def center(a: U_co, width: i_co, fillchar: U_co = ...) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def center(a: S_co, width: i_co, fillchar: S_co = ...) -> NDArray[bytes_]: ...
|
||
|
|
||
|
def decode(
|
||
|
a: S_co,
|
||
|
encoding: None | str = ...,
|
||
|
errors: None | str = ...,
|
||
|
) -> NDArray[str_]: ...
|
||
|
|
||
|
def encode(
|
||
|
a: U_co,
|
||
|
encoding: None | str = ...,
|
||
|
errors: None | str = ...,
|
||
|
) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def expandtabs(a: U_co, tabsize: i_co = ...) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def expandtabs(a: S_co, tabsize: i_co = ...) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def join(sep: U_co, seq: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def join(sep: S_co, seq: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def ljust(a: U_co, width: i_co, fillchar: U_co = ...) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def ljust(a: S_co, width: i_co, fillchar: S_co = ...) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def lower(a: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def lower(a: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def lstrip(a: U_co, chars: None | U_co = ...) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def lstrip(a: S_co, chars: None | S_co = ...) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def partition(a: U_co, sep: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def partition(a: S_co, sep: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def replace(
|
||
|
a: U_co,
|
||
|
old: U_co,
|
||
|
new: U_co,
|
||
|
count: None | i_co = ...,
|
||
|
) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def replace(
|
||
|
a: S_co,
|
||
|
old: S_co,
|
||
|
new: S_co,
|
||
|
count: None | i_co = ...,
|
||
|
) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def rjust(
|
||
|
a: U_co,
|
||
|
width: i_co,
|
||
|
fillchar: U_co = ...,
|
||
|
) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def rjust(
|
||
|
a: S_co,
|
||
|
width: i_co,
|
||
|
fillchar: S_co = ...,
|
||
|
) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def rpartition(a: U_co, sep: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def rpartition(a: S_co, sep: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def rsplit(
|
||
|
a: U_co,
|
||
|
sep: None | U_co = ...,
|
||
|
maxsplit: None | i_co = ...,
|
||
|
) -> NDArray[object_]: ...
|
||
|
@overload
|
||
|
def rsplit(
|
||
|
a: S_co,
|
||
|
sep: None | S_co = ...,
|
||
|
maxsplit: None | i_co = ...,
|
||
|
) -> NDArray[object_]: ...
|
||
|
|
||
|
@overload
|
||
|
def rstrip(a: U_co, chars: None | U_co = ...) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def rstrip(a: S_co, chars: None | S_co = ...) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def split(
|
||
|
a: U_co,
|
||
|
sep: None | U_co = ...,
|
||
|
maxsplit: None | i_co = ...,
|
||
|
) -> NDArray[object_]: ...
|
||
|
@overload
|
||
|
def split(
|
||
|
a: S_co,
|
||
|
sep: None | S_co = ...,
|
||
|
maxsplit: None | i_co = ...,
|
||
|
) -> NDArray[object_]: ...
|
||
|
|
||
|
@overload
|
||
|
def splitlines(a: U_co, keepends: None | b_co = ...) -> NDArray[object_]: ...
|
||
|
@overload
|
||
|
def splitlines(a: S_co, keepends: None | b_co = ...) -> NDArray[object_]: ...
|
||
|
|
||
|
@overload
|
||
|
def strip(a: U_co, chars: None | U_co = ...) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def strip(a: S_co, chars: None | S_co = ...) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def swapcase(a: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def swapcase(a: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def title(a: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def title(a: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def translate(
|
||
|
a: U_co,
|
||
|
table: U_co,
|
||
|
deletechars: None | U_co = ...,
|
||
|
) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def translate(
|
||
|
a: S_co,
|
||
|
table: S_co,
|
||
|
deletechars: None | S_co = ...,
|
||
|
) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def upper(a: U_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def upper(a: S_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
@overload
|
||
|
def zfill(a: U_co, width: i_co) -> NDArray[str_]: ...
|
||
|
@overload
|
||
|
def zfill(a: S_co, width: i_co) -> NDArray[bytes_]: ...
|
||
|
|
||
|
# String information
|
||
|
@overload
|
||
|
def count(
|
||
|
a: U_co,
|
||
|
sub: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
@overload
|
||
|
def count(
|
||
|
a: S_co,
|
||
|
sub: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
|
||
|
@overload
|
||
|
def endswith(
|
||
|
a: U_co,
|
||
|
suffix: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def endswith(
|
||
|
a: S_co,
|
||
|
suffix: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def find(
|
||
|
a: U_co,
|
||
|
sub: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
@overload
|
||
|
def find(
|
||
|
a: S_co,
|
||
|
sub: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
|
||
|
@overload
|
||
|
def index(
|
||
|
a: U_co,
|
||
|
sub: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
@overload
|
||
|
def index(
|
||
|
a: S_co,
|
||
|
sub: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
|
||
|
def isalpha(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def isalnum(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def isdecimal(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def isdigit(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def islower(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def isnumeric(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def isspace(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def istitle(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
def isupper(a: U_co | S_co) -> NDArray[bool_]: ...
|
||
|
|
||
|
@overload
|
||
|
def rfind(
|
||
|
a: U_co,
|
||
|
sub: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
@overload
|
||
|
def rfind(
|
||
|
a: S_co,
|
||
|
sub: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
|
||
|
@overload
|
||
|
def rindex(
|
||
|
a: U_co,
|
||
|
sub: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
@overload
|
||
|
def rindex(
|
||
|
a: S_co,
|
||
|
sub: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[int_]: ...
|
||
|
|
||
|
@overload
|
||
|
def startswith(
|
||
|
a: U_co,
|
||
|
prefix: U_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[bool_]: ...
|
||
|
@overload
|
||
|
def startswith(
|
||
|
a: S_co,
|
||
|
prefix: S_co,
|
||
|
start: i_co = ...,
|
||
|
end: None | i_co = ...,
|
||
|
) -> NDArray[bool_]: ...
|
||
|
|
||
|
def str_len(A: U_co | S_co) -> NDArray[int_]: ...
|
||
|
|
||
|
# Overload 1 and 2: str- or bytes-based array-likes
|
||
|
# overload 3: arbitrary object with unicode=False (-> bytes_)
|
||
|
# overload 4: arbitrary object with unicode=True (-> str_)
|
||
|
@overload
|
||
|
def array(
|
||
|
obj: U_co,
|
||
|
itemsize: None | int = ...,
|
||
|
copy: bool = ...,
|
||
|
unicode: L[False] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[str_]: ...
|
||
|
@overload
|
||
|
def array(
|
||
|
obj: S_co,
|
||
|
itemsize: None | int = ...,
|
||
|
copy: bool = ...,
|
||
|
unicode: L[False] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[bytes_]: ...
|
||
|
@overload
|
||
|
def array(
|
||
|
obj: object,
|
||
|
itemsize: None | int = ...,
|
||
|
copy: bool = ...,
|
||
|
unicode: L[False] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[bytes_]: ...
|
||
|
@overload
|
||
|
def array(
|
||
|
obj: object,
|
||
|
itemsize: None | int = ...,
|
||
|
copy: bool = ...,
|
||
|
unicode: L[True] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[str_]: ...
|
||
|
|
||
|
@overload
|
||
|
def asarray(
|
||
|
obj: U_co,
|
||
|
itemsize: None | int = ...,
|
||
|
unicode: L[False] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[str_]: ...
|
||
|
@overload
|
||
|
def asarray(
|
||
|
obj: S_co,
|
||
|
itemsize: None | int = ...,
|
||
|
unicode: L[False] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[bytes_]: ...
|
||
|
@overload
|
||
|
def asarray(
|
||
|
obj: object,
|
||
|
itemsize: None | int = ...,
|
||
|
unicode: L[False] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[bytes_]: ...
|
||
|
@overload
|
||
|
def asarray(
|
||
|
obj: object,
|
||
|
itemsize: None | int = ...,
|
||
|
unicode: L[True] = ...,
|
||
|
order: _OrderKACF = ...,
|
||
|
) -> _CharArray[str_]: ...
|