From b43df960146bd28c6b10d3657e1c48a6eef0e393 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 16:06:17 -0500 Subject: [PATCH 01/19] update scatter_inspector_overlay.py --- chaco/scatter_inspector_overlay.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/chaco/scatter_inspector_overlay.py b/chaco/scatter_inspector_overlay.py index c2a7dadce..5920b3609 100644 --- a/chaco/scatter_inspector_overlay.py +++ b/chaco/scatter_inspector_overlay.py @@ -7,6 +7,7 @@ # Enthought library imports from enable.api import ColorTrait, MarkerTrait from traits.api import Float, Int, Str, Trait +from traits.observation.events import TraitChangeEvent # Local, relative imports from .abstract_overlay import AbstractOverlay @@ -127,23 +128,30 @@ def _draw_overlay(self, gc, view_bounds=None, mode="normal"): def _component_changed(self, old, new): if old: - old.on_trait_change(self._ds_changed, 'index', remove=True) + old.observe(self._ds_changed, 'index', remove=True) if hasattr(old, "value"): - old.on_trait_change(self._ds_changed, 'value', remove=True) + old.observe(self._ds_changed, 'value', remove=True) if new: for dsname in ("index", "value"): if not hasattr(new, dsname): continue - new.on_trait_change(self._ds_changed, dsname) + new.observe(self._ds_changed, dsname) if getattr(new, dsname): - self._ds_changed(new, dsname, None, getattr(new,dsname)) + self._ds_changed( + TraitChangeEvent( + object=new, + name=dsname, + old=None, + new=getattr(new, dsname) + ) + ) return - def _ds_changed(self, object, name, old, new): - if old: - old.on_trait_change(self.metadata_changed, 'metadata_changed', remove=True) - if new: - new.on_trait_change(self.metadata_changed, 'metadata_changed') + def _ds_changed(self, event): + if event.old: + old.observe(self.metadata_changed, 'metadata_changed', remove=True) + if event.new: + new.observe(self.metadata_changed, 'metadata_changed') return From 4c34c1c76c2c16f55a4325666083469d6b48c43e Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 16:11:59 -0500 Subject: [PATCH 02/19] update tools/image_inspector_tool.py --- chaco/tools/image_inspector_tool.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/chaco/tools/image_inspector_tool.py b/chaco/tools/image_inspector_tool.py index 46573e348..db9337632 100644 --- a/chaco/tools/image_inspector_tool.py +++ b/chaco/tools/image_inspector_tool.py @@ -127,17 +127,18 @@ def _build_text_from_event(self, event): def _image_inspector_changed(self, old, new): if old: - old.on_trait_event(self._new_value_updated, 'new_value', + old.observe(self._new_value_updated, 'new_value', remove=True) - old.on_trait_change(self._tool_visible_changed, "visible", + old.observe(self._tool_visible_updated, "visible", remove=True) if new: - new.on_trait_event(self._new_value_updated, 'new_value') - new.on_trait_change(self._tool_visible_changed, "visible") - self._tool_visible_changed() + new.observe(self._new_value_updated, 'new_value') + new.observe(self._tool_visible_updated, "visible") + self._tool_visible_updated() def _new_value_updated(self, event): - if event is None: + new_value_event = event.new + if new_value_event is None: self.text = "" if self.visibility == "auto": self.visible = False @@ -150,13 +151,13 @@ def _new_value_updated(self, event): else: self.alternate_position = None - self.text = self._build_text_from_event(event) + self.text = self._build_text_from_event(new_value_event) self.component.request_redraw() def _visible_changed(self): self.component.request_redraw() - def _tool_visible_changed(self): + def _tool_visible_updated(self, event=None): self.visibility = self.image_inspector.visible if self.visibility != "auto": self.visible = self.visibility From 517dfa136d11cb078917042fa745c4e77222abfa Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 16:20:29 -0500 Subject: [PATCH 03/19] update examples/demo/zoomed_plot/zoom_overlay.py --- examples/demo/zoomed_plot/zoom_overlay.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/demo/zoomed_plot/zoom_overlay.py b/examples/demo/zoomed_plot/zoom_overlay.py index a6b4a8611..a34864ddb 100644 --- a/examples/demo/zoomed_plot/zoom_overlay.py +++ b/examples/demo/zoomed_plot/zoom_overlay.py @@ -99,13 +99,14 @@ def _get_selection_screencoords(self): def _source_changed(self, old, new): if old is not None and old.controller is not None: - old.controller.on_trait_change(self._selection_update_handler, "selection", + old.controller.observe(self._selection_update_handler, "selection", remove=True) if new is not None and new.controller is not None: - new.controller.on_trait_change(self._selection_update_handler, "selection") + new.controller.observe(self._selection_update_handler, "selection") return - def _selection_update_handler(self, value): + def _selection_update_handler(self, event): + value = event.new if value is not None and self.destination is not None: r = self.destination.index_mapper.range start, end = amin(value), amax(value) From 49bc9d7c3ad6f1729104fc770461605f674fea5b Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 16:24:33 -0500 Subject: [PATCH 04/19] update and fix examples/demo/financial/stock_prices.py --- examples/demo/financial/stock_prices.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/examples/demo/financial/stock_prices.py b/examples/demo/financial/stock_prices.py index f7e0d7655..6df06ee11 100644 --- a/examples/demo/financial/stock_prices.py +++ b/examples/demo/financial/stock_prices.py @@ -93,26 +93,28 @@ def _create_price_plots(self, times, prices, mini_height=75): miniplot.tools.append(range_tool) range_overlay = RangeSelectionOverlay(miniplot, metadata_name="selections") miniplot.overlays.append(range_overlay) - range_tool.on_trait_change(self._range_selection_handler, "selection") + range_tool.observe(self._range_selection_handler, "selection") # Attach a handler that sets the tool when the plot's index range changes self.range_tool = range_tool - price_plot.index_range.on_trait_change(self._plot_range_handler, "updated") + price_plot.index_range.observe(self._plot_range_handler, "updated") return price_plot, miniplot def _range_selection_handler(self, event): + range_selection_event = event.new # The event obj should be a tuple (low, high) in data space - if event is not None: - low, high = event + if range_selection_event is not None: + low, high = range_selection_event self.price_plot.index_range.low = low self.price_plot.index_range.high = high else: self.price_plot.index_range.set_bounds("auto", "auto") def _plot_range_handler(self, event): - if event is not None: + plot_range_event = event.new + if plot_range_event is not None: low, high = event if "auto" not in (low, high): self.range_tool.selection = (low, high) @@ -136,7 +138,7 @@ def _create_vol_plot(self, times, volumes, height=100): constrain_direction="x")) return vol_plot - def _create_window(self): + def _create_component(self): # Create the data and datasource objects # In order for the date axis to work, the index data points need to @@ -179,7 +181,7 @@ def _create_window(self): fill_padding=False) container.add(mini_plot, vol_plot, price_plot) - return Window(self, -1, component=container) + return container if __name__ == "__main__": # Save demo so that it doesn't get garbage collected when run within From 67fc1b1e21388f9e2a3750e2a226c1bca02b348b Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 16:29:20 -0500 Subject: [PATCH 05/19] update examples/demo/financial/correlations.py and fix changes to scatter_inspector_overlay.py --- chaco/scatter_inspector_overlay.py | 5 +++-- examples/demo/financial/correlations.py | 14 +++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/chaco/scatter_inspector_overlay.py b/chaco/scatter_inspector_overlay.py index 5920b3609..0b176c91b 100644 --- a/chaco/scatter_inspector_overlay.py +++ b/chaco/scatter_inspector_overlay.py @@ -148,9 +148,10 @@ def _component_changed(self, old, new): return def _ds_changed(self, event): - if event.old: + old, new = event.old, event.new + if old: old.observe(self.metadata_changed, 'metadata_changed', remove=True) - if event.new: + if new: new.observe(self.metadata_changed, 'metadata_changed') return diff --git a/examples/demo/financial/correlations.py b/examples/demo/financial/correlations.py index 3be8eca0a..9c73ce5bd 100644 --- a/examples/demo/financial/correlations.py +++ b/examples/demo/financial/correlations.py @@ -105,7 +105,7 @@ def _create_returns_plot(self): # Grab a reference to the Time axis datasource and add a listener to its # selections metadata self.times_ds = renderer.index - self.times_ds.on_trait_change(self._selections_changed, 'metadata_changed') + self.times_ds.observe(self._selections_updated, 'metadata_changed') self.returns_plot = plot def _create_corr_plot(self): @@ -123,13 +123,15 @@ def _create_data(self, *names): plotdata.set_data(name, cumprod(random.lognormal(0.0, 0.04, size=numpoints))) self.plotdata = plotdata - def _selections_changed(self, event): + def _selections_updated(self, event): + metadata_changed_event = event.new if self.corr_renderer is None: return - if not isinstance(event, dict) or "selections" not in event: + if not isinstance(metadata_changed_event, dict) \ + or "selections" not in metadata_changed_event: return corr_index = self.corr_renderer.index - selections = event["selections"] + selections = metadata_changed_event["selections"] if selections is None: corr_index.metadata.pop("selections", None) return @@ -138,7 +140,9 @@ def _selections_changed(self, event): data = self.times_ds.get_data() low_ndx = data.searchsorted(low) high_ndx = data.searchsorted(high) - corr_index.metadata["selections"] = arange(low_ndx, high_ndx+1, 1, dtype=int) + corr_index.metadata["selections"] = arange( + low_ndx, high_ndx+1, 1, dtype=int + ) self.corr_plot.request_redraw() @observe("sym1,sym2") From 0a090636a07cabf34d689acfa7cb66bb0b3a2090 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:37:42 -0500 Subject: [PATCH 06/19] update examples/demo/basic/scatter_toggle.py and fix changes to chaco/scatter_inspector_overlay.py --- chaco/scatter_inspector_overlay.py | 6 +++--- examples/demo/basic/scatter_toggle.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/chaco/scatter_inspector_overlay.py b/chaco/scatter_inspector_overlay.py index 0b176c91b..7cdc52228 100644 --- a/chaco/scatter_inspector_overlay.py +++ b/chaco/scatter_inspector_overlay.py @@ -42,7 +42,7 @@ class ScatterInspectorOverlay(AbstractOverlay): # using a series of trait change handlers (defined at the end of the # class) #@on_trait_change('component.index.metadata_changed,component.value.metadata_changed') - def metadata_changed(self, object, name, old, new): + def metadata_updated(self, event): if self.component is not None: self.component.request_redraw() return @@ -150,9 +150,9 @@ def _component_changed(self, old, new): def _ds_changed(self, event): old, new = event.old, event.new if old: - old.observe(self.metadata_changed, 'metadata_changed', remove=True) + old.observe(self.metadata_updated, 'metadata_changed', remove=True) if new: - new.observe(self.metadata_changed, 'metadata_changed') + new.observe(self.metadata_updated, 'metadata_changed') return diff --git a/examples/demo/basic/scatter_toggle.py b/examples/demo/basic/scatter_toggle.py index 359743b94..f9fb13044 100644 --- a/examples/demo/basic/scatter_toggle.py +++ b/examples/demo/basic/scatter_toggle.py @@ -104,7 +104,7 @@ class Demo(HasTraits): resizable=True, title=title ) - def _metadata_handler(self): + def _metadata_handler(self, event): sel_indices = self.index_datasource.metadata.get('selections', []) print("Selection indices:", sel_indices) @@ -119,7 +119,7 @@ def _plot_default(self): # Set up the trait handler for the selection self.index_datasource = my_plot.index - self.index_datasource.on_trait_change(self._metadata_handler, + self.index_datasource.observe(self._metadata_handler, "metadata_changed") return plot From 1137f04a1f1a33b51a92ccb1a37e91da8e3e8d44 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:39:05 -0500 Subject: [PATCH 07/19] update examples/demo/basic/scatter_select.py --- examples/demo/basic/scatter_select.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/demo/basic/scatter_select.py b/examples/demo/basic/scatter_select.py index 535bbc88f..e96955a67 100644 --- a/examples/demo/basic/scatter_select.py +++ b/examples/demo/basic/scatter_select.py @@ -98,7 +98,7 @@ class Demo(HasTraits): resizable=True, title=title ) - def _selection_changed(self): + def _selection_changed(self, event): mask = self.index_datasource.metadata['selection'] print("New selection: ") print(compress(mask, arange(len(mask)))) @@ -115,7 +115,7 @@ def _plot_default(self): # Set up the trait handler for the selection self.index_datasource = my_plot.index - lasso_selection.on_trait_change(self._selection_changed, + lasso_selection.observe(self._selection_changed, 'selection_changed') return plot From 6de2d63a86c4d7e97d336de938684394bdeb741f Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:40:11 -0500 Subject: [PATCH 08/19] update examples/demo/basic/scatter_rect_select.py --- examples/demo/basic/scatter_rect_select.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/demo/basic/scatter_rect_select.py b/examples/demo/basic/scatter_rect_select.py index cf6d2e845..2e1f28669 100644 --- a/examples/demo/basic/scatter_rect_select.py +++ b/examples/demo/basic/scatter_rect_select.py @@ -107,7 +107,7 @@ class Demo(HasTraits): resizable=True, title=title ) - def _selection_changed(self): + def _selection_changed(self, event): mask = self.index_datasource.metadata['selections'] print("New selection: ") print(compress(mask, arange(len(mask)))) @@ -123,7 +123,7 @@ def _plot_default(self): # Set up the trait handler for the selection self.index_datasource = my_plot.index - rect_selection.on_trait_change(self._selection_changed, + rect_selection.observe(self._selection_changed, 'selection_changed') return plot From 4d7ee30d8066c9cc0f23c19ae8bdbdf78944e466 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:41:43 -0500 Subject: [PATCH 09/19] update examples/demo/basic/scatter_inspector.py --- examples/demo/basic/scatter_inspector.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/demo/basic/scatter_inspector.py b/examples/demo/basic/scatter_inspector.py index 394b6b37a..a8178fa07 100644 --- a/examples/demo/basic/scatter_inspector.py +++ b/examples/demo/basic/scatter_inspector.py @@ -53,9 +53,10 @@ def _create_plot_component(): scatter.overlays.append(overlay) # Optional: add a listener on inspector events: - def echo(new): + def echo(event): + new = event.new print("{} event on element {}".format(new.event_type, new.event_index)) - inspector.on_trait_change(echo, "inspector_event") + inspector.observe(echo, "inspector_event") return plot From c48665f4dab2cd426e715c4cc84bafa362e37af8 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:43:43 -0500 Subject: [PATCH 10/19] update examples/demo/basic/image_lasso.py --- examples/demo/basic/image_lasso.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/demo/basic/image_lasso.py b/examples/demo/basic/image_lasso.py index 1669fae11..65646b25c 100644 --- a/examples/demo/basic/image_lasso.py +++ b/examples/demo/basic/image_lasso.py @@ -23,7 +23,11 @@ # # Create the Chaco plot. #=============================================================================== -def lasso_updated(lasso_tool, name, old, new_selections): +def lasso_updated(event): + lasso_tool = event.object + name = event.name + old = event.old + new_selections = event.new # new_selections is a list of arrays of coordinates in dataspace. It is a # list because the LassoSelection supports multiple, disjoint selection regions. for i, selection in enumerate(new_selections): @@ -62,7 +66,7 @@ def _create_plot_component():# Create a scalar field to colormap plot.padding = 50 lasso_selection = LassoSelection(component=img_plot) - lasso_selection.on_trait_change(lasso_updated, "disjoint_selections") + lasso_selection.observe(lasso_updated, "disjoint_selections") lasso_overlay = LassoOverlay(lasso_selection = lasso_selection, component=img_plot) img_plot.tools.append(lasso_selection) img_plot.overlays.append(lasso_overlay) From 066d9f6219cb12c0f7360bbf028aef435e0edafc Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:45:34 -0500 Subject: [PATCH 11/19] update examples/demo/advanced/scalar_image_function_inspector.py --- examples/demo/advanced/scalar_image_function_inspector.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/demo/advanced/scalar_image_function_inspector.py b/examples/demo/advanced/scalar_image_function_inspector.py index 9ba886488..35418e975 100644 --- a/examples/demo/advanced/scalar_image_function_inspector.py +++ b/examples/demo/advanced/scalar_image_function_inspector.py @@ -178,7 +178,7 @@ def create_plot(self): array([]), sort_order=("ascending","ascending")) image_index_range = DataRange2D(self._image_index) - self._image_index.on_trait_change(self._metadata_changed, + self._image_index.observe(self._metadata_changed, "metadata_changed") self._image_value = ImageData(data=array([]), value_depth=1) @@ -323,7 +323,8 @@ def update(self, model): # Event handlers #--------------------------------------------------------------------------- - def _metadata_changed(self, old, new): + def _metadata_changed(self, event): + old, new = event.old, event.new """ This function takes out a cross section from the image data, based on the line inspector selections, and updates the line and scatter plots.""" From e45adbe6a3e90854ab7aa8127813e17d80fd4d7f Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:48:57 -0500 Subject: [PATCH 12/19] updat examples/demo/advanced/scalar_image_function_inspector_old.py --- .../demo/advanced/scalar_image_function_inspector_old.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/demo/advanced/scalar_image_function_inspector_old.py b/examples/demo/advanced/scalar_image_function_inspector_old.py index 5656c460d..dab0517ee 100644 --- a/examples/demo/advanced/scalar_image_function_inspector_old.py +++ b/examples/demo/advanced/scalar_image_function_inspector_old.py @@ -140,7 +140,7 @@ def create_plot(self): array([]), sort_order=("ascending","ascending")) image_index_range = DataRange2D(self._image_index) - self._image_index.on_trait_change(self._metadata_changed, + self._image_index.observe(self._metadata_changed, "metadata_changed") self._image_value = ImageData(data=array([]), value_depth=1) @@ -283,7 +283,8 @@ def update(self, model): # Event handlers #--------------------------------------------------------------------------- - def _metadata_changed(self, old, new): + def _metadata_changed(self, event): + old, new = event.old, event.new """ This function takes out a cross section from the image data, based on the line inspector selections, and updates the line and scatter plots.""" @@ -353,7 +354,7 @@ class Controller(Handler): def init(self, info): self.model = info.object.model self.view = info.object.view - self.model.on_trait_change(self._model_changed, "model_changed") + self.model.observe(self._model_changed, "model_changed") #--------------------------------------------------------------------------- @@ -371,7 +372,7 @@ def edit_plot(self, ui_info): # Private Controller interface #--------------------------------------------------------------------------- - def _model_changed(self): + def _model_changed(self, event): if self.view is not None: self.view.update(self.model) From c22e513caa9f81580d0df3da136b5f672a4c1703 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:49:48 -0500 Subject: [PATCH 13/19] update examples/demo/chaco_trait_editor.py --- examples/demo/chaco_trait_editor.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/demo/chaco_trait_editor.py b/examples/demo/chaco_trait_editor.py index e84aa63bb..c417356a3 100644 --- a/examples/demo/chaco_trait_editor.py +++ b/examples/demo/chaco_trait_editor.py @@ -125,7 +125,7 @@ def init(self, parent): # Do not allow the user to reset the range range_selection.event_state = "selected" range_selection.deselect = lambda x: None - range_selection.on_trait_change(self.update_interval, 'selection') + range_selection.observe(self.update_interval, 'selection') plot.tools.append(range_selection) plot.overlays.append(RangeKnobsOverlay(plot)) @@ -143,7 +143,8 @@ def init(self, parent): else: self.control.setMaximumSize(factory.width, factory.height) - def update_interval(self, value): + def update_interval(self, event): + value = event.new low, high = value low = max(low, 0) From 41f4c0d815e1175e1fde88b0a8527bb7983534cc Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:52:51 -0500 Subject: [PATCH 14/19] update chaco/tools/tests/test_scatter_inspector.py --- chaco/tools/tests/test_scatter_inspector.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chaco/tools/tests/test_scatter_inspector.py b/chaco/tools/tests/test_scatter_inspector.py index f933ebcba..c14368d43 100644 --- a/chaco/tools/tests/test_scatter_inspector.py +++ b/chaco/tools/tests/test_scatter_inspector.py @@ -103,7 +103,7 @@ def test_hover_triggers_event(self): tool = self.tool # Add a listener to catch the emitted event: - tool.on_trait_change(self.store_inspector_event, "inspector_event") + tool.observe(self.store_inspector_event, "inspector_event") try: self.assertIsNone(self.insp_event) @@ -131,14 +131,14 @@ def test_hover_triggers_event(self): self.assertEqual(self.insp_event.event_type, "hover") self.assertEqual(self.insp_event.event_index, 1) finally: - tool.on_trait_change(self.store_inspector_event, "inspector_event", + tool.observe(self.store_inspector_event, "inspector_event", remove=True) def test_select_triggers_event(self): tool = self.tool # Add a listener to catch the emitted event: - tool.on_trait_change(self.store_inspector_event, "inspector_event") + tool.observe(self.store_inspector_event, "inspector_event") try: self.assertIsNone(self.insp_event) @@ -162,10 +162,10 @@ def test_select_triggers_event(self): self.assertEqual(self.insp_event.event_type, "deselect") self.assertEqual(self.insp_event.event_index, 1) finally: - tool.on_trait_change(self.store_inspector_event, "inspector_event", + tool.observe(self.store_inspector_event, "inspector_event", remove=True) # Helper methods ---------------------------------------------------------- def store_inspector_event(self, event): - self.insp_event = event + self.insp_event = event.new From 3bd9cc7155033ce4c7b59a8883324bb0534fb467 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 20:54:36 -0500 Subject: [PATCH 15/19] update chaco/tools/tests/test_image_inspector.py --- chaco/tools/tests/test_image_inspector.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/chaco/tools/tests/test_image_inspector.py b/chaco/tools/tests/test_image_inspector.py index 61474b612..4544b7151 100644 --- a/chaco/tools/tests/test_image_inspector.py +++ b/chaco/tools/tests/test_image_inspector.py @@ -57,7 +57,7 @@ def test_mouse_move_custom_overlay(self): tool = self.tool # Add a listener to catch the emitted event: - tool.on_trait_change(self.store_inspector_event, "new_value") + tool.observe(self.store_inspector_event, "new_value") try: self.assertIsNone(self.insp_event) @@ -67,13 +67,13 @@ def test_mouse_move_custom_overlay(self): self.assertEqual(self.overlay2.text, 'Position: (0, 0)') finally: - tool.on_trait_change(self.store_inspector_event, "new_value", + tool.observe(self.store_inspector_event, "new_value", remove=True) # Helper methods ---------------------------------------------------------- def store_inspector_event(self, event): - self.insp_event = event + self.insp_event = event.new class TestImageInspectorToolGray(BaseImageInspectorTool, TestCase): @@ -89,7 +89,7 @@ def test_mouse_move_collect_image_info(self): tool = self.tool # Add a listener to catch the emitted event: - tool.on_trait_change(self.store_inspector_event, "new_value") + tool.observe(self.store_inspector_event, "new_value") try: self.assertIsNone(self.insp_event) @@ -136,7 +136,7 @@ def test_mouse_move_collect_image_info(self): self.assertEqual(self.overlay.text, '(1, 1)\n3') finally: - tool.on_trait_change(self.store_inspector_event, "new_value", + tool.observe(self.store_inspector_event, "new_value", remove=True) @@ -153,7 +153,7 @@ def test_mouse_move_collect_image_info(self): tool = self.tool # Add a listener to catch the emitted event: - tool.on_trait_change(self.store_inspector_event, "new_value") + tool.observe(self.store_inspector_event, "new_value") try: self.assertIsNone(self.insp_event) @@ -205,5 +205,5 @@ def test_mouse_move_collect_image_info(self): self.assertEqual(self.overlay.text, '(1, 1)\n(9, 10, 11)') finally: - tool.on_trait_change(self.store_inspector_event, "new_value", + tool.observe(self.store_inspector_event, "new_value", remove=True) From d42290962b1752713d8d98fe013d451387802c0b Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 21:18:24 -0500 Subject: [PATCH 16/19] update chaco/tools/simple_zoom.py --- chaco/tools/simple_zoom.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chaco/tools/simple_zoom.py b/chaco/tools/simple_zoom.py index 932900560..bf1ba5be4 100644 --- a/chaco/tools/simple_zoom.py +++ b/chaco/tools/simple_zoom.py @@ -149,7 +149,7 @@ def __init__(self, component=None, *args, **kw): self._orig_low_setting = (x_range.low_setting, y_range.low_setting) self._orig_high_setting = \ (x_range.high_setting, y_range.high_setting) - component.on_trait_change(self._reset_state_to_current, + component.observe(self._reset_state_to_current, "index_data_changed") return @@ -594,7 +594,7 @@ def _activate(self): # implementations of abstract methods on ToolHistoryMixin #------------------------------------------------------------------------ - def _reset_state_to_current(self): + def _reset_state_to_current(self, event=None): """ Clears the tool history, and sets the current state to be the first state in the history. """ From 51bf40d214ebcee4bd9a1197dfdc47606bc4798b Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 21:34:17 -0500 Subject: [PATCH 17/19] update chaco/tools/range_selection.py tthis was and still is broken --- chaco/tools/range_selection.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/chaco/tools/range_selection.py b/chaco/tools/range_selection.py index 8aeb9497e..5cb544de6 100644 --- a/chaco/tools/range_selection.py +++ b/chaco/tools/range_selection.py @@ -679,15 +679,15 @@ def _determine_axis(self): else: return 0 - def __mapper_changed(self): + def __mapper_changed(self, event): self.deselect() return def _axis_changed(self, old, new): if old is not None: - self.plot.on_trait_change(self.__mapper_changed, + self.plot.observe(self.__mapper_changed, old + "_mapper", remove=True) if new is not None: - self.plot.on_trait_change(self.__mapper_changed, - old + "_mapper", remove=True) + self.plot.observe(self.__mapper_changed, + new + "_mapper") return From db1127795d0b8d55be14468577dcc6022355fe48 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Thu, 1 Apr 2021 21:35:50 -0500 Subject: [PATCH 18/19] update chaco/tools/range_selection_overlay.py --- chaco/tools/range_selection_overlay.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chaco/tools/range_selection_overlay.py b/chaco/tools/range_selection_overlay.py index a9bf4298f..bbef9b2cb 100644 --- a/chaco/tools/range_selection_overlay.py +++ b/chaco/tools/range_selection_overlay.py @@ -161,10 +161,10 @@ def _attach_metadata_handler(self, old, new): datasource = getattr(self.plot, self.axis) if old: - datasource.on_trait_change(self._metadata_change_handler, "metadata_changed", + datasource.observe(self._metadata_change_handler, "metadata_changed", remove=True) if new: - datasource.on_trait_change(self._metadata_change_handler, "metadata_changed") + datasource.observe(self._metadata_change_handler, "metadata_changed") return def _metadata_change_handler(self, event): From fa617a661612f85ddd04857c7cee711294e72043 Mon Sep 17 00:00:00 2001 From: Aaron Ayres Date: Fri, 2 Apr 2021 07:23:31 -0500 Subject: [PATCH 19/19] flake8 indentation --- chaco/tools/range_selection.py | 8 ++++---- chaco/tools/tests/test_scatter_inspector.py | 5 +++-- examples/demo/advanced/scalar_image_function_inspector.py | 3 +-- .../demo/advanced/scalar_image_function_inspector_old.py | 3 +-- examples/demo/basic/scatter_rect_select.py | 3 +-- examples/demo/basic/scatter_select.py | 3 +-- examples/demo/basic/scatter_toggle.py | 5 +++-- 7 files changed, 14 insertions(+), 16 deletions(-) diff --git a/chaco/tools/range_selection.py b/chaco/tools/range_selection.py index 5cb544de6..03fd2a117 100644 --- a/chaco/tools/range_selection.py +++ b/chaco/tools/range_selection.py @@ -685,9 +685,9 @@ def __mapper_changed(self, event): def _axis_changed(self, old, new): if old is not None: - self.plot.observe(self.__mapper_changed, - old + "_mapper", remove=True) + self.plot.observe( + self.__mapper_changed, old + "_mapper", remove=True + ) if new is not None: - self.plot.observe(self.__mapper_changed, - new + "_mapper") + self.plot.observe(self.__mapper_changed, new + "_mapper") return diff --git a/chaco/tools/tests/test_scatter_inspector.py b/chaco/tools/tests/test_scatter_inspector.py index c14368d43..5d1c4ab24 100644 --- a/chaco/tools/tests/test_scatter_inspector.py +++ b/chaco/tools/tests/test_scatter_inspector.py @@ -162,8 +162,9 @@ def test_select_triggers_event(self): self.assertEqual(self.insp_event.event_type, "deselect") self.assertEqual(self.insp_event.event_index, 1) finally: - tool.observe(self.store_inspector_event, "inspector_event", - remove=True) + tool.observe( + self.store_inspector_event, "inspector_event", remove=True + ) # Helper methods ---------------------------------------------------------- diff --git a/examples/demo/advanced/scalar_image_function_inspector.py b/examples/demo/advanced/scalar_image_function_inspector.py index 35418e975..adeb05044 100644 --- a/examples/demo/advanced/scalar_image_function_inspector.py +++ b/examples/demo/advanced/scalar_image_function_inspector.py @@ -178,8 +178,7 @@ def create_plot(self): array([]), sort_order=("ascending","ascending")) image_index_range = DataRange2D(self._image_index) - self._image_index.observe(self._metadata_changed, - "metadata_changed") + self._image_index.observe(self._metadata_changed, "metadata_changed") self._image_value = ImageData(data=array([]), value_depth=1) image_value_range = DataRange1D(self._image_value) diff --git a/examples/demo/advanced/scalar_image_function_inspector_old.py b/examples/demo/advanced/scalar_image_function_inspector_old.py index dab0517ee..6f19ecc67 100644 --- a/examples/demo/advanced/scalar_image_function_inspector_old.py +++ b/examples/demo/advanced/scalar_image_function_inspector_old.py @@ -140,8 +140,7 @@ def create_plot(self): array([]), sort_order=("ascending","ascending")) image_index_range = DataRange2D(self._image_index) - self._image_index.observe(self._metadata_changed, - "metadata_changed") + self._image_index.observe(self._metadata_changed, "metadata_changed") self._image_value = ImageData(data=array([]), value_depth=1) image_value_range = DataRange1D(self._image_value) diff --git a/examples/demo/basic/scatter_rect_select.py b/examples/demo/basic/scatter_rect_select.py index 2e1f28669..29cc6c060 100644 --- a/examples/demo/basic/scatter_rect_select.py +++ b/examples/demo/basic/scatter_rect_select.py @@ -123,8 +123,7 @@ def _plot_default(self): # Set up the trait handler for the selection self.index_datasource = my_plot.index - rect_selection.observe(self._selection_changed, - 'selection_changed') + rect_selection.observe(self._selection_changed, 'selection_changed') return plot diff --git a/examples/demo/basic/scatter_select.py b/examples/demo/basic/scatter_select.py index e96955a67..9e169eb38 100644 --- a/examples/demo/basic/scatter_select.py +++ b/examples/demo/basic/scatter_select.py @@ -115,8 +115,7 @@ def _plot_default(self): # Set up the trait handler for the selection self.index_datasource = my_plot.index - lasso_selection.observe(self._selection_changed, - 'selection_changed') + lasso_selection.observe(self._selection_changed, 'selection_changed') return plot diff --git a/examples/demo/basic/scatter_toggle.py b/examples/demo/basic/scatter_toggle.py index f9fb13044..6d580e0da 100644 --- a/examples/demo/basic/scatter_toggle.py +++ b/examples/demo/basic/scatter_toggle.py @@ -119,8 +119,9 @@ def _plot_default(self): # Set up the trait handler for the selection self.index_datasource = my_plot.index - self.index_datasource.observe(self._metadata_handler, - "metadata_changed") + self.index_datasource.observe( + self._metadata_handler, "metadata_changed" + ) return plot