From 2f6ec5858fc475c6f98b28dedb9df25b4f91b165 Mon Sep 17 00:00:00 2001 From: t9ja5 Date: Tue, 17 Mar 2026 15:02:26 +0530 Subject: [PATCH 1/3] Fix doctest failure by skipping optional dependency sunpy_soar --- radiospectra/spectrogram/sources/rpw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radiospectra/spectrogram/sources/rpw.py b/radiospectra/spectrogram/sources/rpw.py index 50c9face..26c7f11e 100644 --- a/radiospectra/spectrogram/sources/rpw.py +++ b/radiospectra/spectrogram/sources/rpw.py @@ -11,7 +11,7 @@ class RPWSpectrogram(GenericSpectrogram): Examples -------- - >>> import sunpy_soar + >>> import sunpy_soar # doctest: +SKIP >>> from sunpy.net import Fido, attrs as a >>> from radiospectra.spectrogram import Spectrogram >>> query = Fido.search(a.Time('2020-07-11', '2020-07-11 23:59'), a.Instrument('RPW'), From 3b3b3d2f42b94d4bd42e1a955bbc235e68c5eccd Mon Sep 17 00:00:00 2001 From: t9ja5 Date: Tue, 17 Mar 2026 16:07:44 +0530 Subject: [PATCH 2/3] Improve robustness by safely accessing metadata using dict.get --- radiospectra/spectrogram/sources/rpw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radiospectra/spectrogram/sources/rpw.py b/radiospectra/spectrogram/sources/rpw.py index 26c7f11e..59ccdebe 100644 --- a/radiospectra/spectrogram/sources/rpw.py +++ b/radiospectra/spectrogram/sources/rpw.py @@ -26,4 +26,4 @@ class RPWSpectrogram(GenericSpectrogram): @classmethod def is_datasource_for(cls, data, meta, **kwargs): - return meta["instrument"] == "RPW" + return meta.get("instrument") == "RPW" From ce7c1e403a92f18e63ff89ec633315d3ba13a7c1 Mon Sep 17 00:00:00 2001 From: t9ja5 Date: Tue, 17 Mar 2026 17:15:11 +0530 Subject: [PATCH 3/3] Add test to ensure RPWSpectrogram handles missing metadata safely --- radiospectra/spectrogram/sources/tests/test_solo_rpw.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/radiospectra/spectrogram/sources/tests/test_solo_rpw.py b/radiospectra/spectrogram/sources/tests/test_solo_rpw.py index a0418307..6ce716dd 100644 --- a/radiospectra/spectrogram/sources/tests/test_solo_rpw.py +++ b/radiospectra/spectrogram/sources/tests/test_solo_rpw.py @@ -117,3 +117,12 @@ def test_solo_rpw_hfr(parse_path_moc): assert spec.end_time.datetime == datetime(2024, 3, 24, 0, 0, 0, 0) assert spec.wavelength.min == 425 * u.kHz assert spec.wavelength.max == 16325 * u.kHz + +def test_rpw_missing_instrument_key(): + from radiospectra.spectrogram.sources.rpw import RPWSpectrogram + + meta = {} # missing "instrument" + + result = RPWSpectrogram.is_datasource_for(None, meta) + + assert result is False