Skip to content

Commit a13da44

Browse files
committed
we can actually allow direct setting of features from another feature
1 parent 07d15ec commit a13da44

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

fastplotlib/graphics/features/_base.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ def __call__(self, *args, **kwargs):
5757
def _set(self, value):
5858
pass
5959

60+
def _parse_set_value(self, value):
61+
if isinstance(value, GraphicFeature):
62+
return value()
63+
64+
return value
65+
6066
def add_event_handler(self, handler: callable):
6167
"""
6268
Add an event handler. All added event handlers are called when this feature changes.
@@ -163,6 +169,7 @@ class GraphicFeatureIndexable(GraphicFeature):
163169
"""And indexable Graphic Feature, colors, data, sizes etc."""
164170

165171
def _set(self, value):
172+
value = self._parse_set_value(value)
166173
self[:] = value
167174

168175
@abstractmethod

fastplotlib/graphics/features/_present.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ def __init__(self, parent, present: bool = True, collection_index: int = False):
1313
super(PresentFeature, self).__init__(parent, present, collection_index)
1414

1515
def _set(self, present: bool):
16+
value = self._parse_set_value(present)
17+
1618
i = 0
1719
wo = self._parent.world_object
1820
while not isinstance(self._scene, (Group, Scene)):

0 commit comments

Comments
 (0)