Skip to content

Commit 2a47000

Browse files
authored
make largest_segment_id optional (#786)
* make largest_segment_id optional * add changelog entry * fix typecheck
1 parent eff8793 commit 2a47000

File tree

5 files changed

+7
-5
lines changed

5 files changed

+7
-5
lines changed

webknossos/Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ For upgrade instructions, please check the respective *Breaking Changes* section
1818
### Added
1919

2020
### Changed
21+
- The largest_segment_id is optional now. [#786](https://github.com/scalableminds/webknossos-libs/pull/786)
2122

2223
### Fixed
2324

webknossos/tests/test_from_images.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def test_repo_images(
112112
assert l.num_channels == num_channels
113113
assert l.bounding_box == wk.BoundingBox(topleft=(0, 0, 0), size=size)
114114
if isinstance(l, wk.SegmentationLayer):
115+
assert l.largest_segment_id is not None
115116
assert l.largest_segment_id > 0
116117
return ds
117118

webknossos/webknossos/dataset/dataset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ def add_layer(
636636
**(
637637
attr.asdict(layer_properties, recurse=False)
638638
), # use all attributes from LayerProperties
639-
largest_segment_id=kwargs["largest_segment_id"],
639+
largest_segment_id=kwargs.get("largest_segment_id"),
640640
)
641641
)
642642
if "mappings" in kwargs:

webknossos/webknossos/dataset/layer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,13 +1072,13 @@ class SegmentationLayer(Layer):
10721072
_properties: SegmentationLayerProperties
10731073

10741074
@property
1075-
def largest_segment_id(self) -> int:
1075+
def largest_segment_id(self) -> Optional[int]:
10761076
return self._properties.largest_segment_id
10771077

10781078
@largest_segment_id.setter
1079-
def largest_segment_id(self, largest_segment_id: int) -> None:
1079+
def largest_segment_id(self, largest_segment_id: Optional[int]) -> None:
10801080
self.dataset._ensure_writable()
1081-
if type(largest_segment_id) != int:
1081+
if largest_segment_id is not None and type(largest_segment_id) != int:
10821082
assert largest_segment_id == int(
10831083
largest_segment_id
10841084
), f"A non-integer value was passed for largest_segment_id ({largest_segment_id})."

webknossos/webknossos/dataset/properties.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ def resolutions(self) -> List[MagViewProperties]:
147147

148148
@attr.define
149149
class SegmentationLayerProperties(LayerProperties):
150-
largest_segment_id: int = -1
150+
largest_segment_id: Optional[int] = None
151151
mappings: List[str] = []
152152

153153

0 commit comments

Comments
 (0)