| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 |
- import ast
- import sys
- import types
- import unittest
- import warnings
- from collections.abc import Callable, Iterable, Sequence
- from contextlib import _GeneratorContextManager
- from pathlib import Path
- from re import Pattern
- from typing import (
- Any,
- AnyStr,
- ClassVar,
- Final,
- Generic,
- NoReturn,
- SupportsIndex,
- TypeAlias,
- overload,
- type_check_only,
- )
- from typing import Literal as L
- from unittest.case import SkipTest
- from _typeshed import ConvertibleToFloat, GenericPath, StrOrBytesPath, StrPath
- from typing_extensions import ParamSpec, Self, TypeVar, TypeVarTuple, Unpack
- import numpy as np
- from numpy._typing import (
- ArrayLike,
- DTypeLike,
- NDArray,
- _ArrayLikeDT64_co,
- _ArrayLikeNumber_co,
- _ArrayLikeObject_co,
- _ArrayLikeTD64_co,
- )
- __all__ = [ # noqa: RUF022
- "IS_EDITABLE",
- "IS_MUSL",
- "IS_PYPY",
- "IS_PYSTON",
- "IS_WASM",
- "HAS_LAPACK64",
- "HAS_REFCOUNT",
- "NOGIL_BUILD",
- "assert_",
- "assert_array_almost_equal_nulp",
- "assert_raises_regex",
- "assert_array_max_ulp",
- "assert_warns",
- "assert_no_warnings",
- "assert_allclose",
- "assert_equal",
- "assert_almost_equal",
- "assert_approx_equal",
- "assert_array_equal",
- "assert_array_less",
- "assert_string_equal",
- "assert_array_almost_equal",
- "assert_raises",
- "build_err_msg",
- "decorate_methods",
- "jiffies",
- "memusage",
- "print_assert_equal",
- "rundocs",
- "runstring",
- "verbose",
- "measure",
- "IgnoreException",
- "clear_and_catch_warnings",
- "SkipTest",
- "KnownFailureException",
- "temppath",
- "tempdir",
- "suppress_warnings",
- "assert_array_compare",
- "assert_no_gc_cycles",
- "break_cycles",
- "check_support_sve",
- "run_threaded",
- ]
- ###
- _T = TypeVar("_T")
- _Ts = TypeVarTuple("_Ts")
- _Tss = ParamSpec("_Tss")
- _ET = TypeVar("_ET", bound=BaseException, default=BaseException)
- _FT = TypeVar("_FT", bound=Callable[..., Any])
- _W_co = TypeVar("_W_co", bound=_WarnLog | None, default=_WarnLog | None, covariant=True)
- _T_or_bool = TypeVar("_T_or_bool", default=bool)
- _StrLike: TypeAlias = str | bytes
- _RegexLike: TypeAlias = _StrLike | Pattern[Any]
- _NumericArrayLike: TypeAlias = _ArrayLikeNumber_co | _ArrayLikeObject_co
- _ExceptionSpec: TypeAlias = type[_ET] | tuple[type[_ET], ...]
- _WarningSpec: TypeAlias = type[Warning]
- _WarnLog: TypeAlias = list[warnings.WarningMessage]
- _ToModules: TypeAlias = Iterable[types.ModuleType]
- # Must return a bool or an ndarray/generic type that is supported by `np.logical_and.reduce`
- _ComparisonFunc: TypeAlias = Callable[
- [NDArray[Any], NDArray[Any]],
- bool | np.bool | np.number | NDArray[np.bool | np.number | np.object_],
- ]
- # Type-check only `clear_and_catch_warnings` subclasses for both values of the
- # `record` parameter. Copied from the stdlib `warnings` stubs.
- @type_check_only
- class _clear_and_catch_warnings_with_records(clear_and_catch_warnings):
- def __enter__(self) -> list[warnings.WarningMessage]: ...
- @type_check_only
- class _clear_and_catch_warnings_without_records(clear_and_catch_warnings):
- def __enter__(self) -> None: ...
- ###
- verbose: int = 0
- NUMPY_ROOT: Final[Path] = ...
- IS_INSTALLED: Final[bool] = ...
- IS_EDITABLE: Final[bool] = ...
- IS_MUSL: Final[bool] = ...
- IS_PYPY: Final[bool] = ...
- IS_PYSTON: Final[bool] = ...
- IS_WASM: Final[bool] = ...
- HAS_REFCOUNT: Final[bool] = ...
- HAS_LAPACK64: Final[bool] = ...
- NOGIL_BUILD: Final[bool] = ...
- class KnownFailureException(Exception): ...
- class IgnoreException(Exception): ...
- # NOTE: `warnings.catch_warnings` is incorrectly defined as invariant in typeshed
- class clear_and_catch_warnings(warnings.catch_warnings[_W_co], Generic[_W_co]): # type: ignore[type-var] # pyright: ignore[reportInvalidTypeArguments]
- class_modules: ClassVar[tuple[types.ModuleType, ...]] = ()
- modules: Final[set[types.ModuleType]]
- @overload # record: True
- def __init__(self: clear_and_catch_warnings[_WarnLog], /, record: L[True], modules: _ToModules = ()) -> None: ...
- @overload # record: False (default)
- def __init__(self: clear_and_catch_warnings[None], /, record: L[False] = False, modules: _ToModules = ()) -> None: ...
- @overload # record; bool
- def __init__(self, /, record: bool, modules: _ToModules = ()) -> None: ...
- class suppress_warnings:
- log: Final[_WarnLog]
- def __init__(self, /, forwarding_rule: L["always", "module", "once", "location"] = "always") -> None: ...
- def __enter__(self) -> Self: ...
- def __exit__(self, cls: type[BaseException] | None, exc: BaseException | None, tb: types.TracebackType | None, /) -> None: ...
- def __call__(self, /, func: _FT) -> _FT: ...
- #
- def filter(self, /, category: type[Warning] = ..., message: str = "", module: types.ModuleType | None = None) -> None: ...
- def record(self, /, category: type[Warning] = ..., message: str = "", module: types.ModuleType | None = None) -> _WarnLog: ...
- # Contrary to runtime we can't do `os.name` checks while type checking,
- # only `sys.platform` checks
- if sys.platform == "win32" or sys.platform == "cygwin":
- def memusage(processName: str = ..., instance: int = ...) -> int: ...
- elif sys.platform == "linux":
- def memusage(_proc_pid_stat: StrOrBytesPath = ...) -> int | None: ...
- else:
- def memusage() -> NoReturn: ...
- if sys.platform == "linux":
- def jiffies(_proc_pid_stat: StrOrBytesPath = ..., _load_time: list[float] = []) -> int: ...
- else:
- def jiffies(_load_time: list[float] = []) -> int: ...
- #
- def build_err_msg(
- arrays: Iterable[object],
- err_msg: object,
- header: str = ...,
- verbose: bool = ...,
- names: Sequence[str] = ...,
- precision: SupportsIndex | None = ...,
- ) -> str: ...
- #
- def print_assert_equal(test_string: str, actual: object, desired: object) -> None: ...
- #
- def assert_(val: object, msg: str | Callable[[], str] = "") -> None: ...
- #
- def assert_equal(
- actual: object,
- desired: object,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- def assert_almost_equal(
- actual: _NumericArrayLike,
- desired: _NumericArrayLike,
- decimal: int = 7,
- err_msg: object = "",
- verbose: bool = True,
- ) -> None: ...
- #
- def assert_approx_equal(
- actual: ConvertibleToFloat,
- desired: ConvertibleToFloat,
- significant: int = 7,
- err_msg: object = "",
- verbose: bool = True,
- ) -> None: ...
- #
- def assert_array_compare(
- comparison: _ComparisonFunc,
- x: ArrayLike,
- y: ArrayLike,
- err_msg: object = "",
- verbose: bool = True,
- header: str = "",
- precision: SupportsIndex = 6,
- equal_nan: bool = True,
- equal_inf: bool = True,
- *,
- strict: bool = False,
- names: tuple[str, str] = ("ACTUAL", "DESIRED"),
- ) -> None: ...
- #
- def assert_array_equal(
- actual: object,
- desired: object,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- #
- def assert_array_almost_equal(
- actual: _NumericArrayLike,
- desired: _NumericArrayLike,
- decimal: float = 6,
- err_msg: object = "",
- verbose: bool = True,
- ) -> None: ...
- @overload
- def assert_array_less(
- x: _ArrayLikeDT64_co,
- y: _ArrayLikeDT64_co,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- @overload
- def assert_array_less(
- x: _ArrayLikeTD64_co,
- y: _ArrayLikeTD64_co,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- @overload
- def assert_array_less(
- x: _NumericArrayLike,
- y: _NumericArrayLike,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- #
- def assert_string_equal(actual: str, desired: str) -> None: ...
- #
- @overload
- def assert_raises(
- exception_class: _ExceptionSpec[_ET],
- /,
- *,
- msg: str | None = None,
- ) -> unittest.case._AssertRaisesContext[_ET]: ...
- @overload
- def assert_raises(
- exception_class: _ExceptionSpec,
- callable: Callable[_Tss, Any],
- /,
- *args: _Tss.args,
- **kwargs: _Tss.kwargs,
- ) -> None: ...
- #
- @overload
- def assert_raises_regex(
- exception_class: _ExceptionSpec[_ET],
- expected_regexp: _RegexLike,
- *,
- msg: str | None = None,
- ) -> unittest.case._AssertRaisesContext[_ET]: ...
- @overload
- def assert_raises_regex(
- exception_class: _ExceptionSpec,
- expected_regexp: _RegexLike,
- callable: Callable[_Tss, Any],
- *args: _Tss.args,
- **kwargs: _Tss.kwargs,
- ) -> None: ...
- #
- @overload
- def assert_allclose(
- actual: _ArrayLikeTD64_co,
- desired: _ArrayLikeTD64_co,
- rtol: float = 1e-7,
- atol: float = 0,
- equal_nan: bool = True,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- @overload
- def assert_allclose(
- actual: _NumericArrayLike,
- desired: _NumericArrayLike,
- rtol: float = 1e-7,
- atol: float = 0,
- equal_nan: bool = True,
- err_msg: object = "",
- verbose: bool = True,
- *,
- strict: bool = False,
- ) -> None: ...
- #
- def assert_array_almost_equal_nulp(
- x: _ArrayLikeNumber_co,
- y: _ArrayLikeNumber_co,
- nulp: float = 1,
- ) -> None: ...
- #
- def assert_array_max_ulp(
- a: _ArrayLikeNumber_co,
- b: _ArrayLikeNumber_co,
- maxulp: float = 1,
- dtype: DTypeLike | None = None,
- ) -> NDArray[Any]: ...
- #
- @overload
- def assert_warns(warning_class: _WarningSpec) -> _GeneratorContextManager[None]: ...
- @overload
- def assert_warns(warning_class: _WarningSpec, func: Callable[_Tss, _T], *args: _Tss.args, **kwargs: _Tss.kwargs) -> _T: ...
- #
- @overload
- def assert_no_warnings() -> _GeneratorContextManager[None]: ...
- @overload
- def assert_no_warnings(func: Callable[_Tss, _T], /, *args: _Tss.args, **kwargs: _Tss.kwargs) -> _T: ...
- #
- @overload
- def assert_no_gc_cycles() -> _GeneratorContextManager[None]: ...
- @overload
- def assert_no_gc_cycles(func: Callable[_Tss, Any], /, *args: _Tss.args, **kwargs: _Tss.kwargs) -> None: ...
- ###
- #
- @overload
- def tempdir(
- suffix: None = None,
- prefix: None = None,
- dir: None = None,
- ) -> _GeneratorContextManager[str]: ...
- @overload
- def tempdir(
- suffix: AnyStr | None = None,
- prefix: AnyStr | None = None,
- *,
- dir: GenericPath[AnyStr],
- ) -> _GeneratorContextManager[AnyStr]: ...
- @overload
- def tempdir(
- suffix: AnyStr | None = None,
- *,
- prefix: AnyStr,
- dir: GenericPath[AnyStr] | None = None,
- ) -> _GeneratorContextManager[AnyStr]: ...
- @overload
- def tempdir(
- suffix: AnyStr,
- prefix: AnyStr | None = None,
- dir: GenericPath[AnyStr] | None = None,
- ) -> _GeneratorContextManager[AnyStr]: ...
- #
- @overload
- def temppath(
- suffix: None = None,
- prefix: None = None,
- dir: None = None,
- text: bool = False,
- ) -> _GeneratorContextManager[str]: ...
- @overload
- def temppath(
- suffix: AnyStr | None,
- prefix: AnyStr | None,
- dir: GenericPath[AnyStr],
- text: bool = False,
- ) -> _GeneratorContextManager[AnyStr]: ...
- @overload
- def temppath(
- suffix: AnyStr | None = None,
- prefix: AnyStr | None = None,
- *,
- dir: GenericPath[AnyStr],
- text: bool = False,
- ) -> _GeneratorContextManager[AnyStr]: ...
- @overload
- def temppath(
- suffix: AnyStr | None,
- prefix: AnyStr,
- dir: GenericPath[AnyStr] | None = None,
- text: bool = False,
- ) -> _GeneratorContextManager[AnyStr]: ...
- @overload
- def temppath(
- suffix: AnyStr | None = None,
- *,
- prefix: AnyStr,
- dir: GenericPath[AnyStr] | None = None,
- text: bool = False,
- ) -> _GeneratorContextManager[AnyStr]: ...
- @overload
- def temppath(
- suffix: AnyStr,
- prefix: AnyStr | None = None,
- dir: GenericPath[AnyStr] | None = None,
- text: bool = False,
- ) -> _GeneratorContextManager[AnyStr]: ...
- #
- def check_support_sve(__cache: list[_T_or_bool] = []) -> _T_or_bool: ... # noqa: PYI063
- #
- def decorate_methods(
- cls: type,
- decorator: Callable[[Callable[..., Any]], Any],
- testmatch: _RegexLike | None = None,
- ) -> None: ...
- #
- @overload
- def run_threaded(
- func: Callable[[], None],
- max_workers: int = 8,
- pass_count: bool = False,
- pass_barrier: bool = False,
- outer_iterations: int = 1,
- prepare_args: None = None,
- ) -> None: ...
- @overload
- def run_threaded(
- func: Callable[[Unpack[_Ts]], None],
- max_workers: int,
- pass_count: bool,
- pass_barrier: bool,
- outer_iterations: int,
- prepare_args: tuple[Unpack[_Ts]],
- ) -> None: ...
- @overload
- def run_threaded(
- func: Callable[[Unpack[_Ts]], None],
- max_workers: int = 8,
- pass_count: bool = False,
- pass_barrier: bool = False,
- outer_iterations: int = 1,
- *,
- prepare_args: tuple[Unpack[_Ts]],
- ) -> None: ...
- #
- def runstring(astr: _StrLike | types.CodeType, dict: dict[str, Any] | None) -> Any: ... # noqa: ANN401
- def rundocs(filename: StrPath | None = None, raise_on_error: bool = True) -> None: ...
- def measure(code_str: _StrLike | ast.AST, times: int = 1, label: str | None = None) -> float: ...
- def break_cycles() -> None: ...
|