diff --git a/lisainstrument/dynamic_delay_dask.py b/lisainstrument/dynamic_delay_dask.py index dd460e341f323733cf5a95329472df7051c97442..f2d59c3a8ff76404592062703ad75d433db096cb 100644 --- a/lisainstrument/dynamic_delay_dask.py +++ b/lisainstrument/dynamic_delay_dask.py @@ -5,7 +5,7 @@ Use make_dynamic_shift_lagrange_dask to create a Lagrange interpolator for dask from __future__ import annotations -from typing import Callable +from typing import Callable, Final import dask import dask.array as da @@ -18,11 +18,7 @@ from lisainstrument.dynamic_delay_numpy import ( RegularInterpMethod, ) from lisainstrument.fir_filters_dask import DaskArray1D, make_dask_array_1d -from lisainstrument.fir_filters_numpy import ( - EdgeHandling, - NumpyArray1D, - make_numpy_array_1d, -) +from lisainstrument.fir_filters_numpy import NumpyArray1D, make_numpy_array_1d class DynamicShiftDask: @@ -48,8 +44,8 @@ class DynamicShiftDask: self, min_delay: float, max_delay: float, - left_bound: EdgeHandling, - right_bound: EdgeHandling, + left_bound: DynShiftBC, + right_bound: DynShiftBC, interp: RegularInterpMethod, ): """Set up interpolation parameters @@ -66,12 +62,12 @@ class DynamicShiftDask: msg = f"dynamic_shift_dask: invalid delay range {min_delay=}, {max_delay=}" raise ValueError(msg) - self._min_delay = int(np.floor(min_delay)) - self._max_delay = int(np.ceil(max_delay)) + self._min_delay: Final[int] = int(np.floor(min_delay)) + self._max_delay: Final[int] = int(np.ceil(max_delay)) - self._left_bound = left_bound - self._right_bound = right_bound - self._interp_np = interp + self._left_bound: Final = left_bound + self._right_bound: Final = right_bound + self._interp_np: Final = interp def _op_interp( self, samp: np.ndarray, loc: np.ndarray, ofs: np.ndarray @@ -171,8 +167,8 @@ class DynamicShiftDask: def make_dynamic_shift_linear_dask( min_delay: float, max_delay: float, - left_bound: EdgeHandling, - right_bound: EdgeHandling, + left_bound: DynShiftBC, + right_bound: DynShiftBC, ) -> DynamicShiftDask: """Set up DynamicShiftDask instance with linear interpolation method. @@ -193,8 +189,8 @@ def make_dynamic_shift_lagrange_dask( length: int, min_delay: float, max_delay: float, - left_bound: EdgeHandling, - right_bound: EdgeHandling, + left_bound: DynShiftBC, + right_bound: DynShiftBC, ) -> DynamicShiftDask: """Set up DynamicShiftDask instance with Lagrange interpolation method. diff --git a/lisainstrument/dynamic_delay_numpy.py b/lisainstrument/dynamic_delay_numpy.py index 365ef5f4e654a2b9e2fe7bc889019facfa3f2f62..2a30cd92decb84c71e086501e8a12ba2a28a423e 100644 --- a/lisainstrument/dynamic_delay_numpy.py +++ b/lisainstrument/dynamic_delay_numpy.py @@ -8,7 +8,7 @@ from __future__ import annotations import functools import operator from enum import Enum -from typing import Callable, Protocol +from typing import Final, Protocol import numpy as np from numpy.polynomial import Polynomial @@ -181,9 +181,11 @@ class RegularInterpLagrange(RegularInterpMethod): raise ValueError(msg) offset = -((length - 1) // 2) - self._length: int = length - self._offset: int = offset - self._fir_filt = self._make_firs(length, offset) + self._length: Final[int] = length + self._offset: Final[int] = offset + self._fir_filt: Final[list[FilterFirNumpyType]] = self._make_firs( + length, offset + ) @property def margin_left(self) -> int: @@ -328,8 +330,8 @@ class DynamicShiftNumpy: self, min_delay: float, max_delay: float, - left_bound: EdgeHandling, - right_bound: EdgeHandling, + left_bound: DynShiftBC, + right_bound: DynShiftBC, interp: RegularInterpMethod, ): @@ -337,12 +339,12 @@ class DynamicShiftNumpy: msg = f"dynamic_shift_dask: invalid delay range {min_delay=}, {max_delay=}" raise ValueError(msg) - self._min_delay = int(np.floor(min_delay)) - self._max_delay = int(np.ceil(max_delay)) + self._min_delay: Final[int] = int(np.floor(min_delay)) + self._max_delay: Final[int] = int(np.ceil(max_delay)) - self._left_bound = left_bound - self._right_bound = right_bound - self._interp_np = interp + self._left_bound: Final = left_bound + self._right_bound: Final = right_bound + self._interp_np: Final = interp def _op_interp( self, samp: np.ndarray, loc: np.ndarray, ofs: np.ndarray @@ -436,8 +438,8 @@ def make_dynamic_shift_lagrange_numpy( length: int, min_delay: float, max_delay: float, - left_bound: EdgeHandling, - right_bound: EdgeHandling, + left_bound: DynShiftBC, + right_bound: DynShiftBC, ) -> DynamicShiftNumpy: """Set up DynamicShiftNumpy instance with Lagrange interpolation method.