Skip to content

Commit 0b4a88f

Browse files
fix(dataclass_proxy): return None for other node types
- Fix data class proxy to return None when used with not scripted module node type
1 parent 138ec6f commit 0b4a88f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

tests/test_scripted_module_dataclass.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,11 @@ def test_scripted_proxy_is_compatible_with_complex_types(a_scene):
139139
assert node.GetParameter(name.my_time) == json.dumps(dt.time().isoformat())
140140
assert node.GetParameter(name.my_path) == json.dumps(Path(__file__).as_posix())
141141
assert node.GetParameter(name.my_model_node) == json.dumps(model_node.GetID())
142+
143+
144+
def test_proxy_over_non_scripted_module_returns_none_value(a_scene):
145+
node = vtkMRMLModelNode()
146+
proxy = create_scripted_module_dataclass_proxy(Simple, node, a_scene)
147+
assert proxy.a is None
148+
assert proxy.b is None
149+
assert proxy.c_default is None

trame_slicer/utils/scripted_module_node_dataclass_proxy.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ def __set__(self, instance, value):
111111
self.set_value(value)
112112

113113
def get_value(self):
114+
if not isinstance(self._node, vtkMRMLScriptedModuleNode):
115+
return None
116+
114117
if self._state_id not in self._node.GetParameterNames():
115118
return self._default if self._default != MISSING else None
116119

0 commit comments

Comments
 (0)