defchararray.pyi 9.0 KB

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