From 9c1cf0ad67324fda385fdec7f3ccccba7257514c Mon Sep 17 00:00:00 2001 From: Tom Donoghue Date: Wed, 29 Oct 2025 18:22:56 +0000 Subject: [PATCH 1/3] udpate modes --- specparam/modes/__init__.py | 1 + specparam/modes/definitions.py | 10 ++++++++++ specparam/modes/mode.py | 5 ++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/specparam/modes/__init__.py b/specparam/modes/__init__.py index e69de29bb..038335721 100644 --- a/specparam/modes/__init__.py +++ b/specparam/modes/__init__.py @@ -0,0 +1 @@ +"""Functionality related to definining fit modes.""" diff --git a/specparam/modes/definitions.py b/specparam/modes/definitions.py index a230d46ac..d8ec53db0 100644 --- a/specparam/modes/definitions.py +++ b/specparam/modes/definitions.py @@ -148,3 +148,13 @@ 'skewed_gaussian' : pe_skewnorm, 'cauchy' : pe_cauchy, } + +################################################################################################### +## ALL MODES + +# Collect a store of all available modes + +MODES = { + 'aperiodic' : AP_MODES, + 'periodic' : PE_MODES, +} diff --git a/specparam/modes/mode.py b/specparam/modes/mode.py index 596e6804e..15ac972ef 100644 --- a/specparam/modes/mode.py +++ b/specparam/modes/mode.py @@ -88,7 +88,6 @@ def n_params(self): def check_params(self): """Check the description of the parameters for the current mode.""" - print('Parameters for the {} component in {} mode:'.format(\ - self.component, self.name)) + print('Parameters for the {} mode:'.format(self.name)) for pkey, desc in self.params.descriptions.items(): - print('\t{:15s} {:s}'.format(pkey, desc)) + print(' {:15s} {:s}'.format(pkey, desc)) From 7479d7e8a164b3d017342d4e31109a245f6be64f Mon Sep 17 00:00:00 2001 From: Tom Donoghue Date: Wed, 29 Oct 2025 18:24:16 +0000 Subject: [PATCH 2/3] add check_modes func --- specparam/modes/definitions.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/specparam/modes/definitions.py b/specparam/modes/definitions.py index d8ec53db0..fb3de192f 100644 --- a/specparam/modes/definitions.py +++ b/specparam/modes/definitions.py @@ -158,3 +158,24 @@ 'aperiodic' : AP_MODES, 'periodic' : PE_MODES, } + + +def check_modes(component, check_params=False): + """Check the set of modes that are available. + + Parameters + ---------- + component : {'aperiodic', 'periodic'} + Which component to check available modes for. + check_params : bool, optional, default: False + Whether to print out information on the parameters of each mode. + """ + + print('Available {:s} modes:'.format(component)) + for mode in ALL_MODES[component].values(): + if not check_params: + print(' {:10s} {:s}'.format(mode.name, mode.description)) + else: + print('\n{:s}'.format(mode.name)) + print(' {:s}'.format(mode.description)) + mode.check_params() From 8039c90b54727e686cd827cd7828933feb37e726 Mon Sep 17 00:00:00 2001 From: Tom Donoghue Date: Wed, 29 Oct 2025 18:27:08 +0000 Subject: [PATCH 3/3] add tests for mdoes definitions --- specparam/modes/definitions.py | 3 +-- specparam/tests/modes/test_definitions.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 specparam/tests/modes/test_definitions.py diff --git a/specparam/modes/definitions.py b/specparam/modes/definitions.py index fb3de192f..39bcf76a4 100644 --- a/specparam/modes/definitions.py +++ b/specparam/modes/definitions.py @@ -153,7 +153,6 @@ ## ALL MODES # Collect a store of all available modes - MODES = { 'aperiodic' : AP_MODES, 'periodic' : PE_MODES, @@ -172,7 +171,7 @@ def check_modes(component, check_params=False): """ print('Available {:s} modes:'.format(component)) - for mode in ALL_MODES[component].values(): + for mode in MODES[component].values(): if not check_params: print(' {:10s} {:s}'.format(mode.name, mode.description)) else: diff --git a/specparam/tests/modes/test_definitions.py b/specparam/tests/modes/test_definitions.py new file mode 100644 index 000000000..e2300a0d4 --- /dev/null +++ b/specparam/tests/modes/test_definitions.py @@ -0,0 +1,11 @@ +"""Tests for specparam.modes.definitions.""" + +from specparam.modes.definitions import * + +################################################################################################### +################################################################################################### + +def test_check_modes(): + + check_modes('aperiodic') + check_modes('periodic')