Commit | Line | Data |
---|---|---|
0235b0db | 1 | # SPDX-License-Identifier: MIT |
81447b5b | 2 | # |
811644b8 | 3 | # Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com> |
81447b5b | 4 | |
86f24b10 | 5 | import os |
79935628 SM |
6 | import sys |
7 | ||
86f24b10 MJ |
8 | # With Python ≥ 3.8 on Windows, the DLL lookup mechanism to load native |
9 | # modules doesn't search the `PATH` environment variable like everything | |
10 | # else on this platform. | |
11 | # | |
12 | # See <https://docs.python.org/3/whatsnew/3.8.html#bpo-36085-whatsnew>. | |
13 | # | |
14 | # Restore this behaviour by doing it manually. | |
15 | if os.name == "nt" and sys.version_info >= (3, 8): | |
16 | for path in os.getenv("PATH", "").split(os.pathsep): | |
17 | if os.path.exists(path) and path != ".": | |
18 | os.add_dll_directory(path) | |
19 | ||
20 | del os | |
21 | ||
22 | ||
5995b304 SM |
23 | from bt2.mip import get_maximal_mip_version, get_greatest_operative_mip_version |
24 | from bt2.error import ( | |
25 | ComponentClassType, | |
26 | _Error, | |
27 | _ErrorCause, | |
28 | _MemoryError, | |
29 | _ComponentErrorCause, | |
30 | _ComponentClassErrorCause, | |
31 | _MessageIteratorErrorCause, | |
32 | ) | |
33 | from bt2.field import ( | |
34 | _BoolField, | |
35 | _RealField, | |
36 | _ArrayField, | |
37 | _OptionField, | |
38 | _StringField, | |
39 | _IntegerField, | |
40 | _VariantField, | |
41 | _BitArrayField, | |
42 | _BoolFieldConst, | |
43 | _RealFieldConst, | |
44 | _StructureField, | |
45 | _ArrayFieldConst, | |
46 | _EnumerationField, | |
47 | _OptionFieldConst, | |
48 | _StaticArrayField, | |
49 | _StringFieldConst, | |
50 | _DynamicArrayField, | |
51 | _IntegerFieldConst, | |
52 | _VariantFieldConst, | |
53 | _BitArrayFieldConst, | |
54 | _SignedIntegerField, | |
55 | _StructureFieldConst, | |
56 | _UnsignedIntegerField, | |
57 | _EnumerationFieldConst, | |
58 | _StaticArrayFieldConst, | |
59 | _DynamicArrayFieldConst, | |
60 | _SignedEnumerationField, | |
61 | _SignedIntegerFieldConst, | |
62 | _DoublePrecisionRealField, | |
63 | _SinglePrecisionRealField, | |
64 | _UnsignedEnumerationField, | |
65 | _UnsignedIntegerFieldConst, | |
66 | _SignedEnumerationFieldConst, | |
67 | _DoublePrecisionRealFieldConst, | |
68 | _SinglePrecisionRealFieldConst, | |
69 | _UnsignedEnumerationFieldConst, | |
70 | ) | |
71 | from bt2.graph import Graph | |
72 | from bt2.utils import Stop, TryAgain, UnknownObject, _OverflowError | |
73 | from bt2.value import ( | |
74 | MapValue, | |
75 | BoolValue, | |
76 | RealValue, | |
77 | ArrayValue, | |
78 | StringValue, | |
79 | SignedIntegerValue, | |
80 | UnsignedIntegerValue, | |
81 | create_value, | |
82 | _IntegerValue, | |
83 | _MapValueConst, | |
84 | _BoolValueConst, | |
85 | _RealValueConst, | |
86 | _ArrayValueConst, | |
87 | _StringValueConst, | |
88 | _IntegerValueConst, | |
89 | _SignedIntegerValueConst, | |
90 | _UnsignedIntegerValueConst, | |
91 | ) | |
92 | from bt2.plugin import find_plugin, find_plugins, find_plugins_in_path | |
93 | from bt2.logging import ( | |
94 | LoggingLevel, | |
95 | get_global_logging_level, | |
96 | set_global_logging_level, | |
97 | get_minimal_logging_level, | |
98 | ) | |
99 | from bt2.message import ( | |
100 | _EventMessage, | |
101 | _PacketEndMessage, | |
102 | _StreamEndMessage, | |
103 | _EventMessageConst, | |
104 | _PacketEndMessageConst, | |
105 | _StreamEndMessageConst, | |
106 | _DiscardedEventsMessage, | |
107 | _PacketBeginningMessage, | |
108 | _StreamBeginningMessage, | |
109 | _DiscardedPacketsMessage, | |
110 | _DiscardedEventsMessageConst, | |
111 | _PacketBeginningMessageConst, | |
112 | _StreamBeginningMessageConst, | |
113 | _DiscardedPacketsMessageConst, | |
114 | _MessageIteratorInactivityMessage, | |
115 | _MessageIteratorInactivityMessageConst, | |
116 | ) | |
117 | from bt2.version import __version__ | |
118 | from bt2.component import ( | |
119 | _UserSinkComponent, | |
120 | _SinkComponentConst, | |
121 | _IncompleteUserClass, | |
122 | _UserFilterComponent, | |
123 | _UserSourceComponent, | |
124 | _FilterComponentConst, | |
125 | _SourceComponentConst, | |
126 | _SinkComponentClassConst, | |
127 | _FilterComponentClassConst, | |
128 | _SourceComponentClassConst, | |
129 | ) | |
130 | from bt2.py_plugin import register_plugin, plugin_component_class | |
131 | from bt2.field_path import ( | |
132 | FieldPathScope, | |
133 | _IndexFieldPathItem, | |
134 | _CurrentArrayElementFieldPathItem, | |
135 | _CurrentOptionContentFieldPathItem, | |
136 | ) | |
137 | ||
3fb99a22 | 138 | # import all public names |
5290f876 | 139 | from bt2.clock_class import ClockClassOffset |
5290f876 | 140 | from bt2.event_class import EventClassLogLevel |
5995b304 SM |
141 | from bt2.field_class import ( |
142 | IntegerDisplayBase, | |
143 | _BoolFieldClass, | |
144 | _RealFieldClass, | |
145 | _ArrayFieldClass, | |
146 | _OptionFieldClass, | |
147 | _StringFieldClass, | |
148 | _IntegerFieldClass, | |
149 | _VariantFieldClass, | |
150 | _BitArrayFieldClass, | |
151 | _BoolFieldClassConst, | |
152 | _RealFieldClassConst, | |
153 | _StructureFieldClass, | |
154 | _ArrayFieldClassConst, | |
155 | _EnumerationFieldClass, | |
156 | _OptionFieldClassConst, | |
157 | _StaticArrayFieldClass, | |
158 | _StringFieldClassConst, | |
159 | _DynamicArrayFieldClass, | |
160 | _IntegerFieldClassConst, | |
161 | _VariantFieldClassConst, | |
162 | _BitArrayFieldClassConst, | |
163 | _SignedIntegerFieldClass, | |
164 | _StructureFieldClassConst, | |
165 | _UnsignedIntegerFieldClass, | |
166 | _EnumerationFieldClassConst, | |
167 | _StaticArrayFieldClassConst, | |
168 | _DynamicArrayFieldClassConst, | |
169 | _SignedEnumerationFieldClass, | |
170 | _OptionWithSelectorFieldClass, | |
171 | _SignedIntegerFieldClassConst, | |
172 | _UnsignedEnumerationFieldClass, | |
173 | _UnsignedIntegerFieldClassConst, | |
174 | _OptionWithBoolSelectorFieldClass, | |
175 | _SignedEnumerationFieldClassConst, | |
176 | _VariantFieldClassWithoutSelector, | |
177 | _OptionWithSelectorFieldClassConst, | |
178 | _UnsignedEnumerationFieldClassConst, | |
179 | _OptionWithIntegerSelectorFieldClass, | |
180 | _VariantFieldClassWithIntegerSelector, | |
181 | _DynamicArrayWithLengthFieldFieldClass, | |
182 | _OptionWithBoolSelectorFieldClassConst, | |
183 | _VariantFieldClassWithoutSelectorConst, | |
184 | _OptionWithIntegerSelectorFieldClassConst, | |
185 | _OptionWithSignedIntegerSelectorFieldClass, | |
186 | _VariantFieldClassWithIntegerSelectorConst, | |
187 | _DynamicArrayWithLengthFieldFieldClassConst, | |
188 | _VariantFieldClassWithSignedIntegerSelector, | |
189 | _OptionWithUnsignedIntegerSelectorFieldClass, | |
190 | _VariantFieldClassWithUnsignedIntegerSelector, | |
191 | _OptionWithSignedIntegerSelectorFieldClassConst, | |
192 | _VariantFieldClassWithSignedIntegerSelectorConst, | |
193 | _OptionWithUnsignedIntegerSelectorFieldClassConst, | |
194 | _VariantFieldClassWithUnsignedIntegerSelectorConst, | |
195 | ) | |
5290f876 | 196 | from bt2.interrupter import Interrupter |
5995b304 | 197 | from bt2.clock_snapshot import _ClockSnapshotConst, _UnknownClockSnapshot |
5290f876 | 198 | from bt2.query_executor import QueryExecutor |
5995b304 SM |
199 | from bt2.message_iterator import _UserMessageIterator |
200 | from bt2.integer_range_set import ( | |
201 | SignedIntegerRange, | |
202 | UnsignedIntegerRange, | |
203 | SignedIntegerRangeSet, | |
204 | UnsignedIntegerRangeSet, | |
205 | _SignedIntegerRangeConst, | |
206 | _UnsignedIntegerRangeConst, | |
207 | _SignedIntegerRangeSetConst, | |
208 | _UnsignedIntegerRangeSetConst, | |
209 | ) | |
210 | from bt2.component_descriptor import ComponentDescriptor | |
211 | from bt2.trace_collection_message_iterator import ( | |
212 | ComponentSpec, | |
213 | AutoSourceComponentSpec, | |
214 | TraceCollectionMessageIterator, | |
215 | ) | |
81447b5b | 216 | |
79935628 SM |
217 | if (sys.version_info.major, sys.version_info.minor) != (3, 4): |
218 | ||
219 | def _del_global_name(name): | |
220 | if name in globals(): | |
221 | del globals()[name] | |
81447b5b | 222 | |
79935628 | 223 | # remove private module names from the package |
f5567ea8 FD |
224 | _del_global_name("_native_bt") |
225 | _del_global_name("clock_class") | |
226 | _del_global_name("clock_snapshot") | |
227 | _del_global_name("component") | |
228 | _del_global_name("connection") | |
229 | _del_global_name("error") | |
230 | _del_global_name("event") | |
231 | _del_global_name("event_class") | |
232 | _del_global_name("field") | |
233 | _del_global_name("field_class") | |
234 | _del_global_name("field_path") | |
235 | _del_global_name("graph") | |
236 | _del_global_name("integer_range_set") | |
237 | _del_global_name("interrupter") | |
238 | _del_global_name("logging") | |
239 | _del_global_name("message") | |
240 | _del_global_name("message_iterator") | |
241 | _del_global_name("native_bt") | |
242 | _del_global_name("object") | |
243 | _del_global_name("packet") | |
244 | _del_global_name("plugin") | |
245 | _del_global_name("port") | |
246 | _del_global_name("py_plugin") | |
247 | _del_global_name("query_executor") | |
248 | _del_global_name("stream") | |
249 | _del_global_name("stream_class") | |
250 | _del_global_name("trace") | |
251 | _del_global_name("trace_class") | |
252 | _del_global_name("trace_collection_message_iterator") | |
253 | _del_global_name("utils") | |
254 | _del_global_name("value") | |
255 | _del_global_name("version") | |
3fb99a22 | 256 | |
79935628 SM |
257 | # remove private `_del_global_name` name from the package |
258 | del _del_global_name | |
3fb99a22 | 259 | |
3fb99a22 | 260 | |
79935628 SM |
261 | # remove sys module name from the package |
262 | del sys | |
3fb99a22 PP |
263 | |
264 | ||
0b03f63e | 265 | def _init_and_register_exit(): |
0b03f63e PP |
266 | import atexit |
267 | ||
5995b304 SM |
268 | from bt2 import native_bt |
269 | ||
612a9870 PP |
270 | atexit.register(native_bt.bt2_exit_handler) |
271 | native_bt.bt2_init_from_bt2() | |
0b03f63e PP |
272 | |
273 | ||
274 | _init_and_register_exit() | |
275 | ||
3fb99a22 PP |
276 | # remove private `_init_and_register_exit` name from the package |
277 | del _init_and_register_exit |