Skip to content

[ENH] - Add missing commit from modes update #355

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion specparam/modes/mode.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Mode object."""

from specparam.modes.params import ParamDefinition
from specparam.utils.checks import check_input_options

###################################################################################################
Expand All @@ -25,7 +26,7 @@ class Mode():
Function that defines the fit function for the mode.
jacobian : callable, optional
Function for computing Jacobian matrix corresponding to `func`.
params : ParamDefinition
params : dict or ParamDefinition
Parameter definition.
freq_space : {'linear', 'log10'}
Required spacing of the frequency values for this mode.
Expand All @@ -44,6 +45,8 @@ def __init__(self, name, component, description, func, jacobian,
self.func = func
self.jacobian = jacobian

if isinstance(params, dict):
params = ParamDefinition(params)
self.params = params

self.spacing = {
Expand Down
16 changes: 16 additions & 0 deletions specparam/tests/modes/test_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,19 @@ def tfit(xs, *params):
freq_space='linear', powers_space='linear')
assert tmode
assert tmode.n_params == params.n_params

def test_mode_params_dict():

def tfit2(xs, *params):
return xs

params = {
'a' : 'a desc',
'b' : 'b desc',
}

tmode = Mode(name='tmode', component='aperiodic', description='test_desc2',
func=tfit2, jacobian=None, params=params,
freq_space='linear', powers_space='linear')
assert tmode
assert isinstance(tmode.params, ParamDefinition)