From de8d180a9329a5420275e61c76cd8e8384853dc3 Mon Sep 17 00:00:00 2001 From: Matt Craig Date: Mon, 7 Jul 2025 16:16:27 -0700 Subject: [PATCH 1/2] Refactor initialization to make subclassing easier --- src/astro_image_display_api/image_viewer_logic.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/astro_image_display_api/image_viewer_logic.py b/src/astro_image_display_api/image_viewer_logic.py index 7241957..a80d444 100644 --- a/src/astro_image_display_api/image_viewer_logic.py +++ b/src/astro_image_display_api/image_viewer_logic.py @@ -84,6 +84,9 @@ class ImageViewerLogic: _center: tuple[numbers.Real, numbers.Real] = (0.0, 0.0) def __post_init__(self): + self._set_up_catalog_image_dicts() + + def _set_up_catalog_image_dicts(self): # This is a dictionary of marker sets. The keys are the names of the # marker sets, and the values are the tables containing the markers. self._catalogs = defaultdict(CatalogInfo) From 3d805b5214b58b6d461417211dfef704eb0b6409 Mon Sep 17 00:00:00 2001 From: Matt Craig Date: Wed, 9 Jul 2025 16:10:37 -0700 Subject: [PATCH 2/2] Remove unused attributes in sample viewer --- src/astro_image_display_api/image_viewer_logic.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/astro_image_display_api/image_viewer_logic.py b/src/astro_image_display_api/image_viewer_logic.py index a80d444..597a5aa 100644 --- a/src/astro_image_display_api/image_viewer_logic.py +++ b/src/astro_image_display_api/image_viewer_logic.py @@ -74,11 +74,6 @@ class ImageViewerLogic: state to simulate the behavior of a real viewer. """ - _cuts: BaseInterval | tuple[float, float] = AsymmetricPercentileInterval( - upper_percentile=95 - ) - _stretch: BaseStretch = LinearStretch - # some internal variable for keeping track of viewer state _wcs: WCS | None = None _center: tuple[numbers.Real, numbers.Real] = (0.0, 0.0) @@ -189,9 +184,9 @@ def set_cuts( **kwargs, # noqa: ARG002 ) -> None: if isinstance(value, tuple) and len(value) == 2: - self._cuts = ManualInterval(value[0], value[1]) + cuts = ManualInterval(value[0], value[1]) elif isinstance(value, BaseInterval): - self._cuts = value + cuts = value else: raise TypeError( "Cuts must be an Astropy.visualization Interval object or a tuple " @@ -202,7 +197,7 @@ def set_cuts( raise ValueError( f"Image label '{image_label}' not found. Please load an image first." ) - self._images[image_label].cuts = self._cuts + self._images[image_label].cuts = cuts def set_colormap( self,