VTK Python override breaks with certain shared base classes
The new override mechanism in VTK's Python wrapping fails when the wrapped class has certain other base classes like collections.abc.MutableSequence
or dict
from collections.abc import MutableSequence
from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet
@vtkMultiBlockDataSet.override
class MultiBlock(MutableSequence, vtkMultiBlockDataSet):
pass
yields the error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[7], line 4
1 from collections.abc import MutableSequence
2 from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet
----> 4 @vtkMultiBlockDataSet.override
5 class MultiBlock(MutableSequence, vtkMultiBlockDataSet):
6 pass
TypeError: method requires a type object or None.
and
from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet
@vtkMultiBlockDataSet.override
class MultiBlock(dict, vtkMultiBlockDataSet):
pass
yields the error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[9], line 4
1 from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet
3 @vtkMultiBlockDataSet.override
----> 4 class MultiBlock(dict, vtkMultiBlockDataSet):
5 pass
TypeError: multiple bases have instance lay-out conflict