Skip to content

Commit 12564c2

Browse files
committed
generalize gen_methods_txt_str
1 parent 7e414a0 commit 12564c2

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

specparam/reports/strings.py

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,6 @@ def gen_methods_report_str(concise=False):
323323
return output
324324

325325

326-
# TODO: UPDATE
327326
def gen_methods_text_str(model=None):
328327
"""Generate a string representation of a template methods report.
329328
@@ -334,32 +333,43 @@ def gen_methods_text_str(model=None):
334333
If None, the text is returned as a template, without values.
335334
"""
336335

337-
template = (
336+
if model:
337+
settings_names = list(model.algorithm.settings.values.keys())
338+
settings_values = list(model.algorithm.settings.values.values())
339+
else:
340+
settings_names = []
341+
settings_values = []
342+
343+
template = [
338344
"The periodic & aperiodic spectral parameterization algorithm (version {}) "
339345
"was used to parameterize neural power spectra. "
340346
"The model was fit with {} aperiodic mode and {} periodic mode. "
341347
"Settings for the algorithm were set as: "
342-
"peak width limits : {}; "
343-
"max number of peaks : {}; "
344-
"minimum peak height : {}; "
345-
"peak threshold : {}; ."
348+
]
349+
350+
if settings_names:
351+
settings_strs = [el + ' : {}, ' for el in settings_names]
352+
settings_strs[-1] = settings_strs[-1][:-2] + '. '
353+
template.extend(settings_strs)
354+
else:
355+
template.extend('XX. ')
356+
357+
template.extend([
346358
"Power spectra were parameterized across the frequency range "
347359
"{} to {} Hz."
348-
)
360+
])
349361

350-
if model:
351-
freq_range = model.data.freq_range if model.data.has_data else ('XX', 'XX')
362+
if model and model.data.has_data:
363+
freq_range = model.data.freq_range
352364
else:
353365
freq_range = ('XX', 'XX')
354366

355-
methods_str = template.format(MODULE_VERSION,
356-
model.modes.aperiodic.name if model else 'XX',
357-
model.modes.periodic.name if model else 'XX',
358-
model.algorithm.settings.peak_width_limits if model else 'XX',
359-
model.algorithm.settings.max_n_peaks if model else 'XX',
360-
model.algorithm.settings.min_peak_height if model else 'XX',
361-
model.algorithm.settings.peak_threshold if model else 'XX',
362-
*freq_range)
367+
methods_str = ''.join(template).format(\
368+
MODULE_VERSION,
369+
model.modes.aperiodic.name if model else 'XX',
370+
model.modes.periodic.name if model else 'XX',
371+
*settings_values,
372+
*freq_range)
363373

364374
return methods_str
365375

0 commit comments

Comments
 (0)