1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from collections.abc import Callable
from types import TracebackType
from typing import (
    Any,
    Final,
    Literal,
    TypeAlias,
    TypedDict,
    TypeVar,
    type_check_only,
)
 
from _typeshed import SupportsWrite
 
__all__ = [
    "seterr",
    "geterr",
    "setbufsize",
    "getbufsize",
    "seterrcall",
    "geterrcall",
    "errstate",
]
 
_ErrKind: TypeAlias = Literal["ignore", "warn", "raise", "call", "print", "log"]
_ErrCall: TypeAlias = Callable[[str, int], Any] | SupportsWrite[str]
 
_CallableT = TypeVar("_CallableT", bound=Callable[..., object])
 
@type_check_only
class _ErrDict(TypedDict):
    divide: _ErrKind
    over: _ErrKind
    under: _ErrKind
    invalid: _ErrKind
 
###
 
class _unspecified: ...
 
_Unspecified: Final[_unspecified]
 
class errstate:
    __slots__ = "_all", "_call", "_divide", "_invalid", "_over", "_token", "_under"
 
    def __init__(
        self,
        /,
        *,
        call: _ErrCall | _unspecified = ...,  # = _Unspecified
        all: _ErrKind | None = None,
        divide: _ErrKind | None = None,
        over: _ErrKind | None = None,
        under: _ErrKind | None = None,
        invalid: _ErrKind | None = None,
    ) -> None: ...
    def __call__(self, /, func: _CallableT) -> _CallableT: ...
    def __enter__(self) -> None: ...
    def __exit__(
        self,
        exc_type: type[BaseException] | None,
        exc_value: BaseException | None,
        traceback: TracebackType | None,
        /,
    ) -> None: ...
 
def seterr(
    all: _ErrKind | None = ...,
    divide: _ErrKind | None = ...,
    over: _ErrKind | None = ...,
    under: _ErrKind | None = ...,
    invalid: _ErrKind | None = ...,
) -> _ErrDict: ...
def geterr() -> _ErrDict: ...
def setbufsize(size: int) -> int: ...
def getbufsize() -> int: ...
def seterrcall(func: _ErrCall | None) -> _ErrCall | None: ...
def geterrcall() -> _ErrCall | None: ...