Remove hardcoded libpython binaries and add debug step
All checks were successful
build / build-linux (push) Successful in 16s

This commit is contained in:
kdusek
2025-12-07 23:15:18 +01:00
parent 308ce7768e
commit 6a1fe63684
1807 changed files with 172293 additions and 1 deletions

View File

@@ -0,0 +1,77 @@
# ------------------------------------------------------------------
# Copyright (c) 2023 PyInstaller Development Team.
#
# This file is distributed under the terms of the GNU General Public
# License (version 2.0 or later).
#
# The full license is available in LICENSE, distributed with
# this software.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# ------------------------------------------------------------------
import os
import re
from PyInstaller import compat
from PyInstaller.utils.hooks import (
logger,
is_module_satisfies,
)
# Helper for collecting shared libraries from NVIDIA CUDA packages on linux.
def collect_nvidia_cuda_binaries(hook_file):
# Find the module underlying this nvidia.something hook; i.e., change ``/path/to/hook-nvidia.something.py`` to
# ``nvidia.something``.
hook_name, hook_ext = os.path.splitext(os.path.basename(hook_file))
assert hook_ext.startswith('.py')
assert hook_name.startswith('hook-')
module_name = hook_name[5:]
# `search_patterns` was added to `collect_dynamic_libs` in PyInstaller 5.8, so that is the minimum required version.
binaries = []
if is_module_satisfies('PyInstaller >= 5.8'):
from PyInstaller.utils.hooks import collect_dynamic_libs, PY_DYLIB_PATTERNS
binaries = collect_dynamic_libs(
module_name,
# Collect fully-versioned .so files (not included in default search patterns).
search_patterns=PY_DYLIB_PATTERNS + ["lib*.so.*"],
)
else:
logger.warning("hook-%s: this hook requires PyInstaller >= 5.8!", module_name)
return binaries
# Helper to turn list of requirements (e.g., ['nvidia-cublas-cu12', 'nvidia-nccl-cu12', 'nvidia-cudnn-cu12']) into
# list of corresponding nvidia.* module names (e.g., ['nvidia.cublas', 'nvidia.nccl', 'nvidia-cudnn']), while ignoring
# unrecognized requirements. Intended for use in hooks for frameworks, such as `torch` and `tensorflow`.
def infer_hiddenimports_from_requirements(requirements):
# All nvidia-* packages install to nvidia top-level package, so we cannot query top-level module via
# metadata. Instead, we manually translate them from dist name to package name.
_PATTERN = r'^nvidia-(?P<subpackage>.+)-cu[\d]+$'
nvidia_hiddenimports = []
for req in requirements:
m = re.match(_PATTERN, req)
if m is not None:
# Convert
package_name = "nvidia." + m.group('subpackage').replace('-', '_')
nvidia_hiddenimports.append(package_name)
return nvidia_hiddenimports
def create_symlink_suppression_patterns(hook_file):
hook_name, hook_ext = os.path.splitext(os.path.basename(hook_file))
assert hook_ext.startswith('.py')
assert hook_name.startswith('hook-')
module_name = hook_name[5:]
# Applicable only to Linux
if not compat.is_linux:
return []
# Pattern: **/{module_dir}/lib/lib*.so*
return [os.path.join('**', *module_name.split('.'), 'lib', 'lib*.so*')]

View File

@@ -0,0 +1,604 @@
import os
# This list of dependencies was obtained via analysis based on code in `vtkmodules/generate_pyi.py` and augmented with
# missing entries until all tests from `test_vtkmodules` pass. Instead of a pre-computed list, we could dynamically
# analyze each module when the hook is executed; however, such approach would be slower, and would also not account
# for all dependencies that had to be added manually.
#
# NOTE: `vtkmodules.vtkCommonCore` is a dependency of every module, so do not list it here. Modules with no additional
# dependencies are also not listed.
_module_dependencies = {
'vtkmodules.vtkAcceleratorsVTKmDataModel': [
'vtkmodules.vtkAcceleratorsVTKmCore',
'vtkmodules.vtkCommonDataModel',
],
'vtkmodules.vtkAcceleratorsVTKmFilters': [
'vtkmodules.vtkAcceleratorsVTKmCore',
'vtkmodules.vtkAcceleratorsVTKmDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCore',
'vtkmodules.vtkFiltersGeneral',
'vtkmodules.vtkFiltersGeometry',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkChartsCore': [
'vtkmodules.vtkRenderingContext2D',
'vtkmodules.vtkFiltersGeneral',
],
'vtkmodules.vtkCommonColor': [
'vtkmodules.vtkCommonDataModel',
],
'vtkmodules.vtkCommonComputationalGeometry': [
'vtkmodules.vtkCommonDataModel',
],
'vtkmodules.vtkCommonDataModel': [
'vtkmodules.vtkCommonMath',
'vtkmodules.vtkCommonTransforms',
'vtkmodules.util.data_model',
],
'vtkmodules.vtkCommonExecutionModel': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.util.execution_model',
],
'vtkmodules.vtkCommonMisc': [
'vtkmodules.vtkCommonMath',
],
'vtkmodules.vtkCommonTransforms': [
'vtkmodules.vtkCommonMath',
],
'vtkmodules.vtkDomainsChemistry': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOLegacy',
'vtkmodules.vtkIOXMLParser',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkDomainsChemistryOpenGL2': [
'vtkmodules.vtkDomainsChemistry',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkFiltersAMR': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersCellGrid': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersCore': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkCommonMisc',
],
'vtkmodules.vtkFiltersExtraction': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersGeneral',
],
'vtkmodules.vtkFiltersFlowPaths': [
'vtkmodules.vtkCommonComputationalGeometry',
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkCommonMath',
],
'vtkmodules.vtkFiltersGeneral': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCore',
],
'vtkmodules.vtkFiltersGeneric': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersGeometry': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersGeometryPreview': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersHybrid': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkCommonTransforms',
'vtkmodules.vtkFiltersGeometry',
],
'vtkmodules.vtkFiltersHyperTree': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCore',
'vtkmodules.vtkFiltersGeneral',
],
'vtkmodules.vtkFiltersImaging': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersStatistics',
],
'vtkmodules.vtkFiltersModeling': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersGeneral',
],
'vtkmodules.vtkFiltersParallel': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCore',
'vtkmodules.vtkFiltersExtraction',
'vtkmodules.vtkFiltersGeneral',
'vtkmodules.vtkFiltersGeometry',
'vtkmodules.vtkFiltersHybrid',
'vtkmodules.vtkFiltersHyperTree',
'vtkmodules.vtkFiltersModeling',
'vtkmodules.vtkFiltersSources',
'vtkmodules.vtkFiltersTexture',
],
'vtkmodules.vtkFiltersParallelDIY2': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCore',
'vtkmodules.vtkFiltersParallel',
],
'vtkmodules.vtkFiltersParallelImaging': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersImaging',
'vtkmodules.vtkFiltersParallel',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkFiltersParallelStatistics': [
'vtkmodules.vtkFiltersStatistics',
],
'vtkmodules.vtkFiltersPoints': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersModeling',
],
'vtkmodules.vtkFiltersProgrammable': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersPython': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersReduction': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersSMP': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkFiltersCore',
'vtkmodules.vtkFiltersGeneral',
],
'vtkmodules.vtkFiltersSelection': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersSources': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersStatistics': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersTemporal': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCore',
],
'vtkmodules.vtkFiltersTensor': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersTexture': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersTopology': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkFiltersVerdict': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkGeovisCore': [
'vtkmodules.vtkCommonTransforms',
],
'vtkmodules.vtkIOAMR': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOAsynchronous': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
'vtkmodules.vtkIOImage',
'vtkmodules.vtkIOXML',
],
'vtkmodules.vtkIOAvmesh': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOCGNSReader': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOCONVERGECFD': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOCellGrid': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCellGrid',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOCesium3DTiles': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOChemistry': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOCityGML': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOCore': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOERF': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOEnSight': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOEngys': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOExodus': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
'vtkmodules.vtkIOXMLParser',
],
'vtkmodules.vtkIOExport': [
'vtkmodules.vtkIOCore',
'vtkmodules.vtkIOImage',
'vtkmodules.vtkIOXML',
'vtkmodules.vtkRenderingContext2D',
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingFreeType',
'vtkmodules.vtkRenderingVtkJS',
],
'vtkmodules.vtkIOExportGL2PS': [
'vtkmodules.vtkIOExport',
'vtkmodules.vtkRenderingGL2PSOpenGL2',
],
'vtkmodules.vtkIOExportPDF': [
'vtkmodules.vtkIOExport',
'vtkmodules.vtkRenderingContext2D',
],
'vtkmodules.vtkIOFDS': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOFLUENTCFF': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOGeoJSON': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOGeometry': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
'vtkmodules.vtkIOLegacy',
],
'vtkmodules.vtkIOH5Rage': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOH5part': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOHDF': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOIOSS': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersCellGrid',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOImport': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkIOImage': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkIOInfovis': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOLegacy',
'vtkmodules.vtkIOXML',
],
'vtkmodules.vtkIOLANLX3D': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOLSDyna': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOXMLParser',
],
'vtkmodules.vtkIOLegacy': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCellGrid',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOMINC': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
'vtkmodules.vtkIOImage',
],
'vtkmodules.vtkIOMotionFX': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOMovie': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIONetCDF': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOOMF': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOOggTheora': [
'vtkmodules.vtkIOMovie',
],
'vtkmodules.vtkIOPIO': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOPLY': [
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOParallel': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
'vtkmodules.vtkIOGeometry',
'vtkmodules.vtkIOImage',
'vtkmodules.vtkIOLegacy',
],
'vtkmodules.vtkIOParallelExodus': [
'vtkmodules.vtkIOExodus',
],
'vtkmodules.vtkIOParallelLSDyna': [
'vtkmodules.vtkIOLSDyna',
],
'vtkmodules.vtkIOParallelXML': [
'vtkmodules.vtkIOXML',
],
'vtkmodules.vtkIOSQL': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOCore',
],
'vtkmodules.vtkIOSegY': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOImage',
],
'vtkmodules.vtkIOTRUCHAS': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOTecplotTable': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOVPIC': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOVeraOut': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOVideo': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkIOXML': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOXMLParser',
],
'vtkmodules.vtkIOXMLParser': [
'vtkmodules.vtkCommonDataModel',
],
'vtkmodules.vtkIOXdmf2': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkIOLegacy',
],
'vtkmodules.vtkImagingColor': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkImagingCore': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkImagingFourier': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkImagingGeneral': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkImagingHybrid': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkImagingMath': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkImagingMorphological': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingCore',
'vtkmodules.vtkImagingGeneral',
],
'vtkmodules.vtkImagingOpenGL2': [
'vtkmodules.vtkImagingGeneral',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkImagingSources': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkImagingStatistics': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkImagingStencil': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingCore',
],
'vtkmodules.vtkInfovisCore': [
'vtkmodules.vtkCommonColor',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkImagingSources',
'vtkmodules.vtkIOImage',
'vtkmodules.vtkRenderingFreeType',
],
'vtkmodules.vtkInfovisLayout': [
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkInteractionImage': [
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkInteractionStyle': [
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkInteractionWidgets': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkFiltersGeneral',
'vtkmodules.vtkFiltersSources',
'vtkmodules.vtkRenderingContext2D',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkPythonContext2D': [
'vtkmodules.vtkRenderingContext2D',
],
'vtkmodules.vtkRenderingAnnotation': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingCellGrid': [
'vtkmodules.vtkFiltersCellGrid',
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingContext2D': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingContextOpenGL2': [
'vtkmodules.vtkRenderingContext2D',
'vtkmodules.vtkRenderingFreeType',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingCore': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
],
'vtkmodules.vtkRenderingExternal': [
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingFreeType': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingGridAxes': [
'vtkmodules.vtkChartsCore',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingGL2PSOpenGL2': [
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingHyperTreeGrid': [
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingImage': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingLICOpenGL2': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingLOD': [
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingLabel': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingFreeType',
],
'vtkmodules.vtkRenderingMatplotlib': [
'vtkmodules.vtkRenderingFreeType',
],
'vtkmodules.vtkRenderingOpenGL2': [
'vtkmodules.vtkFiltersGeneral',
'vtkmodules.vtkIOImage',
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingHyperTreeGrid',
'vtkmodules.vtkRenderingUI',
],
'vtkmodules.vtkRenderingParallel': [
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingUI': [
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingVR': [
'vtkmodules.vtkInteractionStyle',
'vtkmodules.vtkInteractionWidgets',
'vtkmodules.vtkIOXMLParser',
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingOpenGL2',
'vtkmodules.vtkRenderingVolumeOpenGL2',
'vtkmodules.vtkRenderingVRModels',
],
'vtkmodules.vtkRenderingVRModels': [
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkRenderingOpenGL2',
],
'vtkmodules.vtkRenderingVolume': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkRenderingVolumeAMR': [
'vtkmodules.vtkImagingCore',
'vtkmodules.vtkRenderingVolume',
'vtkmodules.vtkRenderingVolumeOpenGL2',
],
'vtkmodules.vtkRenderingVolumeOpenGL2': [
'vtkmodules.vtkImagingCore',
'vtkmodules.vtkImagingMath',
'vtkmodules.vtkRenderingOpenGL2',
'vtkmodules.vtkRenderingVolume',
],
'vtkmodules.vtkRenderingVtkJS': [
'vtkmodules.vtkRenderingSceneGraph',
],
'vtkmodules.vtkTestingRendering': [
'vtkmodules.vtkImagingColor',
'vtkmodules.vtkIOXML',
'vtkmodules.vtkRenderingCore',
],
'vtkmodules.vtkTestingSerialization': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkSerializationManager',
],
'vtkmodules.vtkViewsContext2D': [
'vtkmodules.vtkRenderingCore',
'vtkmodules.vtkViewsCore',
],
'vtkmodules.vtkViewsCore': [
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkInteractionWidgets',
],
'vtkmodules.vtkViewsInfovis': [
'vtkmodules.vtkCommonDataModel',
'vtkmodules.vtkCommonExecutionModel',
'vtkmodules.vtkInteractionStyle',
'vtkmodules.vtkRenderingContext2D',
'vtkmodules.vtkViewsCore',
],
'vtkmodules.vtkWebGLExporter': [
'vtkmodules.vtkIOExport',
],
}
def add_vtkmodules_dependencies(hook_file):
# Find the module underlying this vtkmodules hook: change `/path/to/hook-vtkmodules.blah.py` to `vtkmodules.blah`.
hook_name, hook_ext = os.path.splitext(os.path.basename(hook_file))
assert hook_ext.startswith('.py')
assert hook_name.startswith('hook-')
module_name = hook_name[5:]
# Look up the list of hidden imports.
return ["vtkmodules.vtkCommonCore", *_module_dependencies.get(module_name, [])]