From 3db3d245339431a929c01a1674185b0540daa6d3 Mon Sep 17 00:00:00 2001 From: Maayan Matsliah Date: Thu, 7 May 2026 11:46:18 -0400 Subject: [PATCH] refactor: replace if-chain in RunningDecimationFilter._dec_func with dict lookup --- pylablib/core/dataproc/filters.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/pylablib/core/dataproc/filters.py b/pylablib/core/dataproc/filters.py index 9236bcc..e388c9f 100644 --- a/pylablib/core/dataproc/filters.py +++ b/pylablib/core/dataproc/filters.py @@ -550,6 +550,8 @@ class RunningDecimationFilter: on_incomplete: determines what to return while the filter window is not yet full; can be ``"none"`` (default, return ``None``), or ``"partial"`` (operate on the partial accumulated data) """ + _MODE_FUNCS = {"mean": np.mean, "min": np.min, "max": np.max, "median": np.median} + def __init__(self, n, mode="mean", on_incomplete="none"): self.n=n funcargparse.check_parameter_range(mode,"mode",["mean","min","max","median"]) @@ -559,14 +561,9 @@ def __init__(self, n, mode="mean", on_incomplete="none"): funcargparse.check_parameter_range(on_incomplete,"on_incomplete",["none","partial"]) self.on_incomplete=on_incomplete def _dec_func(self): - if self.mode=="mean": - return np.mean - if self.mode=="min": - return np.min - if self.mode=="max": - return np.max - if self.mode=="median": - return np.median + """Return the numpy function corresponding to the current decimation mode.""" + return self._MODE_FUNCS[self.mode] + def get(self): """Get the filtered result""" if len(self._buffer)