strings.pyi 12 KB

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