From 1a82976d065203f34e614b72f7d592b7cbfbfa92 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Tue, 1 Oct 2024 10:59:08 -0400 Subject: [PATCH 01/12] Also listen to SubsetCreateMessage here --- jdaviz/core/template_mixin.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jdaviz/core/template_mixin.py b/jdaviz/core/template_mixin.py index daba53cd24..91e34c1df1 100644 --- a/jdaviz/core/template_mixin.py +++ b/jdaviz/core/template_mixin.py @@ -2028,6 +2028,8 @@ def __init__(self, plugin, items, selected, multiselect=None, selected_has_subre self.hub.subscribe(self, SubsetUpdateMessage, handler=lambda msg: self._update_subset(msg.subset, msg.attribute)) + self.hub.subscribe(self, SubsetCreateMessage, + handler=lambda msg: self._update_subset(msg.subset)) self.hub.subscribe(self, SubsetDeleteMessage, handler=lambda msg: self._delete_subset(msg.subset)) self.hub.subscribe(self, SubsetRenameMessage, From f54781659fab11582bde8ca69f9c7ded5721c8c5 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Tue, 1 Oct 2024 12:57:45 -0400 Subject: [PATCH 02/12] Debugging --- .../spectral_extraction/spectral_extraction.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py b/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py index c1f87223cc..2ce7be5315 100644 --- a/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py +++ b/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py @@ -263,6 +263,7 @@ def _aperture_items_changed(self, msg): self._extract_in_new_instance(subset_lbl=subset_lbl, auto_update=True, add_data=True) except Exception: + raise msg = SnackbarMessage( f"Automatic {self.resulting_product_name} extraction for {subset_lbl} failed", # noqa color='error', sender=self, timeout=10000) @@ -458,9 +459,14 @@ def _extract_from_aperture(self, cube, uncert_cube, mask_cube, aperture, subset_id=aperture.selected, cls=NDDataArray ) if uncert_cube: - uncertainties = uncert_cube.get_subset_object( - subset_id=aperture.selected, cls=StdDevUncertainty - ) + try: + # Subset may not be linked to the uncertainty cube at this point?? + uncertainties = uncert_cube.get_subset_object( + subset_id=aperture.selected, cls=StdDevUncertainty + ) + except ValueError: + raise + uncertainties = None else: uncertainties = None From 73042bf2b70ce5b9b52e0ce593442f7933e02de8 Mon Sep 17 00:00:00 2001 From: gibsongreen Date: Wed, 8 Jan 2025 10:30:21 -0500 Subject: [PATCH 03/12] update glue pin --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 829b2f2c47..91e2654d6a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ "matplotlib>=3.6", "traitlets>=5.0.5", "bqplot>=0.12.37", - "glue-core>=1.20.0", + "glue-core @ git+https://github.com/glue-viz/glue.git@refs/pull/2515/head#egg=glue-core", "glue-jupyter>=0.23.0", "echo>=0.5.0", "ipykernel>=6.19.4", From 0dd220b13f4e4c1fb77a4db521eda8c19db7fbcd Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Tue, 21 Jan 2025 10:45:02 -0500 Subject: [PATCH 04/12] Remove debugging code --- .../spectral_extraction/spectral_extraction.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py b/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py index 2ce7be5315..ab98ad1e00 100644 --- a/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py +++ b/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py @@ -263,7 +263,6 @@ def _aperture_items_changed(self, msg): self._extract_in_new_instance(subset_lbl=subset_lbl, auto_update=True, add_data=True) except Exception: - raise msg = SnackbarMessage( f"Automatic {self.resulting_product_name} extraction for {subset_lbl} failed", # noqa color='error', sender=self, timeout=10000) @@ -459,14 +458,10 @@ def _extract_from_aperture(self, cube, uncert_cube, mask_cube, aperture, subset_id=aperture.selected, cls=NDDataArray ) if uncert_cube: - try: - # Subset may not be linked to the uncertainty cube at this point?? - uncertainties = uncert_cube.get_subset_object( - subset_id=aperture.selected, cls=StdDevUncertainty - ) - except ValueError: - raise - uncertainties = None + # Subset may not be linked to the uncertainty cube at this point?? + uncertainties = uncert_cube.get_subset_object( + subset_id=aperture.selected, cls=StdDevUncertainty + ) else: uncertainties = None From cb5d6dc894689c2d44970ff9af6fa031533b23d2 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Tue, 21 Jan 2025 10:46:59 -0500 Subject: [PATCH 05/12] Remove comment --- .../cubeviz/plugins/spectral_extraction/spectral_extraction.py | 1 - 1 file changed, 1 deletion(-) diff --git a/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py b/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py index ab98ad1e00..c1f87223cc 100644 --- a/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py +++ b/jdaviz/configs/cubeviz/plugins/spectral_extraction/spectral_extraction.py @@ -458,7 +458,6 @@ def _extract_from_aperture(self, cube, uncert_cube, mask_cube, aperture, subset_id=aperture.selected, cls=NDDataArray ) if uncert_cube: - # Subset may not be linked to the uncertainty cube at this point?? uncertainties = uncert_cube.get_subset_object( subset_id=aperture.selected, cls=StdDevUncertainty ) From 8769fffc1e048156b0275dc52f8e149e17019542 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Tue, 21 Jan 2025 10:48:18 -0500 Subject: [PATCH 06/12] Bump glue-core pin to last bugfix release --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 91e2654d6a..a4eb5ad1c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ "matplotlib>=3.6", "traitlets>=5.0.5", "bqplot>=0.12.37", - "glue-core @ git+https://github.com/glue-viz/glue.git@refs/pull/2515/head#egg=glue-core", + "glue-core>=1.21.1", "glue-jupyter>=0.23.0", "echo>=0.5.0", "ipykernel>=6.19.4", From f0170ff5361c8ddb9e1fa9bb05d60e76d36a5aa9 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Wed, 22 Jan 2025 14:07:13 -0500 Subject: [PATCH 07/12] Manually pass attribute when subset is created --- jdaviz/core/template_mixin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdaviz/core/template_mixin.py b/jdaviz/core/template_mixin.py index 91e34c1df1..3e326e8222 100644 --- a/jdaviz/core/template_mixin.py +++ b/jdaviz/core/template_mixin.py @@ -2029,7 +2029,7 @@ def __init__(self, plugin, items, selected, multiselect=None, selected_has_subre self.hub.subscribe(self, SubsetUpdateMessage, handler=lambda msg: self._update_subset(msg.subset, msg.attribute)) self.hub.subscribe(self, SubsetCreateMessage, - handler=lambda msg: self._update_subset(msg.subset)) + handler=lambda msg: self._update_subset(msg.subset, attribute="type")) self.hub.subscribe(self, SubsetDeleteMessage, handler=lambda msg: self._delete_subset(msg.subset)) self.hub.subscribe(self, SubsetRenameMessage, From 31d1a7c34fd6b136e3d0a632394fba804fc51255 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Wed, 22 Jan 2025 14:12:55 -0500 Subject: [PATCH 08/12] Just trigger if attribute is None instead of passing inaccurate value --- jdaviz/core/template_mixin.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jdaviz/core/template_mixin.py b/jdaviz/core/template_mixin.py index 3e326e8222..73bb3e7236 100644 --- a/jdaviz/core/template_mixin.py +++ b/jdaviz/core/template_mixin.py @@ -2029,7 +2029,7 @@ def __init__(self, plugin, items, selected, multiselect=None, selected_has_subre self.hub.subscribe(self, SubsetUpdateMessage, handler=lambda msg: self._update_subset(msg.subset, msg.attribute)) self.hub.subscribe(self, SubsetCreateMessage, - handler=lambda msg: self._update_subset(msg.subset, attribute="type")) + handler=lambda msg: self._update_subset(msg.subset)) self.hub.subscribe(self, SubsetDeleteMessage, handler=lambda msg: self._delete_subset(msg.subset)) self.hub.subscribe(self, SubsetRenameMessage, @@ -2107,7 +2107,8 @@ def _update_subset(self, subset, attribute=None): self.items = self.items + [self._subset_to_dict(subset)] # noqa else: # 'type' can be passed manually rather than coming from SubsetUpdateMessage.attribute - if attribute in ('style', 'type'): + # This will be None if triggered by SubsetCreateMessage + if attribute in ('style', 'type') or attribute is None: # TODO: may need to add label and then rebuild the entire list if/when # we add support for renaming subsets From 4d448133ca6b632af5e7cc8bad9e36a4df9bcd00 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen <39831871+rosteen@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:51:25 -0500 Subject: [PATCH 09/12] Revert pin bump --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a4eb5ad1c4..829b2f2c47 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ "matplotlib>=3.6", "traitlets>=5.0.5", "bqplot>=0.12.37", - "glue-core>=1.21.1", + "glue-core>=1.20.0", "glue-jupyter>=0.23.0", "echo>=0.5.0", "ipykernel>=6.19.4", From eaa6e56d8976b6d689a78b771d69cfdb23479fdb Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Thu, 30 Jan 2025 11:15:35 -0500 Subject: [PATCH 10/12] Add priority value to ensure this gets processed last --- jdaviz/core/template_mixin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jdaviz/core/template_mixin.py b/jdaviz/core/template_mixin.py index 73bb3e7236..3d74a59388 100644 --- a/jdaviz/core/template_mixin.py +++ b/jdaviz/core/template_mixin.py @@ -1540,7 +1540,8 @@ def __init__(self, plugin, items, selected, viewer, self.hub.subscribe(self, RemoveDataMessage, handler=lambda _: self._update_items()) self.hub.subscribe(self, SubsetCreateMessage, - handler=lambda _: self._on_subset_created()) + handler=lambda _: self._on_subset_created(), + priority=100) self.hub.subscribe(self, SubsetUpdateMessage, handler=lambda _: self._update_items()) self.hub.subscribe(self, SubsetDeleteMessage, From 8cecc071c1a0c51f4e6d3dbedaceb66e2dac3b29 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Wed, 5 Feb 2025 10:54:21 -0500 Subject: [PATCH 11/12] Switch to low integer = low priority --- jdaviz/core/template_mixin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jdaviz/core/template_mixin.py b/jdaviz/core/template_mixin.py index 3d74a59388..d1665109fd 100644 --- a/jdaviz/core/template_mixin.py +++ b/jdaviz/core/template_mixin.py @@ -1539,9 +1539,10 @@ def __init__(self, plugin, items, selected, viewer, handler=self._on_data_added) self.hub.subscribe(self, RemoveDataMessage, handler=lambda _: self._update_items()) + # Default Glue subscriber priority is 10, lowest integer priority is handled last self.hub.subscribe(self, SubsetCreateMessage, handler=lambda _: self._on_subset_created(), - priority=100) + priority=0) self.hub.subscribe(self, SubsetUpdateMessage, handler=lambda _: self._update_items()) self.hub.subscribe(self, SubsetDeleteMessage, From 51ae5cbf409cd7edcba759911b21eafd8069b449 Mon Sep 17 00:00:00 2001 From: Ricky O'Steen <39831871+rosteen@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:08:39 -0500 Subject: [PATCH 12/12] Update jdaviz/core/template_mixin.py Co-authored-by: Kyle Conroy --- jdaviz/core/template_mixin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdaviz/core/template_mixin.py b/jdaviz/core/template_mixin.py index d1665109fd..d00a6ef337 100644 --- a/jdaviz/core/template_mixin.py +++ b/jdaviz/core/template_mixin.py @@ -2110,7 +2110,7 @@ def _update_subset(self, subset, attribute=None): else: # 'type' can be passed manually rather than coming from SubsetUpdateMessage.attribute # This will be None if triggered by SubsetCreateMessage - if attribute in ('style', 'type') or attribute is None: + if attribute in ('style', 'type', None): # TODO: may need to add label and then rebuild the entire list if/when # we add support for renaming subsets