From 634f01d67b5d197d15f2c57e2e5f9790a8495eab Mon Sep 17 00:00:00 2001 From: "Timothy P. Ellsworth Bowers" Date: Fri, 23 Jun 2023 11:16:11 -0700 Subject: [PATCH] Convert an automatic registration into an option Make registering a SpectrumList reader for any `data_loader` that reads Spectrum1D objects optional, per the TODO in `specutils/io/registers.py`. --- specutils/io/registers.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/specutils/io/registers.py b/specutils/io/registers.py index b569c0faf..28e89d163 100644 --- a/specutils/io/registers.py +++ b/specutils/io/registers.py @@ -26,7 +26,7 @@ def _astropy_has_priorities(): def data_loader(label, identifier=None, dtype=Spectrum1D, extensions=None, - priority=0, force=False, verbose=False): + priority=0, force=False, opt_in_spectrumlist=True, verbose=False): """ Wraps a function that can be added to an `~astropy.io.registry` for custom file reading. @@ -51,6 +51,9 @@ def data_loader(label, identifier=None, dtype=Spectrum1D, extensions=None, force : bool, optional Whether to override any existing function if already present. Default is ``False``. Passed down to astropy registry. + opt_in_spectrumlist : bool, optional + Whether to register a SpectrumList reader for any data_loader that + reads Spectrum1D objects. Default is ``True``. verbose : bool Print extra info. @@ -105,10 +108,9 @@ def decorator(func): if verbose: print(f"Successfully loaded reader \"{label}\".") - # Automatically register a SpectrumList reader for any data_loader that - # reads Spectrum1D objects. TODO: it's possible that this - # functionality should be opt-in rather than automatic. - if dtype is Spectrum1D: + # Optionally register a SpectrumList reader for any data_loader that + # reads Spectrum1D objects. + if dtype is Spectrum1D and opt_in_spectrumlist: def load_spectrum_list(*args, **kwargs): return SpectrumList([ func(*args, **kwargs) ])