summaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/numpy/testing/_private/utils.pyi
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/numpy/testing/_private/utils.pyi')
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/testing/_private/utils.pyi499
1 files changed, 499 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/numpy/testing/_private/utils.pyi b/.venv/lib/python3.12/site-packages/numpy/testing/_private/utils.pyi
new file mode 100644
index 0000000..4e3b60a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/testing/_private/utils.pyi
@@ -0,0 +1,499 @@
+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,
+ ParamSpec,
+ Self,
+ SupportsIndex,
+ TypeAlias,
+ TypeVarTuple,
+ 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 TypeVar
+
+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[[*_Ts], None],
+ max_workers: int,
+ pass_count: bool,
+ pass_barrier: bool,
+ outer_iterations: int,
+ prepare_args: tuple[*_Ts],
+) -> None: ...
+@overload
+def run_threaded(
+ func: Callable[[*_Ts], None],
+ max_workers: int = 8,
+ pass_count: bool = False,
+ pass_barrier: bool = False,
+ outer_iterations: int = 1,
+ *,
+ prepare_args: tuple[*_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: ...