multiarray.pyi 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316
  1. # TODO: Sort out any and all missing functions in this namespace
  2. import datetime as dt
  3. from _typeshed import Incomplete, StrOrBytesPath, SupportsLenAndGetItem
  4. from collections.abc import Callable, Iterable, Sequence
  5. from typing import (
  6. Any,
  7. ClassVar,
  8. Final,
  9. Literal as L,
  10. Protocol,
  11. SupportsIndex,
  12. TypeAlias,
  13. TypeVar,
  14. final,
  15. overload,
  16. type_check_only,
  17. )
  18. from typing_extensions import CapsuleType
  19. import numpy as np
  20. from numpy import ( # type: ignore[attr-defined] # Python >=3.12
  21. _AnyShapeT,
  22. _CastingKind,
  23. _CopyMode,
  24. _ModeKind,
  25. _NDIterFlagsKind,
  26. _NDIterFlagsOp,
  27. _OrderCF,
  28. _OrderKACF,
  29. _SupportsBuffer,
  30. _SupportsFileMethods,
  31. broadcast,
  32. busdaycalendar,
  33. complexfloating,
  34. correlate,
  35. count_nonzero,
  36. datetime64,
  37. dtype,
  38. einsum as c_einsum,
  39. flatiter,
  40. float64,
  41. floating,
  42. from_dlpack,
  43. generic,
  44. int_,
  45. interp,
  46. intp,
  47. matmul,
  48. ndarray,
  49. nditer,
  50. signedinteger,
  51. str_,
  52. timedelta64,
  53. ufunc,
  54. uint8,
  55. unsignedinteger,
  56. vecdot,
  57. )
  58. from numpy._typing import (
  59. ArrayLike,
  60. DTypeLike,
  61. NDArray,
  62. _AnyShape,
  63. _ArrayLike,
  64. _ArrayLikeBool_co,
  65. _ArrayLikeBytes_co,
  66. _ArrayLikeComplex_co,
  67. _ArrayLikeDT64_co,
  68. _ArrayLikeFloat_co,
  69. _ArrayLikeInt_co,
  70. _ArrayLikeObject_co,
  71. _ArrayLikeStr_co,
  72. _ArrayLikeTD64_co,
  73. _ArrayLikeUInt_co,
  74. _DTypeLike,
  75. _FloatLike_co,
  76. _IntLike_co,
  77. _NestedSequence,
  78. _ScalarLike_co,
  79. _Shape,
  80. _ShapeLike,
  81. _SupportsArrayFunc,
  82. _SupportsDType,
  83. _TD64Like_co,
  84. )
  85. from numpy._typing._ufunc import (
  86. _2PTuple,
  87. _PyFunc_Nin1_Nout1,
  88. _PyFunc_Nin1P_Nout2P,
  89. _PyFunc_Nin2_Nout1,
  90. _PyFunc_Nin3P_Nout1,
  91. )
  92. __all__ = [
  93. "_ARRAY_API",
  94. "ALLOW_THREADS",
  95. "BUFSIZE",
  96. "CLIP",
  97. "DATETIMEUNITS",
  98. "ITEM_HASOBJECT",
  99. "ITEM_IS_POINTER",
  100. "LIST_PICKLE",
  101. "MAXDIMS",
  102. "MAY_SHARE_BOUNDS",
  103. "MAY_SHARE_EXACT",
  104. "NEEDS_INIT",
  105. "NEEDS_PYAPI",
  106. "RAISE",
  107. "USE_GETITEM",
  108. "USE_SETITEM",
  109. "WRAP",
  110. "_flagdict",
  111. "from_dlpack",
  112. "_place",
  113. "_reconstruct",
  114. "_vec_string",
  115. "_monotonicity",
  116. "add_docstring",
  117. "arange",
  118. "array",
  119. "asarray",
  120. "asanyarray",
  121. "ascontiguousarray",
  122. "asfortranarray",
  123. "bincount",
  124. "broadcast",
  125. "busday_count",
  126. "busday_offset",
  127. "busdaycalendar",
  128. "can_cast",
  129. "compare_chararrays",
  130. "concatenate",
  131. "copyto",
  132. "correlate",
  133. "correlate2",
  134. "count_nonzero",
  135. "c_einsum",
  136. "datetime_as_string",
  137. "datetime_data",
  138. "dot",
  139. "dragon4_positional",
  140. "dragon4_scientific",
  141. "dtype",
  142. "empty",
  143. "empty_like",
  144. "error",
  145. "flagsobj",
  146. "flatiter",
  147. "format_longfloat",
  148. "frombuffer",
  149. "fromfile",
  150. "fromiter",
  151. "fromstring",
  152. "get_handler_name",
  153. "get_handler_version",
  154. "inner",
  155. "interp",
  156. "interp_complex",
  157. "is_busday",
  158. "lexsort",
  159. "matmul",
  160. "vecdot",
  161. "may_share_memory",
  162. "min_scalar_type",
  163. "ndarray",
  164. "nditer",
  165. "nested_iters",
  166. "normalize_axis_index",
  167. "packbits",
  168. "promote_types",
  169. "putmask",
  170. "ravel_multi_index",
  171. "result_type",
  172. "scalar",
  173. "set_datetimeparse_function",
  174. "set_typeDict",
  175. "shares_memory",
  176. "typeinfo",
  177. "unpackbits",
  178. "unravel_index",
  179. "vdot",
  180. "where",
  181. "zeros",
  182. ]
  183. _ScalarT = TypeVar("_ScalarT", bound=generic)
  184. _DTypeT = TypeVar("_DTypeT", bound=np.dtype)
  185. _ArrayT = TypeVar("_ArrayT", bound=ndarray)
  186. _ArrayT_co = TypeVar("_ArrayT_co", bound=ndarray, covariant=True)
  187. _ShapeT = TypeVar("_ShapeT", bound=_Shape)
  188. # TODO: fix the names of these typevars
  189. _ReturnType = TypeVar("_ReturnType")
  190. _IDType = TypeVar("_IDType")
  191. _Nin = TypeVar("_Nin", bound=int)
  192. _Nout = TypeVar("_Nout", bound=int)
  193. _Array: TypeAlias = ndarray[_ShapeT, dtype[_ScalarT]]
  194. _Array1D: TypeAlias = ndarray[tuple[int], dtype[_ScalarT]]
  195. # Valid time units
  196. _UnitKind: TypeAlias = L[
  197. "Y",
  198. "M",
  199. "D",
  200. "h",
  201. "m",
  202. "s",
  203. "ms",
  204. "us", "μs",
  205. "ns",
  206. "ps",
  207. "fs",
  208. "as",
  209. ]
  210. _RollKind: TypeAlias = L[ # `raise` is deliberately excluded
  211. "nat",
  212. "forward",
  213. "following",
  214. "backward",
  215. "preceding",
  216. "modifiedfollowing",
  217. "modifiedpreceding",
  218. ]
  219. @type_check_only
  220. class _SupportsArray(Protocol[_ArrayT_co]):
  221. def __array__(self, /) -> _ArrayT_co: ...
  222. @type_check_only
  223. class _ConstructorEmpty(Protocol):
  224. # 1-D shape
  225. @overload
  226. def __call__(
  227. self,
  228. /,
  229. shape: SupportsIndex,
  230. dtype: None = None,
  231. order: _OrderCF = "C",
  232. *,
  233. device: L["cpu"] | None = None,
  234. like: _SupportsArrayFunc | None = None,
  235. ) -> _Array1D[float64]: ...
  236. @overload
  237. def __call__(
  238. self,
  239. /,
  240. shape: SupportsIndex,
  241. dtype: _DTypeT | _SupportsDType[_DTypeT],
  242. order: _OrderCF = "C",
  243. *,
  244. device: L["cpu"] | None = None,
  245. like: _SupportsArrayFunc | None = None,
  246. ) -> ndarray[tuple[int], _DTypeT]: ...
  247. @overload
  248. def __call__(
  249. self,
  250. /,
  251. shape: SupportsIndex,
  252. dtype: type[_ScalarT],
  253. order: _OrderCF = "C",
  254. *,
  255. device: L["cpu"] | None = None,
  256. like: _SupportsArrayFunc | None = None,
  257. ) -> _Array1D[_ScalarT]: ...
  258. @overload
  259. def __call__(
  260. self,
  261. /,
  262. shape: SupportsIndex,
  263. dtype: DTypeLike | None = None,
  264. order: _OrderCF = "C",
  265. *,
  266. device: L["cpu"] | None = None,
  267. like: _SupportsArrayFunc | None = None,
  268. ) -> _Array1D[Incomplete]: ...
  269. # known shape
  270. @overload
  271. def __call__(
  272. self,
  273. /,
  274. shape: _AnyShapeT,
  275. dtype: None = None,
  276. order: _OrderCF = "C",
  277. *,
  278. device: L["cpu"] | None = None,
  279. like: _SupportsArrayFunc | None = None,
  280. ) -> _Array[_AnyShapeT, float64]: ...
  281. @overload
  282. def __call__(
  283. self,
  284. /,
  285. shape: _AnyShapeT,
  286. dtype: _DTypeT | _SupportsDType[_DTypeT],
  287. order: _OrderCF = "C",
  288. *,
  289. device: L["cpu"] | None = None,
  290. like: _SupportsArrayFunc | None = None,
  291. ) -> ndarray[_AnyShapeT, _DTypeT]: ...
  292. @overload
  293. def __call__(
  294. self,
  295. /,
  296. shape: _AnyShapeT,
  297. dtype: type[_ScalarT],
  298. order: _OrderCF = "C",
  299. *,
  300. device: L["cpu"] | None = None,
  301. like: _SupportsArrayFunc | None = None,
  302. ) -> _Array[_AnyShapeT, _ScalarT]: ...
  303. @overload
  304. def __call__(
  305. self,
  306. /,
  307. shape: _AnyShapeT,
  308. dtype: DTypeLike | None = None,
  309. order: _OrderCF = "C",
  310. *,
  311. device: L["cpu"] | None = None,
  312. like: _SupportsArrayFunc | None = None,
  313. ) -> _Array[_AnyShapeT, Incomplete]: ...
  314. # unknown shape
  315. @overload
  316. def __call__(
  317. self, /,
  318. shape: _ShapeLike,
  319. dtype: None = None,
  320. order: _OrderCF = "C",
  321. *,
  322. device: L["cpu"] | None = None,
  323. like: _SupportsArrayFunc | None = None,
  324. ) -> NDArray[float64]: ...
  325. @overload
  326. def __call__(
  327. self, /,
  328. shape: _ShapeLike,
  329. dtype: _DTypeT | _SupportsDType[_DTypeT],
  330. order: _OrderCF = "C",
  331. *,
  332. device: L["cpu"] | None = None,
  333. like: _SupportsArrayFunc | None = None,
  334. ) -> ndarray[_AnyShape, _DTypeT]: ...
  335. @overload
  336. def __call__(
  337. self, /,
  338. shape: _ShapeLike,
  339. dtype: type[_ScalarT],
  340. order: _OrderCF = "C",
  341. *,
  342. device: L["cpu"] | None = None,
  343. like: _SupportsArrayFunc | None = None,
  344. ) -> NDArray[_ScalarT]: ...
  345. @overload
  346. def __call__(
  347. self,
  348. /,
  349. shape: _ShapeLike,
  350. dtype: DTypeLike | None = None,
  351. order: _OrderCF = "C",
  352. *,
  353. device: L["cpu"] | None = None,
  354. like: _SupportsArrayFunc | None = None,
  355. ) -> NDArray[Incomplete]: ...
  356. # using `Final` or `TypeAlias` will break stubtest
  357. error = Exception
  358. # from ._multiarray_umath
  359. ITEM_HASOBJECT: Final = 1
  360. LIST_PICKLE: Final = 2
  361. ITEM_IS_POINTER: Final = 4
  362. NEEDS_INIT: Final = 8
  363. NEEDS_PYAPI: Final = 16
  364. USE_GETITEM: Final = 32
  365. USE_SETITEM: Final = 64
  366. DATETIMEUNITS: Final[CapsuleType] = ...
  367. _ARRAY_API: Final[CapsuleType] = ...
  368. _flagdict: Final[dict[str, int]] = ...
  369. _monotonicity: Final[Callable[..., object]] = ...
  370. _place: Final[Callable[..., object]] = ...
  371. _reconstruct: Final[Callable[..., object]] = ...
  372. _vec_string: Final[Callable[..., object]] = ...
  373. correlate2: Final[Callable[..., object]] = ...
  374. dragon4_positional: Final[Callable[..., object]] = ...
  375. dragon4_scientific: Final[Callable[..., object]] = ...
  376. interp_complex: Final[Callable[..., object]] = ...
  377. set_datetimeparse_function: Final[Callable[..., object]] = ...
  378. def get_handler_name(a: NDArray[Any] = ..., /) -> str | None: ...
  379. def get_handler_version(a: NDArray[Any] = ..., /) -> int | None: ...
  380. def format_longfloat(x: np.longdouble, precision: int) -> str: ...
  381. def scalar(dtype: _DTypeT, object: bytes | object = ...) -> ndarray[tuple[()], _DTypeT]: ...
  382. def set_typeDict(dict_: dict[str, np.dtype], /) -> None: ...
  383. typeinfo: Final[dict[str, np.dtype[np.generic]]] = ...
  384. ALLOW_THREADS: Final[int] # 0 or 1 (system-specific)
  385. BUFSIZE: Final = 8_192
  386. CLIP: Final = 0
  387. WRAP: Final = 1
  388. RAISE: Final = 2
  389. MAXDIMS: Final = 64
  390. MAY_SHARE_BOUNDS: Final = 0
  391. MAY_SHARE_EXACT: Final = -1
  392. tracemalloc_domain: Final = 389_047
  393. zeros: Final[_ConstructorEmpty] = ...
  394. empty: Final[_ConstructorEmpty] = ...
  395. @overload
  396. def empty_like(
  397. prototype: _ArrayT,
  398. /,
  399. dtype: None = None,
  400. order: _OrderKACF = "K",
  401. subok: bool = True,
  402. shape: _ShapeLike | None = None,
  403. *,
  404. device: L["cpu"] | None = None,
  405. ) -> _ArrayT: ...
  406. @overload
  407. def empty_like(
  408. prototype: _ArrayLike[_ScalarT],
  409. /,
  410. dtype: None = None,
  411. order: _OrderKACF = "K",
  412. subok: bool = True,
  413. shape: _ShapeLike | None = None,
  414. *,
  415. device: L["cpu"] | None = None,
  416. ) -> NDArray[_ScalarT]: ...
  417. @overload
  418. def empty_like(
  419. prototype: Incomplete,
  420. /,
  421. dtype: _DTypeLike[_ScalarT],
  422. order: _OrderKACF = "K",
  423. subok: bool = True,
  424. shape: _ShapeLike | None = None,
  425. *,
  426. device: L["cpu"] | None = None,
  427. ) -> NDArray[_ScalarT]: ...
  428. @overload
  429. def empty_like(
  430. prototype: Incomplete,
  431. /,
  432. dtype: DTypeLike | None = None,
  433. order: _OrderKACF = "K",
  434. subok: bool = True,
  435. shape: _ShapeLike | None = None,
  436. *,
  437. device: L["cpu"] | None = None,
  438. ) -> NDArray[Incomplete]: ...
  439. @overload
  440. def array(
  441. object: _ArrayT,
  442. dtype: None = None,
  443. *,
  444. copy: bool | _CopyMode | None = True,
  445. order: _OrderKACF = "K",
  446. subok: L[True],
  447. ndmin: int = 0,
  448. ndmax: int = 0,
  449. like: _SupportsArrayFunc | None = None,
  450. ) -> _ArrayT: ...
  451. @overload
  452. def array(
  453. object: _SupportsArray[_ArrayT],
  454. dtype: None = None,
  455. *,
  456. copy: bool | _CopyMode | None = True,
  457. order: _OrderKACF = "K",
  458. subok: L[True],
  459. ndmin: L[0] = 0,
  460. ndmax: int = 0,
  461. like: _SupportsArrayFunc | None = None,
  462. ) -> _ArrayT: ...
  463. @overload
  464. def array(
  465. object: _ArrayLike[_ScalarT],
  466. dtype: None = None,
  467. *,
  468. copy: bool | _CopyMode | None = True,
  469. order: _OrderKACF = "K",
  470. subok: bool = False,
  471. ndmin: int = 0,
  472. ndmax: int = 0,
  473. like: _SupportsArrayFunc | None = None,
  474. ) -> NDArray[_ScalarT]: ...
  475. @overload
  476. def array(
  477. object: Any,
  478. dtype: _DTypeLike[_ScalarT],
  479. *,
  480. copy: bool | _CopyMode | None = True,
  481. order: _OrderKACF = "K",
  482. subok: bool = False,
  483. ndmin: int = 0,
  484. ndmax: int = 0,
  485. like: _SupportsArrayFunc | None = None,
  486. ) -> NDArray[_ScalarT]: ...
  487. @overload
  488. def array(
  489. object: Any,
  490. dtype: DTypeLike | None = None,
  491. *,
  492. copy: bool | _CopyMode | None = True,
  493. order: _OrderKACF = "K",
  494. subok: bool = False,
  495. ndmin: int = 0,
  496. ndmax: int = 0,
  497. like: _SupportsArrayFunc | None = None,
  498. ) -> NDArray[Any]: ...
  499. #
  500. @overload
  501. def ravel_multi_index(
  502. multi_index: SupportsLenAndGetItem[_IntLike_co],
  503. dims: _ShapeLike,
  504. mode: _ModeKind | tuple[_ModeKind, ...] = "raise",
  505. order: _OrderCF = "C",
  506. ) -> intp: ...
  507. @overload
  508. def ravel_multi_index(
  509. multi_index: SupportsLenAndGetItem[_ArrayLikeInt_co],
  510. dims: _ShapeLike,
  511. mode: _ModeKind | tuple[_ModeKind, ...] = "raise",
  512. order: _OrderCF = "C",
  513. ) -> NDArray[intp]: ...
  514. #
  515. @overload
  516. def unravel_index(indices: _IntLike_co, shape: _ShapeLike, order: _OrderCF = "C") -> tuple[intp, ...]: ...
  517. @overload
  518. def unravel_index(indices: _ArrayLikeInt_co, shape: _ShapeLike, order: _OrderCF = "C") -> tuple[NDArray[intp], ...]: ...
  519. #
  520. def normalize_axis_index(axis: int, ndim: int, msg_prefix: str | None = None) -> int: ...
  521. # NOTE: Allow any sequence of array-like objects
  522. @overload
  523. def concatenate(
  524. arrays: _ArrayLike[_ScalarT],
  525. /,
  526. axis: SupportsIndex | None = 0,
  527. out: None = None,
  528. *,
  529. dtype: None = None,
  530. casting: _CastingKind | None = "same_kind",
  531. ) -> NDArray[_ScalarT]: ...
  532. @overload
  533. def concatenate(
  534. arrays: SupportsLenAndGetItem[ArrayLike],
  535. /,
  536. axis: SupportsIndex | None = 0,
  537. out: None = None,
  538. *,
  539. dtype: _DTypeLike[_ScalarT],
  540. casting: _CastingKind | None = "same_kind",
  541. ) -> NDArray[_ScalarT]: ...
  542. @overload
  543. def concatenate(
  544. arrays: SupportsLenAndGetItem[ArrayLike],
  545. /,
  546. axis: SupportsIndex | None = 0,
  547. out: None = None,
  548. *,
  549. dtype: DTypeLike | None = None,
  550. casting: _CastingKind | None = "same_kind",
  551. ) -> NDArray[Incomplete]: ...
  552. @overload
  553. def concatenate(
  554. arrays: SupportsLenAndGetItem[ArrayLike],
  555. /,
  556. axis: SupportsIndex | None = 0,
  557. *,
  558. out: _ArrayT,
  559. dtype: DTypeLike | None = None,
  560. casting: _CastingKind | None = "same_kind",
  561. ) -> _ArrayT: ...
  562. @overload
  563. def concatenate(
  564. arrays: SupportsLenAndGetItem[ArrayLike],
  565. /,
  566. axis: SupportsIndex | None,
  567. out: _ArrayT,
  568. *,
  569. dtype: DTypeLike | None = None,
  570. casting: _CastingKind | None = "same_kind",
  571. ) -> _ArrayT: ...
  572. def inner(a: ArrayLike, b: ArrayLike, /) -> Incomplete: ...
  573. @overload
  574. def where(condition: ArrayLike, x: None = None, y: None = None, /) -> tuple[NDArray[intp], ...]: ...
  575. @overload
  576. def where(condition: ArrayLike, x: ArrayLike, y: ArrayLike, /) -> NDArray[Incomplete]: ...
  577. def lexsort(keys: ArrayLike, axis: SupportsIndex = -1) -> NDArray[intp]: ...
  578. def can_cast(from_: ArrayLike | DTypeLike, to: DTypeLike, casting: _CastingKind = "safe") -> bool: ...
  579. def min_scalar_type(a: ArrayLike, /) -> dtype: ...
  580. def result_type(*arrays_and_dtypes: ArrayLike | DTypeLike | None) -> dtype: ...
  581. @overload
  582. def dot(a: ArrayLike, b: ArrayLike, out: None = None) -> Incomplete: ...
  583. @overload
  584. def dot(a: ArrayLike, b: ArrayLike, out: _ArrayT) -> _ArrayT: ...
  585. @overload
  586. def vdot(a: _ArrayLikeBool_co, b: _ArrayLikeBool_co, /) -> np.bool: ...
  587. @overload
  588. def vdot(a: _ArrayLikeUInt_co, b: _ArrayLikeUInt_co, /) -> unsignedinteger: ...
  589. @overload
  590. def vdot(a: _ArrayLikeInt_co, b: _ArrayLikeInt_co, /) -> signedinteger: ...
  591. @overload
  592. def vdot(a: _ArrayLikeFloat_co, b: _ArrayLikeFloat_co, /) -> floating: ...
  593. @overload
  594. def vdot(a: _ArrayLikeComplex_co, b: _ArrayLikeComplex_co, /) -> complexfloating: ...
  595. @overload
  596. def vdot(a: _ArrayLikeTD64_co, b: _ArrayLikeTD64_co, /) -> timedelta64: ...
  597. @overload
  598. def vdot(a: _ArrayLikeObject_co, b: object, /) -> Any: ...
  599. @overload
  600. def vdot(a: object, b: _ArrayLikeObject_co, /) -> Any: ...
  601. def bincount(x: ArrayLike, /, weights: ArrayLike | None = None, minlength: SupportsIndex = 0) -> NDArray[intp]: ...
  602. def copyto(dst: ndarray, src: ArrayLike, casting: _CastingKind = "same_kind", where: object = True) -> None: ...
  603. def putmask(a: ndarray, /, mask: _ArrayLikeBool_co, values: ArrayLike) -> None: ...
  604. _BitOrder: TypeAlias = L["big", "little"]
  605. @overload
  606. def packbits(a: _ArrayLikeInt_co, /, axis: None = None, bitorder: _BitOrder = "big") -> ndarray[tuple[int], dtype[uint8]]: ...
  607. @overload
  608. def packbits(a: _ArrayLikeInt_co, /, axis: SupportsIndex, bitorder: _BitOrder = "big") -> NDArray[uint8]: ...
  609. @overload
  610. def unpackbits(
  611. a: _ArrayLike[uint8],
  612. /,
  613. axis: None = None,
  614. count: SupportsIndex | None = None,
  615. bitorder: _BitOrder = "big",
  616. ) -> ndarray[tuple[int], dtype[uint8]]: ...
  617. @overload
  618. def unpackbits(
  619. a: _ArrayLike[uint8],
  620. /,
  621. axis: SupportsIndex,
  622. count: SupportsIndex | None = None,
  623. bitorder: _BitOrder = "big",
  624. ) -> NDArray[uint8]: ...
  625. _MaxWork: TypeAlias = L[-1, 0]
  626. # any two python objects will be accepted, not just `ndarray`s
  627. def shares_memory(a: object, b: object, /, max_work: _MaxWork = -1) -> bool: ...
  628. def may_share_memory(a: object, b: object, /, max_work: _MaxWork = 0) -> bool: ...
  629. @overload
  630. def asarray(
  631. a: _ArrayLike[_ScalarT],
  632. dtype: None = None,
  633. order: _OrderKACF = ...,
  634. *,
  635. device: L["cpu"] | None = ...,
  636. copy: bool | None = ...,
  637. like: _SupportsArrayFunc | None = ...,
  638. ) -> NDArray[_ScalarT]: ...
  639. @overload
  640. def asarray(
  641. a: Any,
  642. dtype: _DTypeLike[_ScalarT],
  643. order: _OrderKACF = ...,
  644. *,
  645. device: L["cpu"] | None = ...,
  646. copy: bool | None = ...,
  647. like: _SupportsArrayFunc | None = ...,
  648. ) -> NDArray[_ScalarT]: ...
  649. @overload
  650. def asarray(
  651. a: Any,
  652. dtype: DTypeLike | None = ...,
  653. order: _OrderKACF = ...,
  654. *,
  655. device: L["cpu"] | None = ...,
  656. copy: bool | None = ...,
  657. like: _SupportsArrayFunc | None = ...,
  658. ) -> NDArray[Any]: ...
  659. @overload
  660. def asanyarray(
  661. a: _ArrayT, # Preserve subclass-information
  662. dtype: None = None,
  663. order: _OrderKACF = ...,
  664. *,
  665. device: L["cpu"] | None = ...,
  666. copy: bool | None = ...,
  667. like: _SupportsArrayFunc | None = ...,
  668. ) -> _ArrayT: ...
  669. @overload
  670. def asanyarray(
  671. a: _ArrayLike[_ScalarT],
  672. dtype: None = None,
  673. order: _OrderKACF = ...,
  674. *,
  675. device: L["cpu"] | None = ...,
  676. copy: bool | None = ...,
  677. like: _SupportsArrayFunc | None = ...,
  678. ) -> NDArray[_ScalarT]: ...
  679. @overload
  680. def asanyarray(
  681. a: Any,
  682. dtype: _DTypeLike[_ScalarT],
  683. order: _OrderKACF = ...,
  684. *,
  685. device: L["cpu"] | None = ...,
  686. copy: bool | None = ...,
  687. like: _SupportsArrayFunc | None = ...,
  688. ) -> NDArray[_ScalarT]: ...
  689. @overload
  690. def asanyarray(
  691. a: Any,
  692. dtype: DTypeLike | None = ...,
  693. order: _OrderKACF = ...,
  694. *,
  695. device: L["cpu"] | None = ...,
  696. copy: bool | None = ...,
  697. like: _SupportsArrayFunc | None = ...,
  698. ) -> NDArray[Any]: ...
  699. @overload
  700. def ascontiguousarray(
  701. a: _ArrayLike[_ScalarT],
  702. dtype: None = None,
  703. *,
  704. like: _SupportsArrayFunc | None = ...,
  705. ) -> NDArray[_ScalarT]: ...
  706. @overload
  707. def ascontiguousarray(
  708. a: Any,
  709. dtype: _DTypeLike[_ScalarT],
  710. *,
  711. like: _SupportsArrayFunc | None = ...,
  712. ) -> NDArray[_ScalarT]: ...
  713. @overload
  714. def ascontiguousarray(
  715. a: Any,
  716. dtype: DTypeLike | None = ...,
  717. *,
  718. like: _SupportsArrayFunc | None = ...,
  719. ) -> NDArray[Any]: ...
  720. @overload
  721. def asfortranarray(
  722. a: _ArrayLike[_ScalarT],
  723. dtype: None = None,
  724. *,
  725. like: _SupportsArrayFunc | None = ...,
  726. ) -> NDArray[_ScalarT]: ...
  727. @overload
  728. def asfortranarray(
  729. a: Any,
  730. dtype: _DTypeLike[_ScalarT],
  731. *,
  732. like: _SupportsArrayFunc | None = ...,
  733. ) -> NDArray[_ScalarT]: ...
  734. @overload
  735. def asfortranarray(
  736. a: Any,
  737. dtype: DTypeLike | None = ...,
  738. *,
  739. like: _SupportsArrayFunc | None = ...,
  740. ) -> NDArray[Any]: ...
  741. def promote_types(__type1: DTypeLike, __type2: DTypeLike) -> dtype: ...
  742. # `sep` is a de facto mandatory argument, as its default value is deprecated
  743. @overload
  744. def fromstring(
  745. string: str | bytes,
  746. dtype: None = None,
  747. count: SupportsIndex = ...,
  748. *,
  749. sep: str,
  750. like: _SupportsArrayFunc | None = ...,
  751. ) -> NDArray[float64]: ...
  752. @overload
  753. def fromstring(
  754. string: str | bytes,
  755. dtype: _DTypeLike[_ScalarT],
  756. count: SupportsIndex = ...,
  757. *,
  758. sep: str,
  759. like: _SupportsArrayFunc | None = ...,
  760. ) -> NDArray[_ScalarT]: ...
  761. @overload
  762. def fromstring(
  763. string: str | bytes,
  764. dtype: DTypeLike | None = ...,
  765. count: SupportsIndex = ...,
  766. *,
  767. sep: str,
  768. like: _SupportsArrayFunc | None = ...,
  769. ) -> NDArray[Any]: ...
  770. @overload
  771. def frompyfunc( # type: ignore[overload-overlap]
  772. func: Callable[[Any], _ReturnType], /,
  773. nin: L[1],
  774. nout: L[1],
  775. *,
  776. identity: None = None,
  777. ) -> _PyFunc_Nin1_Nout1[_ReturnType, None]: ...
  778. @overload
  779. def frompyfunc( # type: ignore[overload-overlap]
  780. func: Callable[[Any], _ReturnType], /,
  781. nin: L[1],
  782. nout: L[1],
  783. *,
  784. identity: _IDType,
  785. ) -> _PyFunc_Nin1_Nout1[_ReturnType, _IDType]: ...
  786. @overload
  787. def frompyfunc( # type: ignore[overload-overlap]
  788. func: Callable[[Any, Any], _ReturnType], /,
  789. nin: L[2],
  790. nout: L[1],
  791. *,
  792. identity: None = None,
  793. ) -> _PyFunc_Nin2_Nout1[_ReturnType, None]: ...
  794. @overload
  795. def frompyfunc( # type: ignore[overload-overlap]
  796. func: Callable[[Any, Any], _ReturnType], /,
  797. nin: L[2],
  798. nout: L[1],
  799. *,
  800. identity: _IDType,
  801. ) -> _PyFunc_Nin2_Nout1[_ReturnType, _IDType]: ...
  802. @overload
  803. def frompyfunc( # type: ignore[overload-overlap]
  804. func: Callable[..., _ReturnType], /,
  805. nin: _Nin,
  806. nout: L[1],
  807. *,
  808. identity: None = None,
  809. ) -> _PyFunc_Nin3P_Nout1[_ReturnType, None, _Nin]: ...
  810. @overload
  811. def frompyfunc( # type: ignore[overload-overlap]
  812. func: Callable[..., _ReturnType], /,
  813. nin: _Nin,
  814. nout: L[1],
  815. *,
  816. identity: _IDType,
  817. ) -> _PyFunc_Nin3P_Nout1[_ReturnType, _IDType, _Nin]: ...
  818. @overload
  819. def frompyfunc(
  820. func: Callable[..., _2PTuple[_ReturnType]], /,
  821. nin: _Nin,
  822. nout: _Nout,
  823. *,
  824. identity: None = None,
  825. ) -> _PyFunc_Nin1P_Nout2P[_ReturnType, None, _Nin, _Nout]: ...
  826. @overload
  827. def frompyfunc(
  828. func: Callable[..., _2PTuple[_ReturnType]], /,
  829. nin: _Nin,
  830. nout: _Nout,
  831. *,
  832. identity: _IDType,
  833. ) -> _PyFunc_Nin1P_Nout2P[_ReturnType, _IDType, _Nin, _Nout]: ...
  834. @overload
  835. def frompyfunc(
  836. func: Callable[..., Any], /,
  837. nin: SupportsIndex,
  838. nout: SupportsIndex,
  839. *,
  840. identity: object | None = ...,
  841. ) -> ufunc: ...
  842. @overload
  843. def fromfile(
  844. file: StrOrBytesPath | _SupportsFileMethods,
  845. dtype: None = None,
  846. count: SupportsIndex = ...,
  847. sep: str = ...,
  848. offset: SupportsIndex = ...,
  849. *,
  850. like: _SupportsArrayFunc | None = ...,
  851. ) -> NDArray[float64]: ...
  852. @overload
  853. def fromfile(
  854. file: StrOrBytesPath | _SupportsFileMethods,
  855. dtype: _DTypeLike[_ScalarT],
  856. count: SupportsIndex = ...,
  857. sep: str = ...,
  858. offset: SupportsIndex = ...,
  859. *,
  860. like: _SupportsArrayFunc | None = ...,
  861. ) -> NDArray[_ScalarT]: ...
  862. @overload
  863. def fromfile(
  864. file: StrOrBytesPath | _SupportsFileMethods,
  865. dtype: DTypeLike | None = ...,
  866. count: SupportsIndex = ...,
  867. sep: str = ...,
  868. offset: SupportsIndex = ...,
  869. *,
  870. like: _SupportsArrayFunc | None = ...,
  871. ) -> NDArray[Any]: ...
  872. @overload
  873. def fromiter(
  874. iter: Iterable[Any],
  875. dtype: _DTypeLike[_ScalarT],
  876. count: SupportsIndex = ...,
  877. *,
  878. like: _SupportsArrayFunc | None = ...,
  879. ) -> NDArray[_ScalarT]: ...
  880. @overload
  881. def fromiter(
  882. iter: Iterable[Any],
  883. dtype: DTypeLike | None,
  884. count: SupportsIndex = ...,
  885. *,
  886. like: _SupportsArrayFunc | None = ...,
  887. ) -> NDArray[Any]: ...
  888. @overload
  889. def frombuffer(
  890. buffer: _SupportsBuffer,
  891. dtype: None = None,
  892. count: SupportsIndex = ...,
  893. offset: SupportsIndex = ...,
  894. *,
  895. like: _SupportsArrayFunc | None = ...,
  896. ) -> NDArray[float64]: ...
  897. @overload
  898. def frombuffer(
  899. buffer: _SupportsBuffer,
  900. dtype: _DTypeLike[_ScalarT],
  901. count: SupportsIndex = ...,
  902. offset: SupportsIndex = ...,
  903. *,
  904. like: _SupportsArrayFunc | None = ...,
  905. ) -> NDArray[_ScalarT]: ...
  906. @overload
  907. def frombuffer(
  908. buffer: _SupportsBuffer,
  909. dtype: DTypeLike | None = ...,
  910. count: SupportsIndex = ...,
  911. offset: SupportsIndex = ...,
  912. *,
  913. like: _SupportsArrayFunc | None = ...,
  914. ) -> NDArray[Any]: ...
  915. _ArangeScalar: TypeAlias = np.integer | np.floating | np.datetime64 | np.timedelta64
  916. _ArangeScalarT = TypeVar("_ArangeScalarT", bound=_ArangeScalar)
  917. # keep in sync with ma.core.arange
  918. # NOTE: The `float64 | Any` return types needed to avoid incompatible overlapping overloads
  919. @overload # dtype=<known>
  920. def arange(
  921. start_or_stop: _ArangeScalar | float,
  922. /,
  923. stop: _ArangeScalar | float | None = None,
  924. step: _ArangeScalar | float | None = 1,
  925. *,
  926. dtype: _DTypeLike[_ArangeScalarT],
  927. device: L["cpu"] | None = None,
  928. like: _SupportsArrayFunc | None = None,
  929. ) -> _Array1D[_ArangeScalarT]: ...
  930. @overload # (int-like, int-like?, int-like?)
  931. def arange(
  932. start_or_stop: _IntLike_co,
  933. /,
  934. stop: _IntLike_co | None = None,
  935. step: _IntLike_co | None = 1,
  936. *,
  937. dtype: type[int] | _DTypeLike[np.int_] | None = None,
  938. device: L["cpu"] | None = None,
  939. like: _SupportsArrayFunc | None = None,
  940. ) -> _Array1D[np.int_]: ...
  941. @overload # (float, float-like?, float-like?)
  942. def arange(
  943. start_or_stop: float | floating,
  944. /,
  945. stop: _FloatLike_co | None = None,
  946. step: _FloatLike_co | None = 1,
  947. *,
  948. dtype: type[float] | _DTypeLike[np.float64] | None = None,
  949. device: L["cpu"] | None = None,
  950. like: _SupportsArrayFunc | None = None,
  951. ) -> _Array1D[np.float64 | Any]: ...
  952. @overload # (float-like, float, float-like?)
  953. def arange(
  954. start_or_stop: _FloatLike_co,
  955. /,
  956. stop: float | floating,
  957. step: _FloatLike_co | None = 1,
  958. *,
  959. dtype: type[float] | _DTypeLike[np.float64] | None = None,
  960. device: L["cpu"] | None = None,
  961. like: _SupportsArrayFunc | None = None,
  962. ) -> _Array1D[np.float64 | Any]: ...
  963. @overload # (timedelta, timedelta-like?, timedelta-like?)
  964. def arange(
  965. start_or_stop: np.timedelta64,
  966. /,
  967. stop: _TD64Like_co | None = None,
  968. step: _TD64Like_co | None = 1,
  969. *,
  970. dtype: _DTypeLike[np.timedelta64] | None = None,
  971. device: L["cpu"] | None = None,
  972. like: _SupportsArrayFunc | None = None,
  973. ) -> _Array1D[np.timedelta64[Incomplete]]: ...
  974. @overload # (timedelta-like, timedelta, timedelta-like?)
  975. def arange(
  976. start_or_stop: _TD64Like_co,
  977. /,
  978. stop: np.timedelta64,
  979. step: _TD64Like_co | None = 1,
  980. *,
  981. dtype: _DTypeLike[np.timedelta64] | None = None,
  982. device: L["cpu"] | None = None,
  983. like: _SupportsArrayFunc | None = None,
  984. ) -> _Array1D[np.timedelta64[Incomplete]]: ...
  985. @overload # (datetime, datetime, timedelta-like) (requires both start and stop)
  986. def arange(
  987. start_or_stop: np.datetime64,
  988. /,
  989. stop: np.datetime64,
  990. step: _TD64Like_co | None = 1,
  991. *,
  992. dtype: _DTypeLike[np.datetime64] | None = None,
  993. device: L["cpu"] | None = None,
  994. like: _SupportsArrayFunc | None = None,
  995. ) -> _Array1D[np.datetime64[Incomplete]]: ...
  996. @overload # dtype=<unknown>
  997. def arange(
  998. start_or_stop: _ArangeScalar | float,
  999. /,
  1000. stop: _ArangeScalar | float | None = None,
  1001. step: _ArangeScalar | float | None = 1,
  1002. *,
  1003. dtype: DTypeLike | None = None,
  1004. device: L["cpu"] | None = None,
  1005. like: _SupportsArrayFunc | None = None,
  1006. ) -> _Array1D[Incomplete]: ...
  1007. #
  1008. def datetime_data(dtype: str | _DTypeLike[datetime64 | timedelta64], /) -> tuple[str, int]: ...
  1009. # The datetime functions perform unsafe casts to `datetime64[D]`,
  1010. # so a lot of different argument types are allowed here
  1011. _ToDates: TypeAlias = dt.date | _NestedSequence[dt.date]
  1012. _ToDeltas: TypeAlias = dt.timedelta | _NestedSequence[dt.timedelta]
  1013. @overload
  1014. def busday_count(
  1015. begindates: _ScalarLike_co | dt.date,
  1016. enddates: _ScalarLike_co | dt.date,
  1017. weekmask: ArrayLike = "1111100",
  1018. holidays: ArrayLike | _ToDates = (),
  1019. busdaycal: busdaycalendar | None = None,
  1020. out: None = None,
  1021. ) -> int_: ...
  1022. @overload
  1023. def busday_count(
  1024. begindates: ArrayLike | _ToDates,
  1025. enddates: ArrayLike | _ToDates,
  1026. weekmask: ArrayLike = "1111100",
  1027. holidays: ArrayLike | _ToDates = (),
  1028. busdaycal: busdaycalendar | None = None,
  1029. out: None = None,
  1030. ) -> NDArray[int_]: ...
  1031. @overload
  1032. def busday_count(
  1033. begindates: ArrayLike | _ToDates,
  1034. enddates: ArrayLike | _ToDates,
  1035. weekmask: ArrayLike = "1111100",
  1036. holidays: ArrayLike | _ToDates = (),
  1037. busdaycal: busdaycalendar | None = None,
  1038. *,
  1039. out: _ArrayT,
  1040. ) -> _ArrayT: ...
  1041. @overload
  1042. def busday_count(
  1043. begindates: ArrayLike | _ToDates,
  1044. enddates: ArrayLike | _ToDates,
  1045. weekmask: ArrayLike,
  1046. holidays: ArrayLike | _ToDates,
  1047. busdaycal: busdaycalendar | None,
  1048. out: _ArrayT,
  1049. ) -> _ArrayT: ...
  1050. # `roll="raise"` is (more or less?) equivalent to `casting="safe"`
  1051. @overload
  1052. def busday_offset(
  1053. dates: datetime64 | dt.date,
  1054. offsets: _TD64Like_co | dt.timedelta,
  1055. roll: L["raise"] = "raise",
  1056. weekmask: ArrayLike = "1111100",
  1057. holidays: ArrayLike | _ToDates | None = None,
  1058. busdaycal: busdaycalendar | None = None,
  1059. out: None = None,
  1060. ) -> datetime64: ...
  1061. @overload
  1062. def busday_offset(
  1063. dates: _ArrayLike[datetime64] | _NestedSequence[dt.date],
  1064. offsets: _ArrayLikeTD64_co | _ToDeltas,
  1065. roll: L["raise"] = "raise",
  1066. weekmask: ArrayLike = "1111100",
  1067. holidays: ArrayLike | _ToDates | None = None,
  1068. busdaycal: busdaycalendar | None = None,
  1069. out: None = None,
  1070. ) -> NDArray[datetime64]: ...
  1071. @overload
  1072. def busday_offset(
  1073. dates: _ArrayLike[datetime64] | _ToDates,
  1074. offsets: _ArrayLikeTD64_co | _ToDeltas,
  1075. roll: L["raise"] = "raise",
  1076. weekmask: ArrayLike = "1111100",
  1077. holidays: ArrayLike | _ToDates | None = None,
  1078. busdaycal: busdaycalendar | None = None,
  1079. *,
  1080. out: _ArrayT,
  1081. ) -> _ArrayT: ...
  1082. @overload
  1083. def busday_offset(
  1084. dates: _ArrayLike[datetime64] | _ToDates,
  1085. offsets: _ArrayLikeTD64_co | _ToDeltas,
  1086. roll: L["raise"],
  1087. weekmask: ArrayLike,
  1088. holidays: ArrayLike | _ToDates | None,
  1089. busdaycal: busdaycalendar | None,
  1090. out: _ArrayT,
  1091. ) -> _ArrayT: ...
  1092. @overload
  1093. def busday_offset(
  1094. dates: _ScalarLike_co | dt.date,
  1095. offsets: _ScalarLike_co | dt.timedelta,
  1096. roll: _RollKind,
  1097. weekmask: ArrayLike = "1111100",
  1098. holidays: ArrayLike | _ToDates | None = None,
  1099. busdaycal: busdaycalendar | None = None,
  1100. out: None = None,
  1101. ) -> datetime64: ...
  1102. @overload
  1103. def busday_offset(
  1104. dates: ArrayLike | _NestedSequence[dt.date],
  1105. offsets: ArrayLike | _ToDeltas,
  1106. roll: _RollKind,
  1107. weekmask: ArrayLike = "1111100",
  1108. holidays: ArrayLike | _ToDates | None = None,
  1109. busdaycal: busdaycalendar | None = None,
  1110. out: None = None,
  1111. ) -> NDArray[datetime64]: ...
  1112. @overload
  1113. def busday_offset(
  1114. dates: ArrayLike | _ToDates,
  1115. offsets: ArrayLike | _ToDeltas,
  1116. roll: _RollKind,
  1117. weekmask: ArrayLike = "1111100",
  1118. holidays: ArrayLike | _ToDates | None = None,
  1119. busdaycal: busdaycalendar | None = None,
  1120. *,
  1121. out: _ArrayT,
  1122. ) -> _ArrayT: ...
  1123. @overload
  1124. def busday_offset(
  1125. dates: ArrayLike | _ToDates,
  1126. offsets: ArrayLike | _ToDeltas,
  1127. roll: _RollKind,
  1128. weekmask: ArrayLike,
  1129. holidays: ArrayLike | _ToDates | None,
  1130. busdaycal: busdaycalendar | None,
  1131. out: _ArrayT,
  1132. ) -> _ArrayT: ...
  1133. @overload
  1134. def is_busday(
  1135. dates: _ScalarLike_co | dt.date,
  1136. weekmask: ArrayLike = "1111100",
  1137. holidays: ArrayLike | _ToDates | None = None,
  1138. busdaycal: busdaycalendar | None = None,
  1139. out: None = None,
  1140. ) -> np.bool: ...
  1141. @overload
  1142. def is_busday(
  1143. dates: ArrayLike | _NestedSequence[dt.date],
  1144. weekmask: ArrayLike = "1111100",
  1145. holidays: ArrayLike | _ToDates | None = None,
  1146. busdaycal: busdaycalendar | None = None,
  1147. out: None = None,
  1148. ) -> NDArray[np.bool]: ...
  1149. @overload
  1150. def is_busday(
  1151. dates: ArrayLike | _ToDates,
  1152. weekmask: ArrayLike = "1111100",
  1153. holidays: ArrayLike | _ToDates | None = None,
  1154. busdaycal: busdaycalendar | None = None,
  1155. *,
  1156. out: _ArrayT,
  1157. ) -> _ArrayT: ...
  1158. @overload
  1159. def is_busday(
  1160. dates: ArrayLike | _ToDates,
  1161. weekmask: ArrayLike,
  1162. holidays: ArrayLike | _ToDates | None,
  1163. busdaycal: busdaycalendar | None,
  1164. out: _ArrayT,
  1165. ) -> _ArrayT: ...
  1166. _TimezoneContext: TypeAlias = L["naive", "UTC", "local"] | dt.tzinfo
  1167. @overload
  1168. def datetime_as_string(
  1169. arr: datetime64 | dt.date,
  1170. unit: L["auto"] | _UnitKind | None = None,
  1171. timezone: _TimezoneContext = "naive",
  1172. casting: _CastingKind = "same_kind",
  1173. ) -> str_: ...
  1174. @overload
  1175. def datetime_as_string(
  1176. arr: _ArrayLikeDT64_co | _NestedSequence[dt.date],
  1177. unit: L["auto"] | _UnitKind | None = None,
  1178. timezone: _TimezoneContext = "naive",
  1179. casting: _CastingKind = "same_kind",
  1180. ) -> NDArray[str_]: ...
  1181. @overload
  1182. def compare_chararrays(
  1183. a1: _ArrayLikeStr_co,
  1184. a2: _ArrayLikeStr_co,
  1185. cmp: L["<", "<=", "==", ">=", ">", "!="],
  1186. rstrip: bool,
  1187. ) -> NDArray[np.bool]: ...
  1188. @overload
  1189. def compare_chararrays(
  1190. a1: _ArrayLikeBytes_co,
  1191. a2: _ArrayLikeBytes_co,
  1192. cmp: L["<", "<=", "==", ">=", ">", "!="],
  1193. rstrip: bool,
  1194. ) -> NDArray[np.bool]: ...
  1195. def add_docstring(obj: Callable[..., Any], docstring: str, /) -> None: ...
  1196. _GetItemKeys: TypeAlias = L[
  1197. "C", "CONTIGUOUS", "C_CONTIGUOUS",
  1198. "F", "FORTRAN", "F_CONTIGUOUS",
  1199. "W", "WRITEABLE",
  1200. "B", "BEHAVED",
  1201. "O", "OWNDATA",
  1202. "A", "ALIGNED",
  1203. "X", "WRITEBACKIFCOPY",
  1204. "CA", "CARRAY",
  1205. "FA", "FARRAY",
  1206. "FNC",
  1207. "FORC",
  1208. ]
  1209. _SetItemKeys: TypeAlias = L[
  1210. "A", "ALIGNED",
  1211. "W", "WRITEABLE",
  1212. "X", "WRITEBACKIFCOPY",
  1213. ]
  1214. @final
  1215. class flagsobj:
  1216. __hash__: ClassVar[None] # type: ignore[assignment]
  1217. aligned: bool
  1218. # NOTE: deprecated
  1219. # updateifcopy: bool
  1220. writeable: bool
  1221. writebackifcopy: bool
  1222. @property
  1223. def behaved(self) -> bool: ...
  1224. @property
  1225. def c_contiguous(self) -> bool: ...
  1226. @property
  1227. def carray(self) -> bool: ...
  1228. @property
  1229. def contiguous(self) -> bool: ...
  1230. @property
  1231. def f_contiguous(self) -> bool: ...
  1232. @property
  1233. def farray(self) -> bool: ...
  1234. @property
  1235. def fnc(self) -> bool: ...
  1236. @property
  1237. def forc(self) -> bool: ...
  1238. @property
  1239. def fortran(self) -> bool: ...
  1240. @property
  1241. def num(self) -> int: ...
  1242. @property
  1243. def owndata(self) -> bool: ...
  1244. def __getitem__(self, key: _GetItemKeys) -> bool: ...
  1245. def __setitem__(self, key: _SetItemKeys, value: bool) -> None: ...
  1246. def nested_iters(
  1247. op: ArrayLike | Sequence[ArrayLike],
  1248. axes: Sequence[Sequence[SupportsIndex]],
  1249. flags: Sequence[_NDIterFlagsKind] | None = ...,
  1250. op_flags: Sequence[Sequence[_NDIterFlagsOp]] | None = ...,
  1251. op_dtypes: DTypeLike | Sequence[DTypeLike | None] | None = ...,
  1252. order: _OrderKACF = ...,
  1253. casting: _CastingKind = ...,
  1254. buffersize: SupportsIndex = ...,
  1255. ) -> tuple[nditer, ...]: ...