forked from Kitware/VTK
/
__init__.py.in
78 lines (64 loc) · 2.56 KB
/
__init__.py.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
""" This module loads the entire VTK library into its namespace. It
also allows one to use specific packages inside the vtk directory.."""
from __future__ import absolute_import
import os
import sys
# The dl module is used to force the symbols in the loaded VTK modules to
# be global, that is, to force symbols to be shared between modules. This
# used to be necessary in VTK 4 but might not be with VTK 5 and later.
# The first "except" is because systems like AIX don't have the dl module.
# The second "except" is because the dl module raises a system error on
# ia64 and x86_64 systems because "int" and addresses are different sizes.
try:
import dl
except ImportError:
# do not give up too early:
# are we on AMD64 ?
try:
import DLFCN as dl
except ImportError:
dl = None
except SystemError:
dl = None
# set the dlopen flags so that VTK does not run into problems with
# shared symbols.
try:
# only Python >= 2.2 has this functionality
orig_dlopen_flags = sys.getdlopenflags()
except AttributeError:
orig_dlopen_flags = None
if dl and (os.name == 'posix'):
sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
# --------------------------------------
@VTK_PYTHON_IMPORT_ALL@# --------------------------------------
# useful macro for getting type names
__vtkTypeNameDict = {VTK_VOID:"void",
VTK_DOUBLE:"double",
VTK_FLOAT:"float",
VTK_LONG:"long",
VTK_UNSIGNED_LONG:"unsigned long",
VTK_INT:"int",
VTK_UNSIGNED_INT:"unsigned int",
VTK_SHORT:"short",
VTK_UNSIGNED_SHORT:"unsigned short",
VTK_CHAR:"char",
VTK_UNSIGNED_CHAR:"unsigned char",
VTK_SIGNED_CHAR:"signed char",
VTK_LONG_LONG:"long long",
VTK_UNSIGNED_LONG_LONG:"unsigned long long",
VTK___INT64:"__int64",
VTK_UNSIGNED___INT64:"unsigned __int64",
VTK_ID_TYPE:"vtkIdType",
VTK_BIT:"bit"}
def vtkImageScalarTypeNameMacro(type):
return __vtkTypeNameDict[type]
# import convenience decorators
from .util.misc import calldata_type
# import the vtkVariant helpers
from .util.vtkVariant import *
# reset the dlopen flags to the original state if possible.
if dl and (os.name == 'posix') and orig_dlopen_flags:
sys.setdlopenflags(orig_dlopen_flags)
# removing things the user shouldn't have to see.
del orig_dlopen_flags
del sys, dl, os