Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/user_docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
project = "Segmenter ML Plugin for napari"
copyright = "2024, Allen Institute for Cell Science"
author = "Segmenter ML plugin team"
release = "1.0.0"
release = "1.0.1rc0"


# -- General configuration ---------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
# https://peps.python.org/pep-0621/
[project]
name = "allencell-segmenter-ml"
version = "1.0.0"
version = "1.0.1rc0"
description = "A plugin to leverage ML segmentation in napari"
readme = "README.md"
requires-python = ">=3.9,<3.11"
Expand Down Expand Up @@ -118,7 +118,7 @@ where = ["src"]

# https://pypi.org/project/bumpver
[tool.bumpver]
current_version = "1.0.0"
current_version = "1.0.1rc0"
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
commit_message = "Bump version {old_version} -> {new_version}"
commit = true
Expand Down
2 changes: 1 addition & 1 deletion src/allencell_ml_segmenter/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "1.0.0"
__version__ = "1.0.1rc0"

from allencell_ml_segmenter.napari.napari_reader import napari_get_reader
from allencell_ml_segmenter.napari.sample_data import make_sample_data
Expand Down
22 changes: 21 additions & 1 deletion src/allencell_ml_segmenter/_tests/main/test_main_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
from allencell_ml_segmenter.main.main_widget import MainWidget
from unittest.mock import Mock, patch
import napari
from napari.utils.events import EmitterGroup


# IMPORTANT NOTE: MainWidget is different from the other widgets since we do not directly
# instantiate it in our code. So, it will always receive a napari.Viewer object in
Expand All @@ -21,6 +23,20 @@
# but for now I'm just mocking it here.


class FakeLayers:
def __init__(self):
self.events = EmitterGroup(
source=self,
inserting=None,
inserted=None,
removing=None,
removed=None,
moving=None,
moved=None,
changed=None,
) # all napari layer events


@pytest.fixture
def main_widget(qtbot: QtBot) -> MainWidget:
"""
Expand Down Expand Up @@ -155,10 +171,14 @@ def test_experiments_home_initialized(qtbot: QtBot) -> None:
settings.set_user_experiments_path(
None
) # Simulates state where users has not yet chosen an experiments home.
viewer = Mock(
spec="napari.Viewer"
) # set up fake viewer with layers that can emit events
viewer.layers = FakeLayers()

# ACT
MainWidget(
Mock(spec=napari.Viewer), settings
viewer, settings
) # If the users settings does not find an experiments home path, it will prompt the user for one and persist it.

# ASSERT
Expand Down
7 changes: 6 additions & 1 deletion src/allencell_ml_segmenter/main/viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,12 @@ def get_layers_nonthreshold(self) -> list[Layer]:
def subscribe_layers_change_event(
self, function: Callable[[NapariEvent], None]
) -> None:
self.viewer.events.layers_change.connect(function)
# keeps layer list synced with the layer checkboxes in our plugin when
# items are added, removed, moved, or changed
self.viewer.layers.events.changed.connect(function)
self.viewer.layers.events.inserted.connect(function)
self.viewer.layers.events.removed.connect(function)
self.viewer.layers.events.moved.connect(function)

def _get_layer_by_name(self, name: str) -> Optional[Layer]:
layers: list[Layer] = self.get_layers()
Expand Down
Loading