fa45d8aa5f
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
Privoxy对node122:18003返回500,直连正常
146 lines
4.2 KiB
Python
146 lines
4.2 KiB
Python
from typing import Any, Final, Literal as L, overload
|
|
|
|
import numpy as np
|
|
from numpy._typing import ArrayLike, NDArray, _ArrayLike, _Shape, _ShapeLike
|
|
|
|
__all__ = ["fftfreq", "fftshift", "ifftshift", "rfftfreq"]
|
|
|
|
###
|
|
|
|
type _Device = L["cpu"]
|
|
|
|
type _IntLike = int | np.integer
|
|
|
|
type _AsFloat64 = np.float64 | np.float32 | np.float16 | np.integer | np.bool
|
|
type _AsComplex128 = np.complex128 | np.complex64
|
|
type _Inexact80 = np.longdouble | np.clongdouble
|
|
|
|
type _Array[ShapeT: _Shape, ScalarT: np.generic] = np.ndarray[ShapeT, np.dtype[ScalarT]]
|
|
type _1D = tuple[int]
|
|
|
|
###
|
|
|
|
integer_types: Final[tuple[type[int], type[np.integer]]] = ...
|
|
|
|
# keep in sync with `ifftshift` below
|
|
@overload
|
|
def fftshift[ShapeT: _Shape, DTypeT: np.dtype](
|
|
x: np.ndarray[ShapeT, DTypeT],
|
|
axes: _ShapeLike | None = None,
|
|
) -> np.ndarray[ShapeT, DTypeT]: ...
|
|
@overload
|
|
def fftshift[ScalarT: np.generic](x: _ArrayLike[ScalarT], axes: _ShapeLike | None = None) -> NDArray[ScalarT]: ...
|
|
@overload
|
|
def fftshift(x: ArrayLike, axes: _ShapeLike | None = None) -> NDArray[Any]: ...
|
|
|
|
# keep in sync with `fftshift` above
|
|
@overload
|
|
def ifftshift[ShapeT: _Shape, DTypeT: np.dtype](
|
|
x: np.ndarray[ShapeT, DTypeT],
|
|
axes: _ShapeLike | None = None,
|
|
) -> np.ndarray[ShapeT, DTypeT]: ...
|
|
@overload
|
|
def ifftshift[ScalarT: np.generic](x: _ArrayLike[ScalarT], axes: _ShapeLike | None = None) -> NDArray[ScalarT]: ...
|
|
@overload
|
|
def ifftshift(x: ArrayLike, axes: _ShapeLike | None = None) -> NDArray[Any]: ...
|
|
|
|
# keep in sync with `rfftfreq` below
|
|
@overload # 0d +f64 (default)
|
|
def fftfreq(
|
|
n: _IntLike,
|
|
d: _AsFloat64 | float = 1.0,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, np.float64]: ...
|
|
@overload # 0d c64 | c128
|
|
def fftfreq(
|
|
n: _IntLike,
|
|
d: _AsComplex128,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, np.complex128]: ...
|
|
@overload # 0d +complex
|
|
def fftfreq(
|
|
n: _IntLike,
|
|
d: complex,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, np.complex128 | Any]: ...
|
|
@overload # 0d T: f80 | c160
|
|
def fftfreq[ScalarT: _Inexact80](
|
|
n: _IntLike,
|
|
d: ScalarT,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, ScalarT]: ...
|
|
@overload # nd +f64
|
|
def fftfreq[ShapeT: _Shape](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, _AsFloat64],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, np.float64]: ...
|
|
@overload # nd c64 | c128
|
|
def fftfreq[ShapeT: _Shape](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, _AsComplex128],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, np.complex128]: ...
|
|
@overload # nd T: f80 | c160
|
|
def fftfreq[ShapeT: _Shape, LongDoubleT: _Inexact80](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, LongDoubleT],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, LongDoubleT]: ...
|
|
@overload # nd +complex (fallback)
|
|
def fftfreq[ShapeT: _Shape](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, np.number | np.bool],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, Any]: ...
|
|
|
|
# keep in sync with `fftfreq` above
|
|
@overload # 0d +f64 (default)
|
|
def rfftfreq(
|
|
n: _IntLike,
|
|
d: _AsFloat64 | float = 1.0,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, np.float64]: ...
|
|
@overload # 0d c64 | c128
|
|
def rfftfreq(
|
|
n: _IntLike,
|
|
d: _AsComplex128,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, np.complex128]: ...
|
|
@overload # 0d +complex
|
|
def rfftfreq(
|
|
n: _IntLike,
|
|
d: complex,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, np.complex128 | Any]: ...
|
|
@overload # 0d T: f80 | c160
|
|
def rfftfreq[LongDoubleT: _Inexact80](
|
|
n: _IntLike,
|
|
d: LongDoubleT,
|
|
device: _Device | None = None,
|
|
) -> _Array[_1D, LongDoubleT]: ...
|
|
@overload # nd +f64
|
|
def rfftfreq[ShapeT: _Shape](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, _AsFloat64],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, np.float64]: ...
|
|
@overload # nd c64 | c128
|
|
def rfftfreq[ShapeT: _Shape](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, _AsComplex128],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, np.complex128]: ...
|
|
@overload # nd T: f80 | c160
|
|
def rfftfreq[ShapeT: _Shape, LongDoubleT: _Inexact80](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, LongDoubleT],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, LongDoubleT]: ...
|
|
@overload # nd +complex (fallback)
|
|
def rfftfreq[ShapeT: _Shape](
|
|
n: _IntLike,
|
|
d: _Array[ShapeT, np.number | np.bool],
|
|
device: _Device | None = None,
|
|
) -> _Array[ShapeT, Any]: ...
|