8000 TYP: fix stubtest errors in ``numpy.lib._function_base_impl`` · numpy/numpy@4a20c51 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4a20c51

Browse files
jorenhamcharris
authored andcommitted
TYP: fix stubtest errors in numpy.lib._function_base_impl
Ported from numpy/numtype#233 --- This fixes the signatures of the following public `numpy` members: - `average` - `ma.average` - `median` - `corrcoef`
1 parent 79b8c26 commit 4a20c51

File tree

2 files changed

+95
-93
lines changed

2 files changed

+95
-93
lines changed

numpy/lib/_function_base_impl.pyi

Lines changed: 93 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,60 @@
1-
from collections.abc import Sequence, Callable, Iterable
1+
# ruff: noqa: ANN401
2+
from collections.abc import Callable, Iterable, Sequence
23
from typing import (
3-
Concatenate,
4-
Literal as L,
54
Any,
5+
Concatenate,
66
ParamSpec,
7-
TypeAlias,
8-
TypeVar,
9-
overload,
107
Protocol,
118
SupportsIndex,
129
SupportsInt,
13-
TypeGuard,
14-
type_check_only
10+
TypeAlias,
11+
TypeVar,
12+
overload,
13+
type_check_only,
1514
)
16-
from typing_extensions import deprecated
15+
from typing import Literal as L
16+
17+
from _typeshed import Incomplete
18+
from typing_extensions import TypeIs, deprecated
1719

1820
import numpy as np
1921
from numpy import (
20-
vectorize,
22+
_OrderKACF,
23+
bool_,
24+
complex128,
25+
complexfloating,
26+
datetime64,
27+
float64,
28+
floating,
2129
generic,
2230
integer,
23-
floating,
24-
complexfloating,
2531
intp,
26-
float64,
27-
complex128,
28-
timedelta64,
29-
datetime64,
3032
object_,
31-
bool_,
32-
_OrderKACF,
33+
timedelta64,
34+
vectorize,
3335
)
3436
from numpy._core.multiarray import bincount
37+
from numpy._globals import _NoValueType
3538
from numpy._typing import (
36-
NDArray,
3739
ArrayLike,
3840
DTypeLike,
41+
NDArray,
3942
_ArrayLike,
40-
_DTypeLike,
41-
_ShapeLike,
4243
_ArrayLikeBool_co,
43-
_ArrayLikeInt_co,
44-
_ArrayLikeFloat_co,
4544
_ArrayLikeComplex_co,
46-
_ArrayLikeNumber_co,
47-
_ArrayLikeTD64_co,
4845
_ArrayLikeDT64_co,
46+
_ArrayLikeFloat_co,
47+
_ArrayLikeInt_co,
48+
_ArrayLikeNumber_co,
4949
_ArrayLikeObject_co,
50-
_FloatLike_co,
50+
_ArrayLikeTD64_co,
5151
_ComplexLike_co,
52+
_DTypeLike,
53+
_FloatLike_co,
54+
_NestedSequence,
5255
_NumberLike_co,
5356
_ScalarLike_co,
54-
_NestedSequence
57+
_ShapeLike,
5558
)
5659

5760
__all__ = [
@@ -106,12 +109,14 @@ _2Tuple: TypeAlias = tuple[_T, _T]
106109

107110
@type_check_only
108111
class _TrimZerosSequence(Protocol[_T_co]):
109-
def __len__(self) -> int: ...
112+
def __len__(self, /) -> int: ...
110113
@overload
111114
def __getitem__(self, key: int, /) -> object: ...
112115
@overload
113116
def __getitem__(self, key: slice, /) -> _T_co: ...
114117

118+
###
119+
115120
@overload
116121
def rot90(
117122
m: _ArrayLike[_SCT],
@@ -134,72 +139,62 @@ def flip(m: _ArrayLike[_SCT], axis: None | _ShapeLike = ...) -> NDArray[_SCT]: .
134139
@overload
135140
def flip(m: ArrayLike, axis: None | _ShapeLike = ...) -> NDArray[Any]: ...
136141

137-
def iterable(y: object) -> TypeGuard[Iterable[Any]]: ...
142+
def iterable(y: object) -> TypeIs[Iterable[Any]]: ...
138143

139144
@overload
140145
def average(
141146
a: _ArrayLikeFloat_co,
142-
axis: None = ...,
143-
weights: None | _ArrayLikeFloat_co= ...,
144-
returned: L[False] = ...,
145-
keepdims: L[False] = ...,
146-
) -> floating[Any]: ...
147-
@overload
148-
def average(
149-
a: _ArrayLikeComplex_co,
150-
axis: None = ...,
151-
weights: None | _ArrayLikeComplex_co = ...,
152-
returned: L[False] = ...,
153-
keepdims: L[False] = ...,
154-
) -> complexfloating[Any, Any]: ...
155-
@overload
156-
def average(
157-
a: _ArrayLikeObject_co,
158-
axis: None = ...,
159-
weights: None | Any = ...,
160-
returned: L[False] = ...,
161-
keepdims: L[False] = ...,
162-
) -> Any: ...
147+
axis: None = None,
148+
weights: _ArrayLikeFloat_co | None = None,
149+
returned: L[False] = False,
150+
*,
151+
keepdims: L[False] | _NoValueType = ...,
152+
) -> floating: ...
163153
@overload
164154
def average(
165155
a: _ArrayLikeFloat_co,
166-
axis: None = ...,
167-
weights: None | _ArrayLikeFloat_co= ...,
168-
returned: L[True] = ...,
169-
keepdims: L[False] = ...,
170-
) -> _2Tuple[floating[Any]]: ...
156+
axis: None = None,
157+
weights: _ArrayLikeFloat_co | None = None,
158+
*,
159+
returned: L[True],
160+
keepdims: L[False] | _NoValueType = ...,
161+
) -> _2Tuple[floating]: ...
171162
@overload
172163
def average(
173164
a: _ArrayLikeComplex_co,
174-
axis: None = ...,
175-
weights: None | _ArrayLikeComplex_co = ...,
176-
returned: L[True] = ...,
177-
keepdims: L[False] = ...,
178-
) -> _2Tuple[complexfloating[Any, Any]]: ...
165+
axis: None = None,
166+
weights: _ArrayLikeComplex_co | None = None,
167+
returned: L[False] = False,
168+
*,
169+
keepdims: L[False] | _NoValueType = ...,
170+
) -> complexfloating: ...
179171
@overload
180172
def average(
181-
a: _ArrayLikeObject_co,
182-
axis: None = ...,
183-
weights: None | Any = ...,
184-
returned: L[True] = ...,
185-
keepdims: L[False] = ...,
186-
) -> _2Tuple[Any]: ...
173+
a: _ArrayLikeComplex_co,
174+
axis: None = None,
175+
weights: _ArrayLikeComplex_co | None = None,
176+
*,
177+
returned: L[True],
178+
keepdims: L[False] | _NoValueType = ...,
179+
) -> _2Tuple[complexfloating]: ...
187180
@overload
188181
def average(
189182
a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
190-
axis: None | _ShapeLike = ...,
191-
weights: None | Any = ...,
192-
returned: L[False] = ...,
193-
keepdims: bool = ...,
194-
) -> Any: ...
183+
axis: _ShapeLike | None = None,
184+
weights: object | None = None,
185+
*,
186+
returned: L[True],
187+
keepdims: bool | bool_ | _NoValueType = ...,
188+
) -> _2Tuple[Incomplete]: ...
195189
@overload
196190
def average(
197191
a: _ArrayLikeComplex_co | _ArrayLikeObject_co,
198-
axis: None | _ShapeLike = ...,
199-
weights: None | Any = ...,
200-
returned: L[True] = ...,
201-
keepdims: bool = ...,
202-
) -> _2Tuple[Any]: ...
192+
axis: _ShapeLike | None = None,
193+
weights: object | None = None,
194+
returned: bool | bool_ = False,
195+
*,
196+
keepdims: bool | bool_ | _NoValueType = ...,
197+
) -> Incomplete: ...
203198

204199
@overload
205200
def asarray_chkfinite(
@@ -478,38 +473,46 @@ def cov(
478473
dtype: DTypeLike,
479474
) -> NDArray[Any]: ...
480475

481-
# NOTE `bias` and `ddof` have been deprecated
476+
# NOTE `bias` and `ddof` are deprecated and ignored
482477
@overload
483478
def corrcoef(
484479
m: _ArrayLikeFloat_co,
485-
y: None | _ArrayLikeFloat_co = ...,
486-
rowvar: bool = ...,
480+
y: _ArrayLikeFloat_co | None = None,
481+
rowvar: bool = True,
482+
bias: _NoValueType = ...,
483+
ddof: _NoValueType = ...,
487484
*,
488-
dtype: None = ...,
489-
) -> NDArray[floating[Any]]: ...
485+
dtype: None = None,
486+
) -> NDArray[floating]: ...
490487
@overload
491488
def corrcoef(
492489
m: _ArrayLikeComplex_co,
493-
y: None | _ArrayLikeComplex_co = ...,
494-
rowvar: bool = ...,
490+
y: _ArrayLikeComplex_co | None = None,
491+
rowvar: bool = True,
492+
bias: _NoValueType = ...,
493+
ddof: _NoValueType = ...,
495494
*,
496-
dtype: None = ...,
497-
) -> NDArray[complexfloating[Any, Any]]: ...
495+
dtype: None = None,
496+
) -> NDArray[complexfloating]: ...
498497
@overload
499498
def corrcoef(
500499
m: _ArrayLikeComplex_co,
501-
y: None | _ArrayLikeComplex_co = ...,
502-
rowvar: bool = ...,
500+
y: _ArrayLikeComplex_co | None = None,
501+
rowvar: bool = True,
502+
bias: _NoValueType = ...,
503+
ddof: _NoValueType = ...,
503504
*,
504505
dtype: _DTypeLike[_SCT],
505506
) -> NDArray[_SCT]: ...
506507
@overload
507508
def corrcoef(
508509
m: _ArrayLikeComplex_co,
509-
y: None | _ArrayLikeComplex_co = ...,
510-
rowvar: bool = ...,
510+
y: _ArrayLikeComplex_co | None = None,
511+
rowvar: bool = True,
512+
bias: _NoValueType = ...,
513+
ddof: _NoValueType = ...,
511514
*,
512-
dtype: DTypeLike,
515+
dtype: DTypeLike | None = None,
513516
) -> NDArray[Any]: ...
514517

515518
def blackman(M: _FloatLike_co) -> NDArray[floating[Any]]: ...
@@ -581,7 +584,6 @@ def median(
581584
a: _ArrayLikeFloat_co | _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co,
582585
axis: None | _ShapeLike,
583586
out: _ArrayType,
584-
/,
585587
overwrite_input: bool = ...,
586588
keepdims: bool = ...,
587589
) -> _ArrayType: ...
@@ -749,7 +751,6 @@ def percentile(
749751
q: _ArrayLikeFloat_co,
750752
axis: None | _ShapeLike,
751753
out: _ArrayType,
752-
/,
753754
overwrite_input: bool = ...,
754755
method: _MethodKind = ...,
755756
keepdims: bool = ...,

numpy/ma/extras.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from typing import Any
22

3+
from numpy.lib._function_base_impl import average
34
from numpy.lib._index_tricks_impl import AxisConcatenator
5+
46
from .core import dot, mask_rowcols
57

68
__all__ = [
@@ -88,7 +90,6 @@ diagflat: _fromnxfunction_single
8890

8991
def apply_along_axis(func1d, axis, arr, *args, **kwargs): ...
9092
def apply_over_axes(func, a, axes): ...
91-
def average(a, axis=..., weights=..., returned=..., keepdims=...): ...
9293
def median(a, axis=..., out=..., overwrite_input=..., keepdims=...): ...
9394
def compress_nd(x, axis=...): ...
9495
def compress_rowcols(x, axis=...): ...

0 commit comments

Comments
 (0)
0