Skip to content

Commit 3ac4dd6

Browse files
authored
signal: improvements related to czt and zoom_fft (#430)
2 parents 846f790 + df391c4 commit 3ac4dd6

File tree

1 file changed

+93
-27
lines changed

1 file changed

+93
-27
lines changed

scipy-stubs/signal/_czt.pyi

Lines changed: 93 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Final, TypeAlias
1+
from typing import Final, TypeAlias, overload
22

33
import numpy as np
44
import optype as op
@@ -11,65 +11,131 @@ _Complex: TypeAlias = np.complex128 | np.clongdouble
1111
###
1212

1313
class CZT:
14-
w: Final[onp.ToComplex]
15-
a: Final[onp.ToComplex]
16-
m: Final[int | np.integer[Any]]
17-
n: Final[int | np.integer[Any]]
14+
w: Final[complex | np.complex128]
15+
a: Final[complex | np.complex128]
16+
m: Final[int]
17+
n: Final[int]
1818

1919
def __init__(
2020
self,
2121
/,
22-
n: onp.ToJustInt,
23-
m: onp.ToJustInt | None = None,
24-
w: onp.ToComplex | None = None,
25-
a: onp.ToComplex = 1 + 0j,
22+
n: int,
23+
m: int | None = None,
24+
w: complex | np.complex128 | None = None,
25+
a: complex | np.complex128 = 1 + 0j,
2626
) -> None: ...
27-
def __call__(self, /, x: onp.ToComplexND, *, axis: int = -1) -> onp.ArrayND[_Complex]: ...
28-
def points(self, /) -> onp.Array1D[_Complex]: ...
27+
@overload
28+
def __call__(self, /, x: onp.ToComplexStrict1D, *, axis: op.CanIndex = -1) -> onp.Array1D[_Complex]: ...
29+
@overload
30+
def __call__(self, /, x: onp.ToComplexStrict2D, *, axis: op.CanIndex = -1) -> onp.Array2D[_Complex]: ...
31+
@overload
32+
def __call__(self, /, x: onp.ToComplexStrict3D, *, axis: op.CanIndex = -1) -> onp.Array3D[_Complex]: ...
33+
@overload
34+
def __call__(self, /, x: onp.ToComplexND, *, axis: op.CanIndex = -1) -> onp.ArrayND[_Complex]: ...
35+
def points(self, /) -> onp.Array1D[np.complex128]: ...
2936

3037
class ZoomFFT(CZT):
3138
f1: onp.ToFloat
3239
f2: onp.ToFloat
33-
fs: onp.ToFloat
40+
fs: float | np.float64
3441

3542
def __init__(
3643
self,
3744
/,
38-
n: onp.ToJustInt,
39-
fn: onp.ToFloat | onp.ToFloat1D,
40-
m: onp.ToJustInt | None = None,
45+
n: int,
46+
fn: float | np.float64 | onp.ToFloat1D,
47+
m: int | None = None,
4148
*,
42-
fs: onp.ToFloat = 2,
49+
fs: float | np.float64 = 2,
4350
endpoint: onp.ToBool = False,
4451
) -> None: ...
4552

4653
#
47-
def _validate_sizes(n: onp.ToJustInt, m: onp.ToJustInt | None) -> int | np.integer[Any]: ...
54+
def _validate_sizes(n: int, m: int | None) -> int: ...
4855

4956
#
5057
def czt_points(
51-
m: onp.ToJustInt,
52-
w: onp.ToComplex | None = None,
53-
a: onp.ToComplex = 1 + 0j,
54-
) -> onp.Array1D[_Complex]: ...
58+
m: int,
59+
w: complex | np.complex128 | None = None,
60+
a: complex | np.complex128 = 1 + 0j,
61+
) -> onp.Array1D[np.complex128]: ...
5562

5663
#
64+
@overload
65+
def czt(
66+
x: onp.ToComplexStrict1D,
67+
m: int | None = None,
68+
w: complex | np.complex128 | None = None,
69+
a: complex | np.complex128 = 1 + 0j,
70+
*,
71+
axis: op.CanIndex = -1,
72+
) -> onp.Array1D[_Complex]: ...
73+
@overload
74+
def czt(
75+
x: onp.ToComplexStrict2D,
76+
m: int | None = None,
77+
w: complex | np.complex128 | None = None,
78+
a: complex | np.complex128 = 1 + 0j,
79+
*,
80+
axis: op.CanIndex = -1,
81+
) -> onp.Array2D[_Complex]: ...
82+
@overload
83+
def czt(
84+
x: onp.ToComplexStrict3D,
85+
m: int | None = None,
86+
w: complex | np.complex128 | None = None,
87+
a: complex | np.complex128 = 1 + 0j,
88+
*,
89+
axis: op.CanIndex = -1,
90+
) -> onp.Array3D[_Complex]: ...
91+
@overload
5792
def czt(
5893
x: onp.ToComplexND,
59-
m: onp.ToJustInt | None = None,
60-
w: onp.ToComplex | None = None,
61-
a: onp.ToComplex = 1 + 0j,
94+
m: int | None = None,
95+
w: complex | np.complex128 | None = None,
96+
a: complex | np.complex128 = 1 + 0j,
6297
*,
6398
axis: op.CanIndex = -1,
6499
) -> onp.ArrayND[_Complex]: ...
65100

66101
#
102+
@overload
103+
def zoom_fft(
104+
x: onp.ToComplexStrict1D,
105+
fn: float | np.float64 | onp.ToFloat1D,
106+
m: int | None = None,
107+
*,
108+
fs: float | np.float64 = 2,
109+
endpoint: onp.ToBool = False,
110+
axis: op.CanIndex = -1,
111+
) -> onp.Array1D[_Complex]: ...
112+
@overload
113+
def zoom_fft(
114+
x: onp.ToComplexStrict2D,
115+
fn: float | np.float64 | onp.ToFloat1D,
116+
m: int | None = None,
117+
*,
118+
fs: float | np.float64 = 2,
119+
endpoint: onp.ToBool = False,
120+
axis: op.CanIndex = -1,
121+
) -> onp.Array2D[_Complex]: ...
122+
@overload
123+
def zoom_fft(
124+
x: onp.ToComplexStrict3D,
125+
fn: float | np.float64 | onp.ToFloat1D,
126+
m: int | None = None,
127+
*,
128+
fs: float | np.float64 = 2,
129+
endpoint: onp.ToBool = False,
130+
axis: op.CanIndex = -1,
131+
) -> onp.Array3D[_Complex]: ...
132+
@overload
67133
def zoom_fft(
68134
x: onp.ToComplexND,
69-
fn: onp.ToFloatND | onp.ToFloat,
70-
m: onp.ToJustInt | None = None,
135+
fn: float | np.float64 | onp.ToFloat1D,
136+
m: int | None = None,
71137
*,
72-
fs: onp.ToFloat = 2,
138+
fs: float | np.float64 = 2,
73139
endpoint: onp.ToBool = False,
74140
axis: op.CanIndex = -1,
75141
) -> onp.ArrayND[_Complex]: ...

0 commit comments

Comments
 (0)