From 89d6368948dd6cce9d4ee17c74eb238ee0bcd908 Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Thu, 13 Aug 2026 04:08:06 -0600 Subject: [PATCH 1/2] fix(vtk-module): route remaining serializer imports through vtk_module data.py, utils.py and serialize.py still imported from vtkmodules directly, so VTK_MODULE_NAME only applied to part of the vtk serializers. With a custom build and no stock vtk installed the serializers fail to import; with both installed, objects from two VTK builds mix and fail later with wrapped-type TypeErrors. Same change as 090b504. serialize.py only used vtk for vtkCommand.DeleteEvent, so it now imports vtkCommand from vtk_module.vtkCommonCore instead of the legacy monolithic vtk module. Default is unchanged: VTK_MODULE_NAME still falls back to vtkmodules. --- src/trame_vtk/modules/vtk/serializers/data.py | 2 +- src/trame_vtk/modules/vtk/serializers/serialize.py | 10 ++++++++-- src/trame_vtk/modules/vtk/serializers/utils.py | 8 +++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/trame_vtk/modules/vtk/serializers/data.py b/src/trame_vtk/modules/vtk/serializers/data.py index ac806ae..59508cc 100644 --- a/src/trame_vtk/modules/vtk/serializers/data.py +++ b/src/trame_vtk/modules/vtk/serializers/data.py @@ -6,11 +6,11 @@ vtk_module_name = os.environ.get("VTK_MODULE_NAME", "vtkmodules") sys.modules["vtk_module"] = importlib.import_module(vtk_module_name) +from vtk_module.vtkCommonCore import vtkIdTypeArray # noqa: E402 from vtk_module.vtkFiltersGeometry import ( # noqa: E402 vtkCompositeDataGeometryFilter, vtkDataSetSurfaceFilter, ) -from vtkmodules.vtkCommonCore import vtkIdTypeArray # noqa: E402 from .helpers import extract_required_fields, get_array_description # noqa: E402 from .registry import class_name # noqa: E402 diff --git a/src/trame_vtk/modules/vtk/serializers/serialize.py b/src/trame_vtk/modules/vtk/serializers/serialize.py index e3dcc72..cdbee5c 100644 --- a/src/trame_vtk/modules/vtk/serializers/serialize.py +++ b/src/trame_vtk/modules/vtk/serializers/serialize.py @@ -1,6 +1,12 @@ +import importlib import logging +import os +import sys -import vtk +vtk_module_name = os.environ.get("VTK_MODULE_NAME", "vtkmodules") +sys.modules["vtk_module"] = importlib.import_module(vtk_module_name) + +from vtk_module.vtkCommonCore import vtkCommand # noqa: E402 from .cache import remove_from_cache from .registry import SERIALIZERS, class_name @@ -20,7 +26,7 @@ def serialize(parent, instance, instance_id, context, depth): serializer = SERIALIZERS.get(instance_type, None) if instance_id not in DELETE_CALLBACKS: instance.AddObserver( - vtk.vtkCommand.DeleteEvent, lambda *_a, **_k: remove(instance_id) + vtkCommand.DeleteEvent, lambda *_a, **_k: remove(instance_id) ) DELETE_CALLBACKS.append(instance_id) diff --git a/src/trame_vtk/modules/vtk/serializers/utils.py b/src/trame_vtk/modules/vtk/serializers/utils.py index 7b47372..a252645 100644 --- a/src/trame_vtk/modules/vtk/serializers/utils.py +++ b/src/trame_vtk/modules/vtk/serializers/utils.py @@ -1,7 +1,13 @@ import base64 import hashlib +import importlib +import os +import sys -from vtkmodules.util import numpy_support +vtk_module_name = os.environ.get("VTK_MODULE_NAME", "vtkmodules") +sys.modules["vtk_module"] = importlib.import_module(vtk_module_name) + +from vtk_module.util import numpy_support # noqa: E402 def rgb_float_to_hex(r, g, b): From 5cef7f40db113648e93f39b3e0bf8e97c4ddd87c Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Fri, 14 Aug 2026 04:08:56 -0600 Subject: [PATCH 2/2] style: noqa E402 on the imports below the vtk_module preamble The preamble is module-level code, so every import after it is E402. data.py already marks all of them, including the relative ones; serialize.py only had the vtk_module line marked because that was the line I changed. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Nc3mSGXDvAuGDG3X9NiQPR --- src/trame_vtk/modules/vtk/serializers/serialize.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/trame_vtk/modules/vtk/serializers/serialize.py b/src/trame_vtk/modules/vtk/serializers/serialize.py index cdbee5c..80c832e 100644 --- a/src/trame_vtk/modules/vtk/serializers/serialize.py +++ b/src/trame_vtk/modules/vtk/serializers/serialize.py @@ -8,9 +8,9 @@ from vtk_module.vtkCommonCore import vtkCommand # noqa: E402 -from .cache import remove_from_cache -from .registry import SERIALIZERS, class_name -from .widgets import handle_widget +from .cache import remove_from_cache # noqa: E402 +from .registry import SERIALIZERS, class_name # noqa: E402 +from .widgets import handle_widget # noqa: E402 __all__ = ["serialize", "serialize_widget"]