From c54e9501870437cb281586be16d3c6f1a0cae911 Mon Sep 17 00:00:00 2001 From: akash5100 Date: Wed, 17 Aug 2022 23:03:15 +0530 Subject: [PATCH 01/12] Enum for datasources --- hvpy/datasources.py | 107 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 hvpy/datasources.py diff --git a/hvpy/datasources.py b/hvpy/datasources.py new file mode 100644 index 0000000..eb6a664 --- /dev/null +++ b/hvpy/datasources.py @@ -0,0 +1,107 @@ +from enum import Enum + + +class datasources(Enum): + """ + Enum for datasources hosted by the Helioviewer Project. + """ + + EIT_171 = 0 + EIT_195 = 1 + EIT_284 = 2 + EIT_304 = 3 + LASCO_C2 = 4 + LASCO_C3 = 5 + MDI_Mag = 6 + MDI_Int = 7 + AIA_94 = 8 + AIA_131 = 9 + AIA_171 = 10 + AIA_193 = 11 + AIA_211 = 12 + AIA_304 = 13 + AIA_335 = 14 + AIA_1600 = 15 + AIA_1700 = 16 + AIA_4500 = 17 + HMI_Int = 18 + HMI_Mag = 19 + EUVI_A_171 = 20 + EUVI_A_195 = 21 + EUVI_A_284 = 22 + EUVI_A_304 = 23 + EUVI_B_171 = 24 + EUVI_B_195 = 25 + EUVI_B_284 = 26 + EUVI_B_304 = 27 + COR1_A = 28 + COR2_A = 29 + COR1_B = 30 + COR2_B = 31 + SWAP_174 = 32 + SXT_AlMgMn = 33 + SXT_thin_Al = 34 + SXT_white_light = 35 + XRT_Al_med_Al_mesh = 38 + XRT_Al_med_Al_thick = 39 + XRT_Al_med_Be_thick = 40 + XRT_Al_med_Gband = 41 + XRT_Al_med_Open = 42 + XRT_Al_med_Ti_poly = 43 + XRT_Al_poly_Al_mesh = 44 + XRT_Al_poly_Al_thick = 45 + XRT_Al_poly_Be_thick = 46 + XRT_Al_poly_Gband = 47 + XRT_Al_poly_Open = 48 + XRT_Al_poly_Ti_poly = 49 + XRT_Be_med_Al_mesh = 50 + XRT_Be_med_Al_thick = 51 + XRT_Be_med_Be_thick = 52 + XRT_Be_med_Gband = 53 + XRT_Be_med_Open = 54 + XRT_Be_med_Ti_poly = 55 + XRT_Be_thin_Al_mesh = 56 + XRT_Be_thin_Al_thick = 57 + XRT_Be_thin_Be_thick = 58 + XRT_Be_thin_Gband = 59 + XRT_Be_thin_Open = 60 + XRT_Be_thin_Ti_poly = 61 + XRT_C_poly_Al_mesh = 62 + XRT_C_poly_Al_thick = 63 + XRT_C_poly_Be_thick = 64 + XRT_C_poly_Gband = 65 + XRT_C_poly_Open = 66 + XRT_C_poly_Ti_poly = 67 + XRT_Mispositioned_Mispositioned = 68 + XRT_Open_Al_mesh = 69 + XRT_Open_Al_thick = 70 + XRT_Open_Be_thick = 71 + XRT_Open_Gband = 72 + XRT_Open_Open = 73 + XRT_Open_Ti_poly = 74 + TRACE_171 = 75 + TRACE_195 = 76 + TRACE_284 = 77 + TRACE_1216 = 78 + TRACE_1550 = 79 + TRACE_1600 = 80 + TRACE_1700 = 81 + TRACE_white_light = 82 + COSMO_KCor = 83 + EUI_FSI_174 = 84 + EUI_FSI_304 = 85 + EUI_HRI_174 = 86 + EUI_HRI_1216 = 87 + XRT_Any_Any = 10001 + XRT_Any_Al_mesh = 10002 + XRT_Any_Al_thick = 10003 + XRT_Any_Be_thick = 10004 + XRT_Any_Gband = 10005 + XRT_Any_Open = 10006 + XRT_Any_Ti_poly = 10007 + XRT_Al_med_Any = 10008 + XRT_Al_poly_Any = 10009 + XRT_Be_med_Any = 10010 + XRT_Be_thin_Any = 10011 + XRT_C_poly_Any = 10012 + XRT_Open_Any = 10013 From 7a91ec52a69aa91d84f10ad99f2fbade1eb020bc Mon Sep 17 00:00:00 2001 From: akash5100 Date: Thu, 18 Aug 2022 01:32:59 +0530 Subject: [PATCH 02/12] rename constants --- hvpy/datasources.py | 118 ++++++++++++++++++++++---------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/hvpy/datasources.py b/hvpy/datasources.py index eb6a664..ed97612 100644 --- a/hvpy/datasources.py +++ b/hvpy/datasources.py @@ -12,8 +12,8 @@ class datasources(Enum): EIT_304 = 3 LASCO_C2 = 4 LASCO_C3 = 5 - MDI_Mag = 6 - MDI_Int = 7 + MDI_MAG = 6 + MDI_INT = 7 AIA_94 = 8 AIA_131 = 9 AIA_171 = 10 @@ -24,8 +24,8 @@ class datasources(Enum): AIA_1600 = 15 AIA_1700 = 16 AIA_4500 = 17 - HMI_Int = 18 - HMI_Mag = 19 + HMI_INT = 18 + HMI_MAG = 19 EUVI_A_171 = 20 EUVI_A_195 = 21 EUVI_A_284 = 22 @@ -39,46 +39,46 @@ class datasources(Enum): COR1_B = 30 COR2_B = 31 SWAP_174 = 32 - SXT_AlMgMn = 33 - SXT_thin_Al = 34 - SXT_white_light = 35 - XRT_Al_med_Al_mesh = 38 - XRT_Al_med_Al_thick = 39 - XRT_Al_med_Be_thick = 40 - XRT_Al_med_Gband = 41 - XRT_Al_med_Open = 42 - XRT_Al_med_Ti_poly = 43 - XRT_Al_poly_Al_mesh = 44 - XRT_Al_poly_Al_thick = 45 - XRT_Al_poly_Be_thick = 46 - XRT_Al_poly_Gband = 47 - XRT_Al_poly_Open = 48 - XRT_Al_poly_Ti_poly = 49 - XRT_Be_med_Al_mesh = 50 - XRT_Be_med_Al_thick = 51 - XRT_Be_med_Be_thick = 52 - XRT_Be_med_Gband = 53 - XRT_Be_med_Open = 54 - XRT_Be_med_Ti_poly = 55 - XRT_Be_thin_Al_mesh = 56 - XRT_Be_thin_Al_thick = 57 - XRT_Be_thin_Be_thick = 58 - XRT_Be_thin_Gband = 59 - XRT_Be_thin_Open = 60 - XRT_Be_thin_Ti_poly = 61 - XRT_C_poly_Al_mesh = 62 - XRT_C_poly_Al_thick = 63 - XRT_C_poly_Be_thick = 64 - XRT_C_poly_Gband = 65 - XRT_C_poly_Open = 66 - XRT_C_poly_Ti_poly = 67 - XRT_Mispositioned_Mispositioned = 68 - XRT_Open_Al_mesh = 69 - XRT_Open_Al_thick = 70 - XRT_Open_Be_thick = 71 - XRT_Open_Gband = 72 - XRT_Open_Open = 73 - XRT_Open_Ti_poly = 74 + SXT_ALMGMN = 33 + SXT_THIN_AL = 34 + SXT_WHITE_LIGHT = 35 + XRT_AL_MED_AL_MESH = 38 + XRT_AL_MED_AL_THICK = 39 + XRT_AL_MED_BE_THICK = 40 + XRT_AL_MED_GBAND = 41 + XRT_AL_MED_OPEN = 42 + XRT_AL_MED_TI_POLY = 43 + XRT_AL_POLY_AL_mesh = 44 + XRT_AL_POLY_AL_THICK = 45 + XRT_AL_POLY_BE_THICK = 46 + XRT_AL_POLY_GBAND = 47 + XRT_AL_POLY_OPEN = 48 + XRT_AL_POLY_TI_POLY = 49 + XRT_BE_MED_AL_MESH = 50 + XRT_BE_MED_AL_THICK = 51 + XRT_BE_MED_BE_THICK = 52 + XRT_BE_MED_GBAND = 53 + XRT_BE_MED_OPEN = 54 + XRT_BE_MED_TI_POLY = 55 + XRT_BE_THIN_AL_MESH = 56 + XRT_BE_THIN_AL_THICK = 57 + XRT_BE_THIN_BE_THICK = 58 + XRT_BE_THIN_GBAND = 59 + XRT_BE_THIN_OPEN = 60 + XRT_BE_THIN_TI_POLY = 61 + XRT_C_POLY_AL_MESH = 62 + XRT_C_POLY_AL_THICK = 63 + XRT_C_POLY_BE_THICK = 64 + XRT_C_POLY_GBAND = 65 + XRT_C_POLY_OPEN = 66 + XRT_C_POLY_TI_POLY = 67 + XRT_MISPOSITIONED_MISPOSITIONED = 68 + XRT_OPEN_AL_MESH = 69 + XRT_OPEN_AL_THICK = 70 + XRT_OPEN_BE_THICK = 71 + XRT_OPEN_GBAND = 72 + XRT_OPEN_OPEN = 73 + XRT_OPEN_TI_POLY = 74 TRACE_171 = 75 TRACE_195 = 76 TRACE_284 = 77 @@ -86,22 +86,22 @@ class datasources(Enum): TRACE_1550 = 79 TRACE_1600 = 80 TRACE_1700 = 81 - TRACE_white_light = 82 - COSMO_KCor = 83 + TRACE_WHITE_LIGHT = 82 + COSMO_KCOR = 83 EUI_FSI_174 = 84 EUI_FSI_304 = 85 EUI_HRI_174 = 86 EUI_HRI_1216 = 87 - XRT_Any_Any = 10001 - XRT_Any_Al_mesh = 10002 - XRT_Any_Al_thick = 10003 - XRT_Any_Be_thick = 10004 - XRT_Any_Gband = 10005 - XRT_Any_Open = 10006 - XRT_Any_Ti_poly = 10007 - XRT_Al_med_Any = 10008 - XRT_Al_poly_Any = 10009 - XRT_Be_med_Any = 10010 - XRT_Be_thin_Any = 10011 - XRT_C_poly_Any = 10012 - XRT_Open_Any = 10013 + XRT_ANY_ANY = 10001 + XRT_ANY_AL_MESH = 10002 + XRT_ANY_AL_THICK = 10003 + XRT_ANY_BE_THICK = 10004 + XRT_ANY_GBAND = 10005 + XRT_ANY_OPEN = 10006 + XRT_ANY_TI_POLY = 10007 + XRT_AL_MED_ANY = 10008 + XRT_AL_POLY_ANY = 10009 + XRT_BE_MED_ANY = 10010 + XRT_BE_THIN_ANY = 10011 + XRT_C_POLY_ANY = 10012 + XRT_OPEN_ANY = 10013 From 235dd05ce76a7ec839e91f5b47b8ff9f9c447cdd Mon Sep 17 00:00:00 2001 From: akash5100 Date: Thu, 18 Aug 2022 19:19:12 +0530 Subject: [PATCH 03/12] Add test for enum and update docstrings for enum --- docs/api.rst | 2 + hvpy/__init__.py | 1 + hvpy/datasources.py | 399 ++++++++++++++++++++++++++++++++- hvpy/tests/test_datasources.py | 24 ++ 4 files changed, 425 insertions(+), 1 deletion(-) create mode 100644 hvpy/tests/test_datasources.py diff --git a/docs/api.rst b/docs/api.rst index 1cb72c9..fd6018f 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -10,3 +10,5 @@ API Reference .. automodapi:: hvpy.parameters :allowed-package-names: hvpy.api_groups + +.. automodapi:: hvpy.datasources diff --git a/hvpy/__init__.py b/hvpy/__init__.py index ef3dc1e..b3093a5 100644 --- a/hvpy/__init__.py +++ b/hvpy/__init__.py @@ -1,3 +1,4 @@ from .facade import * from .config import set_api_url from .version import __version__ +from .datasources import * diff --git a/hvpy/datasources.py b/hvpy/datasources.py index ed97612..1fe7e29 100644 --- a/hvpy/datasources.py +++ b/hvpy/datasources.py @@ -1,107 +1,504 @@ from enum import Enum +__all__ = ["DataSources"] -class datasources(Enum): + +class DataSources(Enum): """ Enum for datasources hosted by the Helioviewer Project. """ EIT_171 = 0 + """ + SOHO instrument EIT, measurement 171. + """ + EIT_195 = 1 + """ + SOHO instrument EIT, measurement 195. + """ + EIT_284 = 2 + """ + SOHO instrument EIT, measurement 284. + """ + EIT_304 = 3 + """ + SOHO instrument EIT, measurement 304. + """ + LASCO_C2 = 4 + """ + SOHO instrument LASCO, measurement C2. + """ + LASCO_C3 = 5 + """ + SOHO instrument LASCO, measurement C3. + """ + MDI_MAG = 6 + """ + SOHO instrument MDI, measurement magnetogram. + """ + MDI_INT = 7 + """ + SOHO instrument MDI, measurement continuum. + """ + AIA_94 = 8 + """ + SDO instrument AIA, measurement 94. + """ + AIA_131 = 9 + """ + SDO instrument AIA, measurement 131. + """ + AIA_171 = 10 + """ + SDO instrument AIA, measurement 171. + """ + AIA_193 = 11 + """ + SDO instrument AIA, measurement 193. + """ + AIA_211 = 12 + """ + SDO instrument AIA, measurement 211. + """ + AIA_304 = 13 + """ + SDO instrument AIA, measurement 304. + """ + AIA_335 = 14 + """ + SDO instrument AIA, measurement 335. + """ + AIA_1600 = 15 + """ + SDO instrument AIA, measurement 1600. + """ + AIA_1700 = 16 + """ + SDO instrument AIA, measurement 1700. + """ + AIA_4500 = 17 + """ + SDO instrument AIA, measurement 4500. + """ + HMI_INT = 18 + """ + SDO instrument HMI, measurement continuum. + """ + HMI_MAG = 19 + """ + SDO instrument HMI, measurement magnetogram. + """ + EUVI_A_171 = 20 + """ + STEREO_A instrument SECCHI, detector EUVI, measurement 171. + """ + EUVI_A_195 = 21 + """ + STEREO_A instrument SECCHI, detector EUVI, measurement 195. + """ + EUVI_A_284 = 22 + """ + STEREO_A instrument SECCHI, detector EUVI, measurement 284. + """ + EUVI_A_304 = 23 + """ + STEREO_A instrument SECCHI, detector EUVI, measurement 304. + """ + EUVI_B_171 = 24 + """ + STEREO_B instrument SECCHI, detector EUVI, measurement 171. + """ + EUVI_B_195 = 25 + """ + STEREO_B instrument SECCHI, detector EUVI, measurement 195. + """ + EUVI_B_284 = 26 + """ + STEREO_B instrument SECCHI, detector EUVI, measurement 284. + """ + EUVI_B_304 = 27 + """ + STEREO_B instrument SECCHI, detector EUVI, measurement 304. + """ + COR1_A = 28 + """ + STEREO_A instrument SECCHI, detector COR1, measurement white-light. + """ + COR2_A = 29 + """ + STEREO_A instrument SECCHI, detector COR2, measurement white-light. + """ + COR1_B = 30 + """ + STEREO_B instrument SECCHI, detector COR1, measurement white-light. + """ + COR2_B = 31 + """ + STEREO_B instrument SECCHI, detector COR2, measurement white-light. + """ + SWAP_174 = 32 + """ + PROBA2 instrument SWAP, measurement 174. + """ + SXT_ALMGMN = 33 + """ + Yohkoh instrument SXT, measurement AlMgMn. + """ + SXT_THIN_AL = 34 + """ + Yohkoh instrument SXT, measurement thin-Al. + """ + SXT_WHITE_LIGHT = 35 + """ + Yohkoh instrument SXT, measurement white-light. + """ + XRT_AL_MED_AL_MESH = 38 + """ + + """ + XRT_AL_MED_AL_THICK = 39 + """ + Hinode instrument XRT Al_med/Al_thick. + """ + XRT_AL_MED_BE_THICK = 40 + """ + Hinode instrument XRT Al_med/Be_thick. + """ + XRT_AL_MED_GBAND = 41 + """ + Hinode instrument XRT Al_med/GBand. + """ + XRT_AL_MED_OPEN = 42 + """ + Hinode instrument XRT Al_med/Open. + """ + XRT_AL_MED_TI_POLY = 43 + """ + Hinode instrument XRT Al_med/Ti_poly. + """ + XRT_AL_POLY_AL_mesh = 44 + """ + Hinode instrument XRT Al_poly/Al_mesh. + """ + XRT_AL_POLY_AL_THICK = 45 + """ + Hinode instrument XRT Al_poly/Al_thick. + """ + XRT_AL_POLY_BE_THICK = 46 + """ + Hinode instrument XRT Al_poly/Be_thick. + """ + XRT_AL_POLY_GBAND = 47 + """ + Hinode instrument XRT Al_poly/GBand. + """ + XRT_AL_POLY_OPEN = 48 + """ + Hinode instrument XRT Al_poly/Open. + """ + XRT_AL_POLY_TI_POLY = 49 + """ + Hinode instrument XRT Al_poly/Ti_poly. + """ + XRT_BE_MED_AL_MESH = 50 + """ + Hinode instrument XRT Be_med/Al_mesh. + """ + XRT_BE_MED_AL_THICK = 51 + """ + Hinode instrument XRT Be_med/Al_thick. + """ + XRT_BE_MED_BE_THICK = 52 + """ + Hinode instrument XRT Be_med/Be_thick. + """ + XRT_BE_MED_GBAND = 53 + """ + Hinode instrument XRT Be_med/GBand. + """ + XRT_BE_MED_OPEN = 54 + """ + Hinode instrument XRT Be_med/Open. + """ + XRT_BE_MED_TI_POLY = 55 + """ + Hinode instrument XRT Be_med/Ti_poly. + """ + XRT_BE_THIN_AL_MESH = 56 + """ + Hinode instrument XRT Be_thin/Al_mesh. + """ + XRT_BE_THIN_AL_THICK = 57 + """ + Hinode instrument XRT Be_thin/Al_thick. + """ + XRT_BE_THIN_BE_THICK = 58 + """ + Hinode instrument XRT Be_thin/Be_thick. + """ + XRT_BE_THIN_GBAND = 59 + """ + Hinode instrument XRT Be_thin/GBand. + """ + XRT_BE_THIN_OPEN = 60 + """ + Hinode instrument XRT Be_thin/Open. + """ + XRT_BE_THIN_TI_POLY = 61 + """ + Hinode instrument XRT Be_thin/Ti_poly. + """ + XRT_C_POLY_AL_MESH = 62 + """ + Hinode instrument XRT C_poly/Al_mesh. + """ + XRT_C_POLY_AL_THICK = 63 + """ + Hinode instrument XRT C_poly/Al_thick. + """ + XRT_C_POLY_BE_THICK = 64 + """ + Hinode instrument XRT C_poly/Be_thick. + """ + XRT_C_POLY_GBAND = 65 + """ + Hinode instrument XRT C_poly/GBand. + """ + XRT_C_POLY_OPEN = 66 + """ + Hinode instrument XRT C_poly/Open. + """ + XRT_C_POLY_TI_POLY = 67 + """ + Hinode instrument XRT C_poly/Ti_poly. + """ + XRT_MISPOSITIONED_MISPOSITIONED = 68 + """ + Hinode instrument XRT Mispositioned/Mispositioned. + """ + XRT_OPEN_AL_MESH = 69 + """ + Hinode instrument XRT Open/Al_mesh. + """ + XRT_OPEN_AL_THICK = 70 + """ + Hinode instrument XRT Open/Al_thick. + """ + XRT_OPEN_BE_THICK = 71 + """ + Hinode instrument XRT Open/Be_thick. + """ + XRT_OPEN_GBAND = 72 + """ + Hinode instrument XRT Open/GBand. + """ + XRT_OPEN_OPEN = 73 + """ + Hinode instrument XRT Open/Open. + """ + XRT_OPEN_TI_POLY = 74 + """ + Hinode instrument XRT Open/Ti_poly. + """ + TRACE_171 = 75 + """ + TRACE measurement 171. + """ + TRACE_195 = 76 + """ + TRACE measurement 195. + """ + TRACE_284 = 77 + """ + TRACE measurement 284. + """ + TRACE_1216 = 78 + """ + TRACE measurement 1216. + """ + TRACE_1550 = 79 + """ + TRACE measurement 1550. + """ + TRACE_1600 = 80 + """ + TRACE measurement 1600. + """ + TRACE_1700 = 81 + """ + TRACE measurement 1700. + """ + TRACE_WHITE_LIGHT = 82 + """ + TRACE measurement white-light. + """ + COSMO_KCOR = 83 + """ + MLSO instrument COSMO, detector KCor, measurement 735. + """ + EUI_FSI_174 = 84 + """ + + """ + EUI_FSI_304 = 85 + """ + + """ + EUI_HRI_174 = 86 + """ + + """ + EUI_HRI_1216 = 87 + """ + + """ + XRT_ANY_ANY = 10001 + """ + Hinode instrument XRT any/any. + """ + XRT_ANY_AL_MESH = 10002 + """ + Hinode instrument XRT any/Al_mesh. + """ + XRT_ANY_AL_THICK = 10003 + """ + Hinode instrument XRT any/Al_thick. + """ + XRT_ANY_BE_THICK = 10004 + """ + Hinode instrument XRT any/Be_thick. + """ + XRT_ANY_GBAND = 10005 + """ + Hinode instrument XRT any/GBand. + """ + XRT_ANY_OPEN = 10006 + """ + Hinode instrument XRT any/Open. + """ + XRT_ANY_TI_POLY = 10007 + """ + Hinode instrument XRT any/Ti_poly. + """ + XRT_AL_MED_ANY = 10008 + """ + Hinode instrument XRT Al_med/any. + """ + XRT_AL_POLY_ANY = 10009 + """ + Hinode instrument XRT Al_poly/any. + """ + XRT_BE_MED_ANY = 10010 + """ + Hinode instrument XRT Be_med/any. + """ + XRT_BE_THIN_ANY = 10011 + """ + Hinode instrument XRT Be_thin/any. + """ + XRT_C_POLY_ANY = 10012 + """ + Hinode instrument XRT C_poly/any. + """ + XRT_OPEN_ANY = 10013 + """ + Hinode instrument XRT Open/any. + """ diff --git a/hvpy/tests/test_datasources.py b/hvpy/tests/test_datasources.py new file mode 100644 index 0000000..d1cf3a8 --- /dev/null +++ b/hvpy/tests/test_datasources.py @@ -0,0 +1,24 @@ +from hvpy.datasources import DataSources + + +def test_datasources(): + assert DataSources.EIT_171.name == "EIT_171" + assert DataSources.EIT_171.value == 0 + + assert DataSources.EIT_195.name == "EIT_195" + assert DataSources.EIT_195.value == 1 + + assert DataSources.EIT_284.name == "EIT_284" + assert DataSources.EIT_284.value == 2 + + assert DataSources.EIT_304.name == "EIT_304" + assert DataSources.EIT_304.value == 3 + + assert DataSources.LASCO_C2.name == "LASCO_C2" + assert DataSources.LASCO_C2.value == 4 + + assert DataSources.LASCO_C3.name == "LASCO_C3" + assert DataSources.LASCO_C3.value == 5 + + assert DataSources.MDI_MAG.name == "MDI_MAG" + assert DataSources.MDI_MAG.value == 6 From b1d943ab6299d92244db11892827c4b2b65a4c97 Mon Sep 17 00:00:00 2001 From: akash5100 Date: Thu, 18 Aug 2022 19:37:39 +0530 Subject: [PATCH 04/12] Add missing docstrings --- hvpy/datasources.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hvpy/datasources.py b/hvpy/datasources.py index 1fe7e29..e1805fa 100644 --- a/hvpy/datasources.py +++ b/hvpy/datasources.py @@ -190,7 +190,7 @@ class DataSources(Enum): XRT_AL_MED_AL_MESH = 38 """ - + Hinode instrument XRT Al-med/Al-mesh. """ XRT_AL_MED_AL_THICK = 39 @@ -420,22 +420,22 @@ class DataSources(Enum): EUI_FSI_174 = 84 """ - + Solar Orbiter instrument FSI, measurement 174. """ EUI_FSI_304 = 85 """ - + Solar Orbiter instrument FSI, measurement 304. """ EUI_HRI_174 = 86 """ - + Solar Orbiter instrument HRI, measurement 174. """ EUI_HRI_1216 = 87 """ - + Solar Orbiter instrument HRI, measurement 1216. """ XRT_ANY_ANY = 10001 From e3c9e44613c6bbffae4583724b52ebe3b5334aff Mon Sep 17 00:00:00 2001 From: akash5100 Date: Thu, 18 Aug 2022 20:51:07 +0530 Subject: [PATCH 05/12] Disable class inheritance diag. --- docs/api.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api.rst b/docs/api.rst index fd6018f..2deae2a 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -7,8 +7,10 @@ API Reference .. automodapi:: hvpy.core .. automodapi:: hvpy.io + :no-inheritance-diagram: .. automodapi:: hvpy.parameters :allowed-package-names: hvpy.api_groups .. automodapi:: hvpy.datasources + :no-inheritance-diagram: From 6eb20e0cccc4b378d0b6d0fa92bd9783f221e6d6 Mon Sep 17 00:00:00 2001 From: akash5100 Date: Fri, 19 Aug 2022 12:51:34 +0530 Subject: [PATCH 06/12] Disable class inheritance diag. --- docs/api.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api.rst b/docs/api.rst index 2deae2a..6be1fbc 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -3,6 +3,7 @@ API Reference ************* .. automodapi:: hvpy + :no-inheritance-diagram: .. automodapi:: hvpy.core From db74a3979a34178fbfa924d737f900a580d4a4bf Mon Sep 17 00:00:00 2001 From: akash5100 Date: Fri, 19 Aug 2022 12:52:18 +0530 Subject: [PATCH 07/12] Add datasource from the beta API --- hvpy/datasources.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/hvpy/datasources.py b/hvpy/datasources.py index e1805fa..60691f5 100644 --- a/hvpy/datasources.py +++ b/hvpy/datasources.py @@ -438,6 +438,36 @@ class DataSources(Enum): Solar Orbiter instrument HRI, measurement 1216. """ + SUVI_94 = 88 + """ + GOES-R instrument SUVI, measurement 94. + """ + + SUVI_131 = 89 + """ + GOES-R instrument SUVI, measurement 131. + """ + + SUVI_171 = 90 + """ + GOES-R instrument SUVI, measurement 171. + """ + + SUVI_195 = 91 + """ + GOES-R instrument SUVI, measurement 195. + """ + + SUVI_284 = 92 + """ + GOES-R instrument SUVI, measurement 284. + """ + + SUVI_304 = 93 + """ + GOES-R instrument SUVI, measurement 304. + """ + XRT_ANY_ANY = 10001 """ Hinode instrument XRT any/any. From 3f689c15cf054e3e61125a4292e9c906c862f8c2 Mon Sep 17 00:00:00 2001 From: akash5100 Date: Fri, 19 Aug 2022 17:27:06 +0530 Subject: [PATCH 08/12] Test to verify datasources is in Enum --- hvpy/tests/test_datasources.py | 42 ++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/hvpy/tests/test_datasources.py b/hvpy/tests/test_datasources.py index d1cf3a8..c9dd92b 100644 --- a/hvpy/tests/test_datasources.py +++ b/hvpy/tests/test_datasources.py @@ -1,24 +1,26 @@ -from hvpy.datasources import DataSources +from hvpy import DataSources, getDataSources def test_datasources(): - assert DataSources.EIT_171.name == "EIT_171" - assert DataSources.EIT_171.value == 0 - assert DataSources.EIT_195.name == "EIT_195" - assert DataSources.EIT_195.value == 1 - - assert DataSources.EIT_284.name == "EIT_284" - assert DataSources.EIT_284.value == 2 - - assert DataSources.EIT_304.name == "EIT_304" - assert DataSources.EIT_304.value == 3 - - assert DataSources.LASCO_C2.name == "LASCO_C2" - assert DataSources.LASCO_C2.value == 4 - - assert DataSources.LASCO_C3.name == "LASCO_C3" - assert DataSources.LASCO_C3.value == 5 - - assert DataSources.MDI_MAG.name == "MDI_MAG" - assert DataSources.MDI_MAG.value == 6 + source_id_list = list() + res = getDataSources() + + for name, observ in res.items(): + # TRACE only has measurements and is thus nested once + if name == "TRACE": + for instr, params in observ.items(): + source_id_list.append(params["sourceId"]) + else: + for inst, detect in observ.items(): + for wavelength, params in detect.items(): + if "sourceId" in params: + source_id_list.append(params["sourceId"]) + else: + for wave, adict in params.items(): + source_id_list.append(adict["sourceId"]) + + data_sources_list = [source_id.value for source_id in DataSources] + + for source_id in source_id_list: + assert source_id in data_sources_list From 08e7508076853219e86216cd2913b6372042dc54 Mon Sep 17 00:00:00 2001 From: akash5100 Date: Fri, 19 Aug 2022 17:30:40 +0530 Subject: [PATCH 09/12] fix codestyle failure --- hvpy/tests/test_datasources.py | 1 - 1 file changed, 1 deletion(-) diff --git a/hvpy/tests/test_datasources.py b/hvpy/tests/test_datasources.py index c9dd92b..13e97eb 100644 --- a/hvpy/tests/test_datasources.py +++ b/hvpy/tests/test_datasources.py @@ -2,7 +2,6 @@ def test_datasources(): - source_id_list = list() res = getDataSources() From 5df8e94467d3049161db0527cc111b2164444c3c Mon Sep 17 00:00:00 2001 From: akash5100 Date: Sat, 20 Aug 2022 20:12:10 +0530 Subject: [PATCH 10/12] Update test to check all enums in response --- hvpy/tests/test_datasources.py | 35 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/hvpy/tests/test_datasources.py b/hvpy/tests/test_datasources.py index 13e97eb..5d3dce3 100644 --- a/hvpy/tests/test_datasources.py +++ b/hvpy/tests/test_datasources.py @@ -1,25 +1,24 @@ from hvpy import DataSources, getDataSources +sids = list() + + +def find_key(obj, key): + if key in obj: + sids.append(obj[key]) + else: + for k, v in obj.items(): + if isinstance(v, dict): + find_key(v, key) + else: + continue + def test_datasources(): - source_id_list = list() + enum_value_list = [s_id.value for s_id in DataSources] res = getDataSources() - for name, observ in res.items(): - # TRACE only has measurements and is thus nested once - if name == "TRACE": - for instr, params in observ.items(): - source_id_list.append(params["sourceId"]) - else: - for inst, detect in observ.items(): - for wavelength, params in detect.items(): - if "sourceId" in params: - source_id_list.append(params["sourceId"]) - else: - for wave, adict in params.items(): - source_id_list.append(adict["sourceId"]) - - data_sources_list = [source_id.value for source_id in DataSources] + find_key(res, "sourceId") - for source_id in source_id_list: - assert source_id in data_sources_list + for sid in sids: + assert sid in enum_value_list From d14f99b2bb26671fe8d01a21f0f2ec4b4b092b28 Mon Sep 17 00:00:00 2001 From: akash5100 Date: Sat, 20 Aug 2022 21:46:33 +0530 Subject: [PATCH 11/12] Add docstring and clean some lines --- hvpy/tests/test_datasources.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/hvpy/tests/test_datasources.py b/hvpy/tests/test_datasources.py index 5d3dce3..2305dd7 100644 --- a/hvpy/tests/test_datasources.py +++ b/hvpy/tests/test_datasources.py @@ -1,24 +1,34 @@ +from typing import Any + from hvpy import DataSources, getDataSources -sids = list() +def find_nested_keys(obj: dict, key: Any, out: list): + """ + Recursively walks through a nested dictionary and extracts values + associated with the given key. -def find_key(obj, key): + obj - dictionary with nested dictionaries + key - Key to find within the nest + out - values found are appended to this list + """ if key in obj: - sids.append(obj[key]) + out.append(obj[key]) else: for k, v in obj.items(): if isinstance(v, dict): - find_key(v, key) + find_nested_keys(v, key, out) else: continue def test_datasources(): + source_id_list = list() enum_value_list = [s_id.value for s_id in DataSources] - res = getDataSources() - find_key(res, "sourceId") + response = getDataSources() + + find_nested_keys(response, "sourceId", source_id_list) - for sid in sids: - assert sid in enum_value_list + for source_id in source_id_list: + assert source_id in enum_value_list From f8f66f1465892a08cdd1b112feb371e9b7b6c934 Mon Sep 17 00:00:00 2001 From: Akash Verma Date: Sat, 20 Aug 2022 21:55:08 +0530 Subject: [PATCH 12/12] Update hvpy/tests/test_datasources.py Co-authored-by: Nabil Freij --- hvpy/tests/test_datasources.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/hvpy/tests/test_datasources.py b/hvpy/tests/test_datasources.py index 2305dd7..804a5dd 100644 --- a/hvpy/tests/test_datasources.py +++ b/hvpy/tests/test_datasources.py @@ -23,12 +23,9 @@ def find_nested_keys(obj: dict, key: Any, out: list): def test_datasources(): - source_id_list = list() - enum_value_list = [s_id.value for s_id in DataSources] - + source_ids = [] + enum_values = [s_id.value for s_id in DataSources] response = getDataSources() - - find_nested_keys(response, "sourceId", source_id_list) - - for source_id in source_id_list: - assert source_id in enum_value_list + find_nested_keys(response, "sourceId", source_ids) + for source_id in source_ids: + assert source_id in enum_values