@@ -81,6 +81,9 @@ _C64_128: TypeAlias = np.complex128 | np.complex64
81
81
_WindowFuncFloat : TypeAlias = Callable [[onp .Array1D [np .float64 ]], onp .ToFloat1D ]
82
82
_WindowFuncComplex : TypeAlias = Callable [[onp .Array1D [np .complex128 ]], onp .ToFloat1D ]
83
83
84
+ # workaround for a strange bug in pyright's overlapping overload detection with `numpy<2.1`
85
+ _WorkaroundForPyright : TypeAlias = tuple [int ] | tuple [Any , ...]
86
+
84
87
@type_check_only
85
88
class _ConvMeasureDict (TypedDict ):
86
89
direct : float
@@ -112,8 +115,8 @@ def convolve(
112
115
) -> onp .ArrayND [np .bool_ ]: ...
113
116
@overload # generic
114
117
def convolve (
115
- in1 : onp .CanArrayND [ _NumericT , _AnyShapeT ],
116
- in2 : onp .CanArrayND [ _NumericT , _AnyShapeT ],
118
+ in1 : onp .CanArray [ _AnyShapeT , np . dtype [ _NumericT ] ],
119
+ in2 : onp .CanArray [ _AnyShapeT , np . dtype [ _NumericT ] ],
117
120
mode : onp .ConvolveMode = "full" ,
118
121
method : _ToConvMethod = "auto" ,
119
122
) -> onp .ArrayND [_NumericT , _AnyShapeT ]: ...
@@ -153,8 +156,8 @@ def correlate(
153
156
) -> onp .ArrayND [np .bool_ ]: ...
154
157
@overload # generic
155
158
def correlate (
156
- in1 : onp .CanArrayND [ _NumericT , _AnyShapeT ],
157
- in2 : onp .CanArrayND [ _NumericT , _AnyShapeT ],
159
+ in1 : onp .CanArray [ _AnyShapeT , np . dtype [ _NumericT ] ],
160
+ in2 : onp .CanArray [ _AnyShapeT , np . dtype [ _NumericT ] ],
158
161
mode : onp .ConvolveMode = "full" ,
159
162
method : _ToConvMethod = "auto" ,
160
163
) -> onp .ArrayND [_NumericT , _AnyShapeT ]: ...
@@ -353,7 +356,7 @@ def fftconvolve(
353
356
@overload # fallback
354
357
def fftconvolve (
355
358
in1 : onp .ToComplexND , in2 : onp .ToComplexND , mode : onp .ConvolveMode = "full" , axes : AnyShape | None = None
356
- ) -> onp .ArrayND [Any ]: ...
359
+ ) -> onp .ArrayND [Any , _WorkaroundForPyright ]: ...
357
360
358
361
# NOTE: keep in sync with `fftconvolve`
359
362
@overload # float32 | float16, float32 | float16, generic shape
@@ -389,15 +392,15 @@ def oaconvolve(
389
392
@overload # fallback
390
393
def oaconvolve (
391
394
in1 : onp .ToComplexND , in2 : onp .ToComplexND , mode : onp .ConvolveMode = "full" , axes : AnyShape | None = None
392
- ) -> onp .ArrayND [Any ]: ...
395
+ ) -> onp .ArrayND [Any , _WorkaroundForPyright ]: ...
393
396
394
397
#
395
398
@overload # +float64, +float64
396
399
def deconvolve (signal : onp .ToFloat64_1D , divisor : onp .ToFloat64_1D ) -> _Tuple2 [onp .Array1D [np .float64 ]]: ...
397
400
@overload # ~longdouble, +floating
398
- def deconvolve (signal : onp .ToJustLongDouble1D , divisor : onp .ToFloat1D ) -> _Tuple2 [onp .Array1D [np . longdouble ]]: ...
401
+ def deconvolve (signal : onp .ToJustLongDouble1D , divisor : onp .ToFloat1D ) -> _Tuple2 [onp .Array1D [npc . floating80 ]]: ...
399
402
@overload # +floating, ~longdouble
400
- def deconvolve (signal : onp .ToFloat1D , divisor : onp .ToJustLongDouble1D ) -> _Tuple2 [onp .Array1D [np . longdouble ]]: ...
403
+ def deconvolve (signal : onp .ToFloat1D , divisor : onp .ToJustLongDouble1D ) -> _Tuple2 [onp .Array1D [npc . floating80 ]]: ...
401
404
@overload # ~complex128 | ~complex64, +complex128
402
405
def deconvolve (
403
406
signal : onp .ToArray1D [op .JustComplex , _C64_128 ], divisor : onp .ToComplex128_1D
@@ -891,7 +894,7 @@ def order_filter(a: onp.ToJustInt64_ND, domain: int | onp.ToIntND, rank: int) ->
891
894
def order_filter (a : onp .ToJustFloat64_ND , domain : int | onp .ToIntND , rank : int ) -> onp .ArrayND [np .float64 ]: ...
892
895
@overload
893
896
def order_filter (
894
- a : onp .CanArrayND [ _CoFloat64T , _ShapeT ], domain : int | onp .ToIntND , rank : int
897
+ a : onp .CanArray [ _ShapeT , np . dtype [ _CoFloat64T ] ], domain : int | onp .ToIntND , rank : int
895
898
) -> onp .ArrayND [_CoFloat64T , _ShapeT ]: ...
896
899
@overload
897
900
def order_filter (a : onp .ToFloatND , domain : int | onp .ToIntND , rank : int ) -> onp .ArrayND [Any ]: ...
@@ -903,7 +906,7 @@ def medfilt(volume: onp.ToJustInt64_ND, kernel_size: int | onp.ToInt1D | None =
903
906
def medfilt (volume : onp .ToJustFloat64_ND , kernel_size : int | onp .ToInt1D | None = None ) -> onp .ArrayND [np .float64 ]: ...
904
907
@overload
905
908
def medfilt (
906
- volume : onp .CanArrayND [ _CoFloat64T , _ShapeT ], kernel_size : int | onp .ToInt1D | None = None
909
+ volume : onp .CanArray [ _ShapeT , np . dtype [ _CoFloat64T ] ], kernel_size : int | onp .ToInt1D | None = None
907
910
) -> onp .ArrayND [_CoFloat64T , _ShapeT ]: ...
908
911
@overload
909
912
def medfilt (volume : onp .ToFloatND , kernel_size : int | onp .ToInt1D | None = None ) -> onp .ArrayND [Any ]: ...
@@ -926,7 +929,7 @@ def wiener(
926
929
@overload # ~longdouble
927
930
def wiener (
928
931
im : onp .ToJustLongDoubleND , mysize : int | onp .ToInt1D | None = None , noise : float | None = None
929
- ) -> onp .ArrayND [np . longdouble ]: ...
932
+ ) -> onp .ArrayND [npc . floating80 ]: ...
930
933
@overload # ~complex128 | ~complex64
931
934
def wiener (
932
935
im : onp .ToArrayND [op .JustComplex , np .complex128 | np .complex64 ],
@@ -943,15 +946,15 @@ def wiener(im: onp.ToComplexND, mysize: int | onp.ToInt1D | None = None, noise:
943
946
#
944
947
@overload # float64 | integer, known shape
945
948
def hilbert (
946
- x : onp .CanArrayND [ np .float64 | npc .integer , _ShapeT ], N : int | None = None , axis : int = - 1
949
+ x : onp .CanArray [ _ShapeT , np .dtype [ np . float64 | npc .integer ] ], N : int | None = None , axis : int = - 1
947
950
) -> onp .ArrayND [np .complex128 , _ShapeT ]: ...
948
951
@overload # float32 | float16, known shape
949
952
def hilbert (
950
- x : onp .CanArrayND [ np .float32 | np .float16 , _ShapeT ], N : int | None = None , axis : int = - 1
953
+ x : onp .CanArray [ _ShapeT , np .dtype [ np . float32 | np .float16 ] ], N : int | None = None , axis : int = - 1
951
954
) -> onp .ArrayND [np .complex64 , _ShapeT ]: ...
952
955
@overload # longdouble, known shape
953
956
def hilbert (
954
- x : onp .CanArrayND [ npc .floating80 , _ShapeT ], N : int | None = None , axis : int = - 1
957
+ x : onp .CanArray [ _ShapeT , np . dtype [ npc .floating80 ] ], N : int | None = None , axis : int = - 1
955
958
) -> onp .ArrayND [np .clongdouble , _ShapeT ]: ...
956
959
@overload # float64 | integer, unknown shape
957
960
def hilbert (
@@ -1037,13 +1040,13 @@ def resample(
1037
1040
) -> onp .ArrayND [npc .floating ]: ...
1038
1041
@overload
1039
1042
def resample (
1040
- x : onp .ToComplexND ,
1043
+ x : onp .ToJustComplexND ,
1041
1044
num : int ,
1042
1045
t : None = None ,
1043
1046
axis : int = 0 ,
1044
1047
window : _WindowFuncComplex | onp .ToFloat1D | _ToWindow | None = None ,
1045
1048
domain : _Domain = "time" ,
1046
- ) -> onp .ArrayND [npc .inexact ]: ...
1049
+ ) -> onp .ArrayND [npc .complexfloating ]: ...
1047
1050
@overload
1048
1051
def resample (
1049
1052
x : onp .ArrayND [_EnvelopeSCT , _AnyShapeT ],
@@ -1064,13 +1067,13 @@ def resample(
1064
1067
) -> tuple [onp .ArrayND [npc .floating ], onp .Array1D [npc .floating ]]: ...
1065
1068
@overload
1066
1069
def resample (
1067
- x : onp .ToComplexND ,
1070
+ x : onp .ToJustComplexND ,
1068
1071
num : int ,
1069
1072
t : onp .ToFloat1D ,
1070
1073
axis : int = 0 ,
1071
1074
window : _WindowFuncComplex | onp .ToFloat1D | _ToWindow | None = None ,
1072
1075
domain : _Domain = "time" ,
1073
- ) -> tuple [onp .ArrayND [npc .inexact ], onp .Array1D [npc .floating ]]: ...
1076
+ ) -> tuple [onp .ArrayND [npc .complexfloating ], onp .Array1D [npc .floating ]]: ...
1074
1077
1075
1078
# TODO(jorenham): improve
1076
1079
@overload
0 commit comments