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) ])