strings.pyi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. from typing import TypeAlias, overload
  2. import numpy as np
  3. from numpy._globals import _NoValueType
  4. from numpy._typing import (
  5. NDArray,
  6. _AnyShape,
  7. _ArrayLikeAnyString_co as UST_co,
  8. _ArrayLikeBytes_co as S_co,
  9. _ArrayLikeInt_co as i_co,
  10. _ArrayLikeStr_co as U_co,
  11. _ArrayLikeString_co as T_co,
  12. _SupportsArray,
  13. )
  14. __all__ = [
  15. "add",
  16. "capitalize",
  17. "center",
  18. "count",
  19. "decode",
  20. "encode",
  21. "endswith",
  22. "equal",
  23. "expandtabs",
  24. "find",
  25. "greater",
  26. "greater_equal",
  27. "index",
  28. "isalnum",
  29. "isalpha",
  30. "isdecimal",
  31. "isdigit",
  32. "islower",
  33. "isnumeric",
  34. "isspace",
  35. "istitle",
  36. "isupper",
  37. "less",
  38. "less_equal",
  39. "ljust",
  40. "lower",
  41. "lstrip",
  42. "mod",
  43. "multiply",
  44. "not_equal",
  45. "partition",
  46. "replace",
  47. "rfind",
  48. "rindex",
  49. "rjust",
  50. "rpartition",
  51. "rstrip",
  52. "startswith",
  53. "str_len",
  54. "strip",
  55. "swapcase",
  56. "title",
  57. "translate",
  58. "upper",
  59. "zfill",
  60. "slice",
  61. ]
  62. _StringDTypeArray: TypeAlias = np.ndarray[_AnyShape, np.dtypes.StringDType]
  63. _StringDTypeSupportsArray: TypeAlias = _SupportsArray[np.dtypes.StringDType]
  64. _StringDTypeOrUnicodeArray: TypeAlias = np.ndarray[_AnyShape, np.dtype[np.str_]] | _StringDTypeArray
  65. @overload
  66. def equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
  67. @overload
  68. def equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
  69. @overload
  70. def equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
  71. @overload
  72. def not_equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
  73. @overload
  74. def not_equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
  75. @overload
  76. def not_equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
  77. @overload
  78. def greater_equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
  79. @overload
  80. def greater_equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
  81. @overload
  82. def greater_equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
  83. @overload
  84. def less_equal(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
  85. @overload
  86. def less_equal(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
  87. @overload
  88. def less_equal(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
  89. @overload
  90. def greater(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
  91. @overload
  92. def greater(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
  93. @overload
  94. def greater(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
  95. @overload
  96. def less(x1: U_co, x2: U_co) -> NDArray[np.bool]: ...
  97. @overload
  98. def less(x1: S_co, x2: S_co) -> NDArray[np.bool]: ...
  99. @overload
  100. def less(x1: T_co, x2: T_co) -> NDArray[np.bool]: ...
  101. @overload
  102. def add(x1: U_co, x2: U_co) -> NDArray[np.str_]: ...
  103. @overload
  104. def add(x1: S_co, x2: S_co) -> NDArray[np.bytes_]: ...
  105. @overload
  106. def add(x1: _StringDTypeSupportsArray, x2: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  107. @overload
  108. def add(x1: T_co, x2: T_co) -> _StringDTypeOrUnicodeArray: ...
  109. @overload
  110. def multiply(a: U_co, i: i_co) -> NDArray[np.str_]: ...
  111. @overload
  112. def multiply(a: S_co, i: i_co) -> NDArray[np.bytes_]: ...
  113. @overload
  114. def multiply(a: _StringDTypeSupportsArray, i: i_co) -> _StringDTypeArray: ...
  115. @overload
  116. def multiply(a: T_co, i: i_co) -> _StringDTypeOrUnicodeArray: ...
  117. @overload
  118. def mod(a: U_co, value: object) -> NDArray[np.str_]: ...
  119. @overload
  120. def mod(a: S_co, value: object) -> NDArray[np.bytes_]: ...
  121. @overload
  122. def mod(a: _StringDTypeSupportsArray, value: object) -> _StringDTypeArray: ...
  123. @overload
  124. def mod(a: T_co, value: object) -> _StringDTypeOrUnicodeArray: ...
  125. def isalpha(x: UST_co) -> NDArray[np.bool]: ...
  126. def isalnum(a: UST_co) -> NDArray[np.bool]: ...
  127. def isdigit(x: UST_co) -> NDArray[np.bool]: ...
  128. def isspace(x: UST_co) -> NDArray[np.bool]: ...
  129. def isdecimal(x: U_co | T_co) -> NDArray[np.bool]: ...
  130. def isnumeric(x: U_co | T_co) -> NDArray[np.bool]: ...
  131. def islower(a: UST_co) -> NDArray[np.bool]: ...
  132. def istitle(a: UST_co) -> NDArray[np.bool]: ...
  133. def isupper(a: UST_co) -> NDArray[np.bool]: ...
  134. def str_len(x: UST_co) -> NDArray[np.int_]: ...
  135. @overload
  136. def find(
  137. a: U_co,
  138. sub: U_co,
  139. start: i_co = 0,
  140. end: i_co | None = None,
  141. ) -> NDArray[np.int_]: ...
  142. @overload
  143. def find(
  144. a: S_co,
  145. sub: S_co,
  146. start: i_co = 0,
  147. end: i_co | None = None,
  148. ) -> NDArray[np.int_]: ...
  149. @overload
  150. def find(
  151. a: T_co,
  152. sub: T_co,
  153. start: i_co = 0,
  154. end: i_co | None = None,
  155. ) -> NDArray[np.int_]: ...
  156. @overload
  157. def rfind(
  158. a: U_co,
  159. sub: U_co,
  160. start: i_co = 0,
  161. end: i_co | None = None,
  162. ) -> NDArray[np.int_]: ...
  163. @overload
  164. def rfind(
  165. a: S_co,
  166. sub: S_co,
  167. start: i_co = 0,
  168. end: i_co | None = None,
  169. ) -> NDArray[np.int_]: ...
  170. @overload
  171. def rfind(
  172. a: T_co,
  173. sub: T_co,
  174. start: i_co = 0,
  175. end: i_co | None = None,
  176. ) -> NDArray[np.int_]: ...
  177. @overload
  178. def index(
  179. a: U_co,
  180. sub: U_co,
  181. start: i_co = 0,
  182. end: i_co | None = None,
  183. ) -> NDArray[np.int_]: ...
  184. @overload
  185. def index(
  186. a: S_co,
  187. sub: S_co,
  188. start: i_co = 0,
  189. end: i_co | None = None,
  190. ) -> NDArray[np.int_]: ...
  191. @overload
  192. def index(
  193. a: T_co,
  194. sub: T_co,
  195. start: i_co = 0,
  196. end: i_co | None = None,
  197. ) -> NDArray[np.int_]: ...
  198. @overload
  199. def rindex(
  200. a: U_co,
  201. sub: U_co,
  202. start: i_co = 0,
  203. end: i_co | None = None,
  204. ) -> NDArray[np.int_]: ...
  205. @overload
  206. def rindex(
  207. a: S_co,
  208. sub: S_co,
  209. start: i_co = 0,
  210. end: i_co | None = None,
  211. ) -> NDArray[np.int_]: ...
  212. @overload
  213. def rindex(
  214. a: T_co,
  215. sub: T_co,
  216. start: i_co = 0,
  217. end: i_co | None = None,
  218. ) -> NDArray[np.int_]: ...
  219. @overload
  220. def count(
  221. a: U_co,
  222. sub: U_co,
  223. start: i_co = 0,
  224. end: i_co | None = None,
  225. ) -> NDArray[np.int_]: ...
  226. @overload
  227. def count(
  228. a: S_co,
  229. sub: S_co,
  230. start: i_co = 0,
  231. end: i_co | None = None,
  232. ) -> NDArray[np.int_]: ...
  233. @overload
  234. def count(
  235. a: T_co,
  236. sub: T_co,
  237. start: i_co = 0,
  238. end: i_co | None = None,
  239. ) -> NDArray[np.int_]: ...
  240. @overload
  241. def startswith(
  242. a: U_co,
  243. prefix: U_co,
  244. start: i_co = 0,
  245. end: i_co | None = None,
  246. ) -> NDArray[np.bool]: ...
  247. @overload
  248. def startswith(
  249. a: S_co,
  250. prefix: S_co,
  251. start: i_co = 0,
  252. end: i_co | None = None,
  253. ) -> NDArray[np.bool]: ...
  254. @overload
  255. def startswith(
  256. a: T_co,
  257. prefix: T_co,
  258. start: i_co = 0,
  259. end: i_co | None = None,
  260. ) -> NDArray[np.bool]: ...
  261. @overload
  262. def endswith(
  263. a: U_co,
  264. suffix: U_co,
  265. start: i_co = 0,
  266. end: i_co | None = None,
  267. ) -> NDArray[np.bool]: ...
  268. @overload
  269. def endswith(
  270. a: S_co,
  271. suffix: S_co,
  272. start: i_co = 0,
  273. end: i_co | None = None,
  274. ) -> NDArray[np.bool]: ...
  275. @overload
  276. def endswith(
  277. a: T_co,
  278. suffix: T_co,
  279. start: i_co = 0,
  280. end: i_co | None = None,
  281. ) -> NDArray[np.bool]: ...
  282. def decode(
  283. a: S_co,
  284. encoding: str | None = None,
  285. errors: str | None = None,
  286. ) -> NDArray[np.str_]: ...
  287. def encode(
  288. a: U_co | T_co,
  289. encoding: str | None = None,
  290. errors: str | None = None,
  291. ) -> NDArray[np.bytes_]: ...
  292. @overload
  293. def expandtabs(a: U_co, tabsize: i_co = 8) -> NDArray[np.str_]: ...
  294. @overload
  295. def expandtabs(a: S_co, tabsize: i_co = 8) -> NDArray[np.bytes_]: ...
  296. @overload
  297. def expandtabs(a: _StringDTypeSupportsArray, tabsize: i_co = 8) -> _StringDTypeArray: ...
  298. @overload
  299. def expandtabs(a: T_co, tabsize: i_co = 8) -> _StringDTypeOrUnicodeArray: ...
  300. @overload
  301. def center(a: U_co, width: i_co, fillchar: UST_co = " ") -> NDArray[np.str_]: ...
  302. @overload
  303. def center(a: S_co, width: i_co, fillchar: UST_co = " ") -> NDArray[np.bytes_]: ...
  304. @overload
  305. def center(a: _StringDTypeSupportsArray, width: i_co, fillchar: UST_co = " ") -> _StringDTypeArray: ...
  306. @overload
  307. def center(a: T_co, width: i_co, fillchar: UST_co = " ") -> _StringDTypeOrUnicodeArray: ...
  308. @overload
  309. def ljust(a: U_co, width: i_co, fillchar: UST_co = " ") -> NDArray[np.str_]: ...
  310. @overload
  311. def ljust(a: S_co, width: i_co, fillchar: UST_co = " ") -> NDArray[np.bytes_]: ...
  312. @overload
  313. def ljust(a: _StringDTypeSupportsArray, width: i_co, fillchar: UST_co = " ") -> _StringDTypeArray: ...
  314. @overload
  315. def ljust(a: T_co, width: i_co, fillchar: UST_co = " ") -> _StringDTypeOrUnicodeArray: ...
  316. @overload
  317. def rjust(a: U_co, width: i_co, fillchar: UST_co = " ") -> NDArray[np.str_]: ...
  318. @overload
  319. def rjust(a: S_co, width: i_co, fillchar: UST_co = " ") -> NDArray[np.bytes_]: ...
  320. @overload
  321. def rjust(a: _StringDTypeSupportsArray, width: i_co, fillchar: UST_co = " ") -> _StringDTypeArray: ...
  322. @overload
  323. def rjust(a: T_co, width: i_co, fillchar: UST_co = " ") -> _StringDTypeOrUnicodeArray: ...
  324. @overload
  325. def lstrip(a: U_co, chars: U_co | None = None) -> NDArray[np.str_]: ...
  326. @overload
  327. def lstrip(a: S_co, chars: S_co | None = None) -> NDArray[np.bytes_]: ...
  328. @overload
  329. def lstrip(a: _StringDTypeSupportsArray, chars: T_co | None = None) -> _StringDTypeArray: ...
  330. @overload
  331. def lstrip(a: T_co, chars: T_co | None = None) -> _StringDTypeOrUnicodeArray: ...
  332. @overload
  333. def rstrip(a: U_co, chars: U_co | None = None) -> NDArray[np.str_]: ...
  334. @overload
  335. def rstrip(a: S_co, chars: S_co | None = None) -> NDArray[np.bytes_]: ...
  336. @overload
  337. def rstrip(a: _StringDTypeSupportsArray, chars: T_co | None = None) -> _StringDTypeArray: ...
  338. @overload
  339. def rstrip(a: T_co, chars: T_co | None = None) -> _StringDTypeOrUnicodeArray: ...
  340. @overload
  341. def strip(a: U_co, chars: U_co | None = None) -> NDArray[np.str_]: ...
  342. @overload
  343. def strip(a: S_co, chars: S_co | None = None) -> NDArray[np.bytes_]: ...
  344. @overload
  345. def strip(a: _StringDTypeSupportsArray, chars: T_co | None = None) -> _StringDTypeArray: ...
  346. @overload
  347. def strip(a: T_co, chars: T_co | None = None) -> _StringDTypeOrUnicodeArray: ...
  348. @overload
  349. def zfill(a: U_co, width: i_co) -> NDArray[np.str_]: ...
  350. @overload
  351. def zfill(a: S_co, width: i_co) -> NDArray[np.bytes_]: ...
  352. @overload
  353. def zfill(a: _StringDTypeSupportsArray, width: i_co) -> _StringDTypeArray: ...
  354. @overload
  355. def zfill(a: T_co, width: i_co) -> _StringDTypeOrUnicodeArray: ...
  356. @overload
  357. def upper(a: U_co) -> NDArray[np.str_]: ...
  358. @overload
  359. def upper(a: S_co) -> NDArray[np.bytes_]: ...
  360. @overload
  361. def upper(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  362. @overload
  363. def upper(a: T_co) -> _StringDTypeOrUnicodeArray: ...
  364. @overload
  365. def lower(a: U_co) -> NDArray[np.str_]: ...
  366. @overload
  367. def lower(a: S_co) -> NDArray[np.bytes_]: ...
  368. @overload
  369. def lower(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  370. @overload
  371. def lower(a: T_co) -> _StringDTypeOrUnicodeArray: ...
  372. @overload
  373. def swapcase(a: U_co) -> NDArray[np.str_]: ...
  374. @overload
  375. def swapcase(a: S_co) -> NDArray[np.bytes_]: ...
  376. @overload
  377. def swapcase(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  378. @overload
  379. def swapcase(a: T_co) -> _StringDTypeOrUnicodeArray: ...
  380. @overload
  381. def capitalize(a: U_co) -> NDArray[np.str_]: ...
  382. @overload
  383. def capitalize(a: S_co) -> NDArray[np.bytes_]: ...
  384. @overload
  385. def capitalize(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  386. @overload
  387. def capitalize(a: T_co) -> _StringDTypeOrUnicodeArray: ...
  388. @overload
  389. def title(a: U_co) -> NDArray[np.str_]: ...
  390. @overload
  391. def title(a: S_co) -> NDArray[np.bytes_]: ...
  392. @overload
  393. def title(a: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  394. @overload
  395. def title(a: T_co) -> _StringDTypeOrUnicodeArray: ...
  396. @overload
  397. def replace(
  398. a: U_co,
  399. old: U_co,
  400. new: U_co,
  401. count: i_co = -1,
  402. ) -> NDArray[np.str_]: ...
  403. @overload
  404. def replace(
  405. a: S_co,
  406. old: S_co,
  407. new: S_co,
  408. count: i_co = -1,
  409. ) -> NDArray[np.bytes_]: ...
  410. @overload
  411. def replace(
  412. a: _StringDTypeSupportsArray,
  413. old: _StringDTypeSupportsArray,
  414. new: _StringDTypeSupportsArray,
  415. count: i_co = -1,
  416. ) -> _StringDTypeArray: ...
  417. @overload
  418. def replace(
  419. a: T_co,
  420. old: T_co,
  421. new: T_co,
  422. count: i_co = -1,
  423. ) -> _StringDTypeOrUnicodeArray: ...
  424. @overload
  425. def partition(a: U_co, sep: U_co) -> NDArray[np.str_]: ...
  426. @overload
  427. def partition(a: S_co, sep: S_co) -> NDArray[np.bytes_]: ...
  428. @overload
  429. def partition(a: _StringDTypeSupportsArray, sep: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  430. @overload
  431. def partition(a: T_co, sep: T_co) -> _StringDTypeOrUnicodeArray: ...
  432. @overload
  433. def rpartition(a: U_co, sep: U_co) -> NDArray[np.str_]: ...
  434. @overload
  435. def rpartition(a: S_co, sep: S_co) -> NDArray[np.bytes_]: ...
  436. @overload
  437. def rpartition(a: _StringDTypeSupportsArray, sep: _StringDTypeSupportsArray) -> _StringDTypeArray: ...
  438. @overload
  439. def rpartition(a: T_co, sep: T_co) -> _StringDTypeOrUnicodeArray: ...
  440. @overload
  441. def translate(
  442. a: U_co,
  443. table: str,
  444. deletechars: str | None = None,
  445. ) -> NDArray[np.str_]: ...
  446. @overload
  447. def translate(
  448. a: S_co,
  449. table: str,
  450. deletechars: str | None = None,
  451. ) -> NDArray[np.bytes_]: ...
  452. @overload
  453. def translate(
  454. a: _StringDTypeSupportsArray,
  455. table: str,
  456. deletechars: str | None = None,
  457. ) -> _StringDTypeArray: ...
  458. @overload
  459. def translate(
  460. a: T_co,
  461. table: str,
  462. deletechars: str | None = None,
  463. ) -> _StringDTypeOrUnicodeArray: ...
  464. #
  465. @overload
  466. def slice(
  467. a: U_co,
  468. start: i_co | None = None,
  469. stop: i_co | _NoValueType | None = ..., # = np._NoValue
  470. step: i_co | None = None,
  471. /,
  472. ) -> NDArray[np.str_]: ...
  473. @overload
  474. def slice(
  475. a: S_co,
  476. start: i_co | None = None,
  477. stop: i_co | _NoValueType | None = ..., # = np._NoValue
  478. step: i_co | None = None,
  479. /,
  480. ) -> NDArray[np.bytes_]: ...
  481. @overload
  482. def slice(
  483. a: _StringDTypeSupportsArray,
  484. start: i_co | None = None,
  485. stop: i_co | _NoValueType | None = ..., # = np._NoValue
  486. step: i_co | None = None,
  487. /,
  488. ) -> _StringDTypeArray: ...
  489. @overload
  490. def slice(
  491. a: T_co,
  492. start: i_co | None = None,
  493. stop: i_co | _NoValueType | None = ..., # = np._NoValue
  494. step: i_co | None = None,
  495. /,
  496. ) -> _StringDTypeOrUnicodeArray: ...