500 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			500 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								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: ...
							 |