diff --git a/src/astro_image_display_api/api_test.py b/src/astro_image_display_api/api_test.py index 8061fdf..676368f 100644 --- a/src/astro_image_display_api/api_test.py +++ b/src/astro_image_display_api/api_test.py @@ -78,7 +78,7 @@ def _assert_empty_catalog_table(self, table): assert sorted(table.colnames) == sorted(["x", "y", "coord"]) def _get_catalog_names_as_set(self): - marks = self.image.get_catalog_names() + marks = self.image.catalog_names return set(marks) def test_width_height(self): @@ -498,7 +498,7 @@ def test_load_multiple_catalogs(self, catalog): catalog_label="test2", ) - assert sorted(self.image.get_catalog_names()) == ["test1", "test2"] + assert sorted(self.image.catalog_names) == ["test1", "test2"] # No guarantee markers will come back in the same order, so sort them. t1 = self.image.get_catalog(catalog_label="test1") @@ -522,7 +522,7 @@ def test_load_multiple_catalogs(self, catalog): # other one without a label. self.image.remove_catalog(catalog_label="test1") # Make sure test1 is really gone. - assert self.image.get_catalog_names() == ["test2"] + assert self.image.catalog_names == ("test2",) # Get without a catalog t2 = self.image.get_catalog() @@ -798,15 +798,14 @@ def test_save_overwrite(self, tmp_path): # Using overwrite should save successfully self.image.save(filename, overwrite=True) - def test_get_image_labels(self, data): + def test_image_labels(self, data): # the test viewer begins with a default empty image - assert len(self.image.get_image_labels()) == 1 - assert self.image.get_image_labels()[0] is None - assert isinstance(self.image.get_image_labels(), tuple) + assert len(self.image.image_labels) == 0 + assert isinstance(self.image.image_labels, tuple) self.image.load_image(data, image_label="test") - assert len(self.image.get_image_labels()) == 2 - assert self.image.get_image_labels()[-1] == "test" + assert len(self.image.image_labels) == 1 + assert self.image.image_labels[-1] == "test" def test_get_image(self, data): self.image.load_image(data, image_label="test") diff --git a/src/astro_image_display_api/image_viewer_logic.py b/src/astro_image_display_api/image_viewer_logic.py index 6879337..db84dc2 100644 --- a/src/astro_image_display_api/image_viewer_logic.py +++ b/src/astro_image_display_api/image_viewer_logic.py @@ -371,11 +371,11 @@ def get_image( ) return self._images[image_label].data - def get_image_labels( - self, - **kwargs, # noqa: ARG002 - ) -> tuple[str, ...]: - return tuple(self._images.keys()) + @property + def image_labels(self) -> tuple[str, ...]: + return tuple(k for k in self._images.keys() if k is not None) + + image_labels.__doc__ = ImageViewerInterface.image_labels.__doc__ def _determine_largest_dimension(self, shape: tuple[int, int]) -> int: """ @@ -647,13 +647,11 @@ def get_catalog( get_catalog.__doc__ = ImageViewerInterface.get_catalog.__doc__ - def get_catalog_names( - self, - **kwargs, # noqa: ARG002 - ) -> list[str]: - return list(self._user_catalog_labels()) + @property + def catalog_names(self) -> tuple[str, ...]: + return tuple(self._user_catalog_labels()) - get_catalog_names.__doc__ = ImageViewerInterface.get_catalog_names.__doc__ + catalog_names.__doc__ = ImageViewerInterface.catalog_names.__doc__ # Methods that modify the view def set_viewport( diff --git a/src/astro_image_display_api/interface_definition.py b/src/astro_image_display_api/interface_definition.py index 5993f78..e763e5d 100644 --- a/src/astro_image_display_api/interface_definition.py +++ b/src/astro_image_display_api/interface_definition.py @@ -85,13 +85,13 @@ def get_image( """ raise NotImplementedError + @property @abstractmethod - def get_image_labels( + def image_labels( self, - **kwargs, - ) -> tuple[str]: + ) -> tuple[str, ...]: """ - Get the labels of the loaded images. + Labels of the loaded images. Returns ------- @@ -547,14 +547,15 @@ def get_catalog( """ raise NotImplementedError + @property @abstractmethod - def get_catalog_names(self) -> list[str]: + def catalog_names(self) -> tuple[str, ...]: """ - Get the names of the loaded catalogs. + Names of the loaded catalogs. Returns ------- - list of str + tuple of str The names of the loaded catalogs. Notes