/ lib / numpy / lib / arraypad.pyi
arraypad.pyi
 1  from typing import (
 2      Literal as L,
 3      Any,
 4      overload,
 5      TypeVar,
 6      Protocol,
 7  )
 8  
 9  from numpy import generic
10  
11  from numpy._typing import (
12      ArrayLike,
13      NDArray,
14      _ArrayLikeInt,
15      _ArrayLike,
16  )
17  
18  _SCT = TypeVar("_SCT", bound=generic)
19  
20  class _ModeFunc(Protocol):
21      def __call__(
22          self,
23          vector: NDArray[Any],
24          iaxis_pad_width: tuple[int, int],
25          iaxis: int,
26          kwargs: dict[str, Any],
27          /,
28      ) -> None: ...
29  
30  _ModeKind = L[
31      "constant",
32      "edge",
33      "linear_ramp",
34      "maximum",
35      "mean",
36      "median",
37      "minimum",
38      "reflect",
39      "symmetric",
40      "wrap",
41      "empty",
42  ]
43  
44  __all__: list[str]
45  
46  # TODO: In practice each keyword argument is exclusive to one or more
47  # specific modes. Consider adding more overloads to express this in the future.
48  
49  # Expand `**kwargs` into explicit keyword-only arguments
50  @overload
51  def pad(
52      array: _ArrayLike[_SCT],
53      pad_width: _ArrayLikeInt,
54      mode: _ModeKind = ...,
55      *,
56      stat_length: None | _ArrayLikeInt = ...,
57      constant_values: ArrayLike = ...,
58      end_values: ArrayLike = ...,
59      reflect_type: L["odd", "even"] = ...,
60  ) -> NDArray[_SCT]: ...
61  @overload
62  def pad(
63      array: ArrayLike,
64      pad_width: _ArrayLikeInt,
65      mode: _ModeKind = ...,
66      *,
67      stat_length: None | _ArrayLikeInt = ...,
68      constant_values: ArrayLike = ...,
69      end_values: ArrayLike = ...,
70      reflect_type: L["odd", "even"] = ...,
71  ) -> NDArray[Any]: ...
72  @overload
73  def pad(
74      array: _ArrayLike[_SCT],
75      pad_width: _ArrayLikeInt,
76      mode: _ModeFunc,
77      **kwargs: Any,
78  ) -> NDArray[_SCT]: ...
79  @overload
80  def pad(
81      array: ArrayLike,
82      pad_width: _ArrayLikeInt,
83      mode: _ModeFunc,
84      **kwargs: Any,
85  ) -> NDArray[Any]: ...