Skip to content

Commit 540f2c5

Browse files
committed
python: Add adapter modules when VTK_ENABLE_KITS is ON
Some Python scripts explicitly import from named submodules as opposed to from the top-level vtk module. When VTK_ENABLE_KITS is ON those modules might not exist. This results in ImportErrors, like the one shown below when running the vtkFiltersCorePython-pointsPrecisions test: Traceback (most recent call last): File "C:/dev/VTK/Filters/Core/Testing/Python/pointsPrecisions.py", line 3, in <module> from vtk.vtkCommonCore import vtkPoints, vtkDoubleArray, vtkIdList ImportError: No module named vtkCommonCore This commit adds adapter modules to allow such scripts to run unmodified when VTK_ENABLE_KITS is ON.
1 parent 31b7b0e commit 540f2c5

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

Wrapping/Python/CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,18 @@ if(PYTHON_EXECUTABLE)
299299
list(APPEND VTK_PYTHON_FILES
300300
"${CMAKE_CURRENT_BINARY_DIR}/vtk/__init__.py")
301301

302+
# Kit module adapters
303+
foreach(kit IN LISTS vtk_kits)
304+
set(_module_kit ${kit}${VTK_KIT_SUFFIX})
305+
foreach(dep IN LISTS _${kit}_modules)
306+
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/vtk/${dep}")
307+
configure_file(vtk/kit_module__init__.py.in vtk/${dep}/__init__.py @ONLY)
308+
list(APPEND VTK_PYTHON_FILES
309+
"${CMAKE_CURRENT_BINARY_DIR}/vtk/${dep}/__init__.py")
310+
endforeach()
311+
endforeach()
312+
unset(_module_kit)
313+
302314
# vtk.util package
303315
list(APPEND VTK_PYTHON_FILES
304316
vtk/util/__init__
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"""
2+
This module is an adapter for scripts that explicitly import from named
3+
submodules as opposed to from the top-level vtk module. This is necessary
4+
because the specific submodules might not exist when VTK_ENABLE_KITS is enabled.
5+
"""
6+
7+
from __future__ import absolute_import
8+
9+
from ..@_module_kit@ import *

0 commit comments

Comments
 (0)