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
79
80
81
82
83
84
85
| from typing import (
| Literal as L,
| Any,
| overload,
| TypeVar,
| Protocol,
| )
|
| from numpy import generic
|
| from numpy._typing import (
| ArrayLike,
| NDArray,
| _ArrayLikeInt,
| _ArrayLike,
| )
|
| _SCT = TypeVar("_SCT", bound=generic)
|
| class _ModeFunc(Protocol):
| def __call__(
| self,
| vector: NDArray[Any],
| iaxis_pad_width: tuple[int, int],
| iaxis: int,
| kwargs: dict[str, Any],
| /,
| ) -> None: ...
|
| _ModeKind = L[
| "constant",
| "edge",
| "linear_ramp",
| "maximum",
| "mean",
| "median",
| "minimum",
| "reflect",
| "symmetric",
| "wrap",
| "empty",
| ]
|
| __all__: list[str]
|
| # TODO: In practice each keyword argument is exclusive to one or more
| # specific modes. Consider adding more overloads to express this in the future.
|
| # Expand `**kwargs` into explicit keyword-only arguments
| @overload
| def pad(
| array: _ArrayLike[_SCT],
| pad_width: _ArrayLikeInt,
| mode: _ModeKind = ...,
| *,
| stat_length: None | _ArrayLikeInt = ...,
| constant_values: ArrayLike = ...,
| end_values: ArrayLike = ...,
| reflect_type: L["odd", "even"] = ...,
| ) -> NDArray[_SCT]: ...
| @overload
| def pad(
| array: ArrayLike,
| pad_width: _ArrayLikeInt,
| mode: _ModeKind = ...,
| *,
| stat_length: None | _ArrayLikeInt = ...,
| constant_values: ArrayLike = ...,
| end_values: ArrayLike = ...,
| reflect_type: L["odd", "even"] = ...,
| ) -> NDArray[Any]: ...
| @overload
| def pad(
| array: _ArrayLike[_SCT],
| pad_width: _ArrayLikeInt,
| mode: _ModeFunc,
| **kwargs: Any,
| ) -> NDArray[_SCT]: ...
| @overload
| def pad(
| array: ArrayLike,
| pad_width: _ArrayLikeInt,
| mode: _ModeFunc,
| **kwargs: Any,
| ) -> NDArray[Any]: ...
|
|