Skip to content

[bug] ROI broken (pygfx + wx/jupyter) #190

@gnodar01

Description

@gnodar01

Using:

  • pygfx: 0.9.0
  • ndv: 0.3.1
  • wxpython: 4.2.3
  • python: 3.9

Also noticed same error using jupyter frontend

  • ipywidgets: 8.1.6
  • ipython: 8.34.0
  • jupyter: 1.1.1

Running on Mac OsX (15.4, x86_64)

Same error with every example image I tried.

When clicking the "ROI" button, I receive:

Traceback (most recent call last):
  File "src/psygnal/_signal.py", line 1279, in _run_emit_loop
  File "src/psygnal/_signal.py", line 1308, in _run_emit_loop_immediate
  File "src/psygnal/_weak_callback.py", line 454, in cb
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 401, in _on_interaction_mode_changed
    self.roi = RectangularROIModel(visible=False)
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 197, in roi
    self._set_roi_model_connected(self._roi_model)
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 317, in _set_roi_model_connected
    self._create_roi_view()
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 413, in _create_roi_view
    self._roi_view = self._canvas.add_bounding_box()
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_pygfx/_array_canvas.py", line 499, in add_bounding_box
    roi = PyGFXRectangle(
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_pygfx/_array_canvas.py", line 149, in __init__
    self._handles = self._create_handles()
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_pygfx/_array_canvas.py", line 246, in _create_handles
    geometry.get_bounding_box = get_handle_bb(geometry.get_bounding_box)
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/pygfx/utils/trackable.py", line 153, in __getattribute__
    raise AttributeError(key) from None
AttributeError: get_bounding_box

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_wx/_array_view.py", line 420, in _on_add_roi_toggled
    self._viewer_model.interaction_mode = (
  File "src/psygnal/_group_descriptor.py", line 401, in _setattr_and_emit_
  File "src/psygnal/_group_descriptor.py", line 318, in __exit__
  File "src/psygnal/_signal.py", line 1201, in emit
  File "src/psygnal/_signal.py", line 1296, in _run_emit_loop
  File "src/psygnal/_signal.py", line 1279, in _run_emit_loop
  File "src/psygnal/_signal.py", line 1308, in _run_emit_loop_immediate
  File "src/psygnal/_weak_callback.py", line 454, in cb
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 401, in _on_interaction_mode_changed
    self.roi = RectangularROIModel(visible=False)
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 197, in roi
    self._set_roi_model_connected(self._roi_model)
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 317, in _set_roi_model_connected
    self._create_roi_view()
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/controllers/_array_viewer.py", line 413, in _create_roi_view
    self._roi_view = self._canvas.add_bounding_box()
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_pygfx/_array_canvas.py", line 499, in add_bounding_box
    roi = PyGFXRectangle(
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_pygfx/_array_canvas.py", line 149, in __init__
    self._handles = self._create_handles()
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/ndv/views/_pygfx/_array_canvas.py", line 246, in _create_handles
    geometry.get_bounding_box = get_handle_bb(geometry.get_bounding_box)
  File "/Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
ages/pygfx/utils/trackable.py", line 153, in __getattribute__
    raise AttributeError(key) from None
psygnal._exceptions.EmitLoopError: 

While emitting signal 'ndv.controllers._array_viewer.ArrayViewerModelSignalGroup.interaction_mode'
, an error occurred in a callback:

  AttributeError: get_bounding_box
  --------------------------------

  SIGNAL EMISSION: 
    /Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-packages
/wx/core.py:2254 in MainLoop
      rv = wx.PyApp.MainLoop(self)
    /Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-packages
/ndv/views/_wx/_array_view.py:420 in _on_add_roi_toggled
      self._viewer_model.interaction_mode = (  # <-- SIGNAL WAS EMITTED HERE

  CALLBACK CHAIN:
    src/psygnal/_signal.py:1279 in _run_emit_loop
    ... 9 more frames ...
    /Users/ngogober/Developer/CellProfiler/CellProfiler/.pixi/envs/dev/lib/python3.9/site-pack
/pygfx/utils/trackable.py:153 in __getattribute__
      raise AttributeError(key) from None  # <-- ERROR OCCURRED HERE 

      Local variables:
                 key = 'get_bounding_box'
               value = undefined

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingjupyterAffects the Jupyter gui backendpygfxAffects the Pygfx canvas backendwxAffects the Wx gui backend

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions