| | import os |
| | import sys |
| | import ast |
| | import types |
| | import warnings |
| | import unittest |
| | import contextlib |
| | from re import Pattern |
| | from collections.abc import Callable, Iterable, Sequence |
| | from typing import ( |
| | Literal as L, |
| | Any, |
| | AnyStr, |
| | ClassVar, |
| | NoReturn, |
| | overload, |
| | type_check_only, |
| | TypeVar, |
| | Final, |
| | SupportsIndex, |
| | ParamSpec |
| | ) |
| |
|
| | import numpy as np |
| | from numpy import number, object_, _FloatValue |
| | from numpy._typing import ( |
| | NDArray, |
| | ArrayLike, |
| | DTypeLike, |
| | _ArrayLikeNumber_co, |
| | _ArrayLikeObject_co, |
| | _ArrayLikeTD64_co, |
| | _ArrayLikeDT64_co, |
| | ) |
| |
|
| | from unittest.case import ( |
| | SkipTest as SkipTest, |
| | ) |
| |
|
| | _P = ParamSpec("_P") |
| | _T = TypeVar("_T") |
| | _ET = TypeVar("_ET", bound=BaseException) |
| | _FT = TypeVar("_FT", bound=Callable[..., Any]) |
| |
|
| | # Must return a bool or an ndarray/generic type |
| | # that is supported by `np.logical_and.reduce` |
| | _ComparisonFunc = Callable[ |
| | [NDArray[Any], NDArray[Any]], |
| | ( |
| | bool |
| | | np.bool |
| | | number[Any] |
| | | NDArray[np.bool | number[Any] | object_] |
| | ) |
| | ] |
| |
|
| | __all__: list[str] |
| | |
| | class KnownFailureException(Exception): ... |
| | class IgnoreException(Exception): ... |
| | |
| | class clear_and_catch_warnings(warnings.catch_warnings): |
| | class_modules: ClassVar[tuple[types.ModuleType, ...]] |
| | modules: set[types.ModuleType] |
| | @overload |
| | def __new__( |
| | cls, |
| | record: L[False] = ..., |
| | modules: Iterable[types.ModuleType] = ..., |
| | ) -> _clear_and_catch_warnings_without_records: ... |
| | @overload |
| | def __new__( |
| | cls, |
| | record: L[True], |
| | modules: Iterable[types.ModuleType] = ..., |
| | ) -> _clear_and_catch_warnings_with_records: ... |
| | @overload |
| | def __new__( |
| | cls, |
| | record: bool, |
| | modules: Iterable[types.ModuleType] = ..., |
| | ) -> clear_and_catch_warnings: ... |
| | def __enter__(self) -> None | list[warnings.WarningMessage]: ... |
| | def __exit__( |
| | self, |
| | __exc_type: None | type[BaseException] = ..., |
| | __exc_val: None | BaseException = ..., |
| | __exc_tb: None | types.TracebackType = ..., |
| | ) -> None: ... |
| | |
| | # 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: ... |
| | |
| | class suppress_warnings: |
| | log: list[warnings.WarningMessage] |
| | def __init__( |
| | self, |
| | forwarding_rule: L["always", "module", "once", "location"] = ..., |
| | ) -> None: ... |
| | def filter( |
| | self, |
| | category: type[Warning] = ..., |
| | message: str = ..., |
| | module: None | types.ModuleType = ..., |
| | ) -> None: ... |
| | def record( |
| | self, |
| | category: type[Warning] = ..., |
| | message: str = ..., |
| | module: None | types.ModuleType = ..., |
| | ) -> list[warnings.WarningMessage]: ... |
| | def __enter__(self: _T) -> _T: ... |
| | def __exit__( |
| | self, |
| | __exc_type: None | type[BaseException] = ..., |
| | __exc_val: None | BaseException = ..., |
| | __exc_tb: None | types.TracebackType = ..., |
| | ) -> None: ... |
| | def __call__(self, func: _FT) -> _FT: ... |
| | |
| | verbose: int |
| | IS_PYPY: Final[bool] |
| | IS_PYSTON: Final[bool] |
| | HAS_REFCOUNT: Final[bool] |
| | HAS_LAPACK64: Final[bool] |
| | |
| | def assert_(val: object, msg: str | Callable[[], str] = ...) -> None: ... |
| | |
| | # 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: str | bytes | os.PathLike[Any] = ...) -> None | int: ... |
| | else: |
| | def memusage() -> NoReturn: ... |
| | |
| | if sys.platform == "linux": |
| | def jiffies( |
| | _proc_pid_stat: str | bytes | os.PathLike[Any] = ..., |
| | _load_time: list[float] = ..., |
| | ) -> int: ... |
| | else: |
| | def jiffies(_load_time: list[float] = ...) -> int: ... |
| | |
| | def build_err_msg( |
| | arrays: Iterable[object], |
| | err_msg: str, |
| | header: str = ..., |
| | verbose: bool = ..., |
| | names: Sequence[str] = ..., |
| | precision: None | SupportsIndex = ..., |
| | ) -> str: ... |
| | |
| | def assert_equal( |
| | actual: object, |
| | desired: object, |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | |
| | def print_assert_equal( |
| | test_string: str, |
| | actual: object, |
| | desired: object, |
| | ) -> None: ... |
| | |
| | def assert_almost_equal( |
| | actual: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | desired: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | decimal: int = ..., |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | ) -> None: ... |
| | |
| | # Anything that can be coerced into `builtins.float` |
| | def assert_approx_equal( |
| | actual: _FloatValue, |
| | desired: _FloatValue, |
| | significant: int = ..., |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | ) -> None: ... |
| | |
| | def assert_array_compare( |
| | comparison: _ComparisonFunc, |
| | x: ArrayLike, |
| | y: ArrayLike, |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | header: str = ..., |
| | precision: SupportsIndex = ..., |
| | equal_nan: bool = ..., |
| | equal_inf: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | |
| | def assert_array_equal( |
| | x: ArrayLike, |
| | y: ArrayLike, |
| | /, |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | |
| | def assert_array_almost_equal( |
| | x: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | y: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | /, |
| | decimal: float = ..., |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | ) -> None: ... |
| | |
| | @overload |
| | def assert_array_less( |
| | x: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | y: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | @overload |
| | def assert_array_less( |
| | x: _ArrayLikeTD64_co, |
| | y: _ArrayLikeTD64_co, |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | @overload |
| | def assert_array_less( |
| | x: _ArrayLikeDT64_co, |
| | y: _ArrayLikeDT64_co, |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | |
| | def runstring( |
| | astr: str | bytes | types.CodeType, |
| | dict: None | dict[str, Any], |
| | ) -> Any: ... |
| | |
| | def assert_string_equal(actual: str, desired: str) -> None: ... |
| | |
| | def rundocs( |
| | filename: None | str | os.PathLike[str] = ..., |
| | raise_on_error: bool = ..., |
| | ) -> None: ... |
| | |
| | def raises(*args: type[BaseException]) -> Callable[[_FT], _FT]: ... |
| | |
| | @overload |
| | def assert_raises( # type: ignore |
| | expected_exception: type[BaseException] | tuple[type[BaseException], ...], |
| | callable: Callable[_P, Any], |
| | /, |
| | *args: _P.args, |
| | **kwargs: _P.kwargs, |
| | ) -> None: ... |
| | @overload |
| | def assert_raises( |
| | expected_exception: type[_ET] | tuple[type[_ET], ...], |
| | *, |
| | msg: None | str = ..., |
| | ) -> unittest.case._AssertRaisesContext[_ET]: ... |
| | |
| | @overload |
| | def assert_raises_regex( |
| | expected_exception: type[BaseException] | tuple[type[BaseException], ...], |
| | expected_regex: str | bytes | Pattern[Any], |
| | callable: Callable[_P, Any], |
| | /, |
| | *args: _P.args, |
| | **kwargs: _P.kwargs, |
| | ) -> None: ... |
| | @overload |
| | def assert_raises_regex( |
| | expected_exception: type[_ET] | tuple[type[_ET], ...], |
| | expected_regex: str | bytes | Pattern[Any], |
| | *, |
| | msg: None | str = ..., |
| | ) -> unittest.case._AssertRaisesContext[_ET]: ... |
| | |
| | def decorate_methods( |
| | cls: type[Any], |
| | decorator: Callable[[Callable[..., Any]], Any], |
| | testmatch: None | str | bytes | Pattern[Any] = ..., |
| | ) -> None: ... |
| | |
| | def measure( |
| | code_str: str | bytes | ast.mod | ast.AST, |
| | times: int = ..., |
| | label: None | str = ..., |
| | ) -> float: ... |
| | |
| | @overload |
| | def assert_allclose( |
| | actual: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | desired: _ArrayLikeNumber_co | _ArrayLikeObject_co, |
| | rtol: float = ..., |
| | atol: float = ..., |
| | equal_nan: bool = ..., |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | @overload |
| | def assert_allclose( |
| | actual: _ArrayLikeTD64_co, |
| | desired: _ArrayLikeTD64_co, |
| | rtol: float = ..., |
| | atol: float = ..., |
| | equal_nan: bool = ..., |
| | err_msg: object = ..., |
| | verbose: bool = ..., |
| | *, |
| | strict: bool = ... |
| | ) -> None: ... |
| | |
| | def assert_array_almost_equal_nulp( |
| | x: _ArrayLikeNumber_co, |
| | y: _ArrayLikeNumber_co, |
| | nulp: float = ..., |
| | ) -> None: ... |
| | |
| | def assert_array_max_ulp( |
| | a: _ArrayLikeNumber_co, |
| | b: _ArrayLikeNumber_co, |
| | maxulp: float = ..., |
| | dtype: DTypeLike = ..., |
| | ) -> NDArray[Any]: ... |
| | |
| | @overload |
| | def assert_warns( |
| | warning_class: type[Warning], |
| | ) -> contextlib._GeneratorContextManager[None]: ... |
| | @overload |
| | def assert_warns( |
| | warning_class: type[Warning], |
| | func: Callable[_P, _T], |
| | /, |
| | *args: _P.args, |
| | **kwargs: _P.kwargs, |
| | ) -> _T: ... |
| | |
| | @overload |
| | def assert_no_warnings() -> contextlib._GeneratorContextManager[None]: ... |
| | @overload |
| | def assert_no_warnings( |
| | func: Callable[_P, _T], |
| | /, |
| | *args: _P.args, |
| | **kwargs: _P.kwargs, |
| | ) -> _T: ... |
| | |
| | @overload |
| | def tempdir( |
| | suffix: None = ..., |
| | prefix: None = ..., |
| | dir: None = ..., |
| | ) -> contextlib._GeneratorContextManager[str]: ... |
| | @overload |
| | def tempdir( |
| | suffix: None | AnyStr = ..., |
| | prefix: None | AnyStr = ..., |
| | dir: None | AnyStr | os.PathLike[AnyStr] = ..., |
| | ) -> contextlib._GeneratorContextManager[AnyStr]: ... |
| | |
| | @overload |
| | def temppath( |
| | suffix: None = ..., |
| | prefix: None = ..., |
| | dir: None = ..., |
| | text: bool = ..., |
| | ) -> contextlib._GeneratorContextManager[str]: ... |
| | @overload |
| | def temppath( |
| | suffix: None | AnyStr = ..., |
| | prefix: None | AnyStr = ..., |
| | dir: None | AnyStr | os.PathLike[AnyStr] = ..., |
| | text: bool = ..., |
| | ) -> contextlib._GeneratorContextManager[AnyStr]: ... |
| | |
| | @overload |
| | def assert_no_gc_cycles() -> contextlib._GeneratorContextManager[None]: ... |
| | @overload |
| | def assert_no_gc_cycles( |
| | func: Callable[_P, Any], |
| | /, |
| | *args: _P.args, |
| | **kwargs: _P.kwargs, |
| | ) -> None: ... |
| | |
| | def break_cycles() -> None: ... |
| | |