InsightSoftwareConsortium / itkwidgets

An elegant Python interface for visualization on the web platform to interactively generate insights into multidimensional images, point sets, and geometry.
https://itkwidgets.readthedocs.io/
Apache License 2.0
579 stars 83 forks source link

Itkwidgets import fails due to underlying package update #625

Closed tbirdso closed 1 year ago

tbirdso commented 1 year ago

Overview

Installing itkwidgets==0.32.5 with default dependencies and then importing in Python results in an error. This can be traced back to a recent ipydatawidgets update.

ipydatawidgets should be pinned to <4.3.3 pending a fix.

Observed behavior

> import itkwidgets
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\itkwidgets\__init__.py", line 13, in <module>
    from .widget_viewer import Viewer, view
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\itkwidgets\widget_viewer.py", line 18, in <module>
    from ipydatawidgets import NDArray, array_serialization, shape_constraints
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\ipydatawidgets\__init__.py", line 7, in <module>
    from .ndarray import *
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\ipydatawidgets\ndarray\__init__.py", line 7, in <module>
    from .media import DataImage
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\ipydatawidgets\ndarray\media.py", line 17, in <module>
    class DataImage(DataWidget, DOMWidget):
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\traitlets\traitlets.py", line 958, in __init__
    cls.setup_class(classdict)
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\traitlets\traitlets.py", line 981, in setup_class
    super().setup_class(classdict)
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\traitlets\traitlets.py", line 973, in setup_class
    v.subclass_init(cls)
  File "C:\Users\tom.birdsong\Anaconda3\envs\venv-itk\lib\site-packages\ipydatawidgets\ndarray\union.py", line 59, in subclass_init
    cls._instance_inits.append(self.instance_init)
AttributeError: type object 'DataImage' has no attribute '_instance_inits

Versions

itkwidgets 0.32.5 ipydatawidgets 4.3.3

Additional Notes

xref https://github.com/vidartf/ipydatawidgets/issues/57

This failure impacts ITK external module notebook tests which pip install itkwidgets with default dependencies: https://github.com/KitwareMedical/ITKUltrasound/actions/runs/4303961362/jobs/7504327745

thewtex commented 1 year ago

ipydatawidgets has been pinned in itkwidgets 0.32.6.

thewtex commented 1 year ago

xref #624 #621