1"""This is the vtk module.""" 2import sys 3 4if sys.version_info < (3,5): 5 # imp is deprecated in 3.4 6 import imp, importlib 7 8 # import vtkmodules package. 9 vtkmodules_m = importlib.import_module('vtkmodules') 10 11 # import vtkmodules.all 12 all_m = importlib.import_module('vtkmodules.all') 13 14 # create a clone of the `vtkmodules.all` module. 15 vtk_m = imp.new_module(__name__) 16 for key in dir(all_m): 17 if not hasattr(vtk_m, key): 18 setattr(vtk_m, key, getattr(all_m, key)) 19 20 # make the clone of `vtkmodules.all` act as a package at the same location 21 # as vtkmodules. This ensures that importing modules from within the vtkmodules package 22 # continues to work. 23 vtk_m.__path__ = vtkmodules_m.__path__ 24 # replace old `vtk` module with this new package. 25 sys.modules[__name__] = vtk_m 26 27else: 28 import importlib.util 29 # import vtkmodules.all 30 all_spec = importlib.util.find_spec('vtkmodules.all') 31 all_m = importlib.util.module_from_spec(all_spec) 32 all_spec.loader.exec_module(all_m) 33 34 # import vtkmodules 35 vtkmodules_spec = importlib.util.find_spec('vtkmodules') 36 vtkmodules_m = importlib.util.module_from_spec(vtkmodules_spec) 37 vtkmodules_spec.loader.exec_module(vtkmodules_m) 38 39 # make vtkmodules.all act as the vtkmodules package to support importing 40 # other modules from vtkmodules package via `vtk`. 41 all_m.__path__ = vtkmodules_m.__path__ 42 43 del all_spec, vtkmodules_spec 44 45 # replace old `vtk` module with the `all` package. 46 sys.modules[__name__] = all_m 47