From 260188f1aadd2aa3b188223a67c12d8cfd929279 Mon Sep 17 00:00:00 2001 From: Tom Donoghue Date: Mon, 19 Aug 2024 13:25:42 -0400 Subject: [PATCH] add drop_base_params helper func --- neurodsp/sim/params.py | 21 +++++++++++++++++++++ neurodsp/tests/sim/test_params.py | 8 ++++++++ 2 files changed, 29 insertions(+) diff --git a/neurodsp/sim/params.py b/neurodsp/sim/params.py index c46ebcfc..7908b8ca 100644 --- a/neurodsp/sim/params.py +++ b/neurodsp/sim/params.py @@ -11,6 +11,8 @@ ################################################################################################### ################################################################################################### +BASE_PARAMS = ['n_seconds', 'fs'] + class SimParams(): """Object for managing simulation parameters. @@ -613,3 +615,22 @@ def clear(self, clear_samplers=True, clear_params=False, clear_base=False): if clear_params: super().clear(clear_base=clear_base) + + +## Utilities for helping with parameter management + +def drop_base_params(params): + """Drop base parameters from a parameter definition. + + Parameters + ---------- + params : dict + Parameter definition. + + Returns + ------- + params : dict + Parameter definition, exluding base parameters. + """ + + return {key : value for key, value in params.items() if key not in BASE_PARAMS} diff --git a/neurodsp/tests/sim/test_params.py b/neurodsp/tests/sim/test_params.py index c436b6d6..af202b2b 100644 --- a/neurodsp/tests/sim/test_params.py +++ b/neurodsp/tests/sim/test_params.py @@ -160,3 +160,11 @@ def test_sim_samplers_upd(tsim_samplers): tsim_samplers.update_sampler('samp_exp', 'n_samples', 100) assert tsim_samplers['samp_exp'].n_samples == 100 + +def test_drop_base_params(): + + params = {'n_seconds' : 2, 'fs' : 250, 'exponent' : -1} + out1 = drop_base_params(params) + for bparam in BASE_PARAMS: + assert bparam not in out1 + assert 'exponent' in params