|
1 |
| -from typing import Any, Literal as L, overload |
| 1 | +from typing import Any, Final, Literal as L, TypeAlias, overload |
2 | 2 | from typing_extensions import TypeVar
|
3 | 3 |
|
4 | 4 | import numpy as np
|
5 | 5 | from numpy._typing import ArrayLike, NDArray, _ArrayLike, _ArrayLikeComplex_co, _ArrayLikeFloat_co, _ShapeLike
|
6 | 6 |
|
7 | 7 | __all__ = ["fftfreq", "fftshift", "ifftshift", "rfftfreq"]
|
8 | 8 |
|
9 |
| -_SCT = TypeVar("_SCT", bound=np.generic) |
| 9 | +### |
| 10 | + |
| 11 | +_ScalarT = TypeVar("_ScalarT", bound=np.generic) |
| 12 | + |
| 13 | +_Device: TypeAlias = L["cpu"] | None |
| 14 | +_IntLike: TypeAlias = int | np.integer |
| 15 | + |
| 16 | +### |
| 17 | + |
| 18 | +integer_types: Final[tuple[type[int], type[np.integer]]] = ... |
| 19 | + |
| 20 | +### |
10 | 21 |
|
11 |
| -# |
12 | 22 | @overload
|
13 |
| -def fftshift(x: _ArrayLike[_SCT], axes: _ShapeLike | None = ...) -> NDArray[_SCT]: ... |
| 23 | +def fftshift(x: _ArrayLike[_ScalarT], axes: _ShapeLike | None = None) -> NDArray[_ScalarT]: ... |
14 | 24 | @overload
|
15 |
| -def fftshift(x: ArrayLike, axes: _ShapeLike | None = ...) -> NDArray[Any]: ... |
| 25 | +def fftshift(x: _ArrayLikeFloat_co, axes: _ShapeLike | None = None) -> NDArray[np.floating]: ... |
| 26 | +@overload |
| 27 | +def fftshift(x: ArrayLike, axes: _ShapeLike | None = None) -> NDArray[Any]: ... |
16 | 28 |
|
17 | 29 | #
|
18 | 30 | @overload
|
19 |
| -def ifftshift(x: _ArrayLike[_SCT], axes: _ShapeLike | None = ...) -> NDArray[_SCT]: ... |
| 31 | +def ifftshift(x: _ArrayLike[_ScalarT], axes: _ShapeLike | None = None) -> NDArray[_ScalarT]: ... |
| 32 | +@overload |
| 33 | +def ifftshift(x: _ArrayLikeFloat_co, axes: _ShapeLike | None = None) -> NDArray[np.floating]: ... |
20 | 34 | @overload
|
21 |
| -def ifftshift(x: ArrayLike, axes: _ShapeLike | None = ...) -> NDArray[Any]: ... |
| 35 | +def ifftshift(x: ArrayLike, axes: _ShapeLike | None = None) -> NDArray[Any]: ... |
22 | 36 |
|
23 | 37 | #
|
24 | 38 | @overload
|
25 |
| -def fftfreq(n: int | np.integer, d: _ArrayLikeFloat_co = ..., device: L["cpu"] | None = ...) -> NDArray[np.floating]: ... |
| 39 | +def fftfreq(n: _IntLike, d: _ArrayLikeFloat_co = 1.0, device: _Device = None) -> NDArray[np.floating]: ... |
26 | 40 | @overload
|
27 |
| -def fftfreq(n: int | np.integer, d: _ArrayLikeComplex_co = ..., device: L["cpu"] | None = ...) -> NDArray[np.inexact]: ... |
| 41 | +def fftfreq(n: _IntLike, d: _ArrayLikeComplex_co = 1.0, device: _Device = None) -> NDArray[np.inexact]: ... |
28 | 42 |
|
29 | 43 | #
|
30 | 44 | @overload
|
31 |
| -def rfftfreq(n: int | np.integer, d: _ArrayLikeFloat_co = ..., device: L["cpu"] | None = ...) -> NDArray[np.floating]: ... |
| 45 | +def rfftfreq(n: _IntLike, d: _ArrayLikeFloat_co = 1.0, device: _Device = None) -> NDArray[np.floating]: ... |
32 | 46 | @overload
|
33 |
| -def rfftfreq(n: int | np.integer, d: _ArrayLikeComplex_co = ..., device: L["cpu"] | None = ...) -> NDArray[np.inexact]: ... |
| 47 | +def rfftfreq(n: _IntLike, d: _ArrayLikeComplex_co = 1.0, device: _Device = None) -> NDArray[np.inexact]: ... |
0 commit comments