1 # The MIT License (MIT)
3 # Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
5 # Permission is hereby granted, free of charge, to any person obtaining a copy
6 # of this software and associated documentation files (the "Software"), to deal
7 # in the Software without restriction, including without limitation the rights
8 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 # copies of the Software, and to permit persons to whom the Software is
10 # furnished to do so, subject to the following conditions:
12 # The above copyright notice and this permission notice shall be included in
13 # all copies or substantial portions of the Software.
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 # import all public names
26 from bt2
.clock_class
import ClockClassOffset
27 from bt2
.clock_snapshot
import _ClockSnapshotConst
28 from bt2
.clock_snapshot
import _UnknownClockSnapshot
29 from bt2
.component
import _SourceComponentClassConst
30 from bt2
.component
import _FilterComponentClassConst
31 from bt2
.component
import _SinkComponentClassConst
32 from bt2
.component
import _SourceComponentConst
33 from bt2
.component
import _FilterComponentConst
34 from bt2
.component
import _SinkComponentConst
35 from bt2
.component
import _UserSourceComponent
36 from bt2
.component
import _UserFilterComponent
37 from bt2
.component
import _UserSinkComponent
38 from bt2
.component_descriptor
import ComponentDescriptor
39 from bt2
.error
import ComponentClassType
40 from bt2
.error
import _ErrorCause
41 from bt2
.error
import _ComponentErrorCause
42 from bt2
.error
import _ComponentClassErrorCause
43 from bt2
.error
import _MessageIteratorErrorCause
44 from bt2
.error
import _Error
45 from bt2
.event_class
import EventClassLogLevel
46 from bt2
.field
import _BoolField
47 from bt2
.field
import _BitArrayField
48 from bt2
.field
import _IntegerField
49 from bt2
.field
import _UnsignedIntegerField
50 from bt2
.field
import _SignedIntegerField
51 from bt2
.field
import _RealField
52 from bt2
.field
import _SinglePrecisionRealField
53 from bt2
.field
import _DoublePrecisionRealField
54 from bt2
.field
import _EnumerationField
55 from bt2
.field
import _UnsignedEnumerationField
56 from bt2
.field
import _SignedEnumerationField
57 from bt2
.field
import _StringField
58 from bt2
.field
import _StructureField
59 from bt2
.field
import _OptionField
60 from bt2
.field
import _VariantField
61 from bt2
.field
import _ArrayField
62 from bt2
.field
import _StaticArrayField
63 from bt2
.field
import _DynamicArrayField
64 from bt2
.field
import _BoolFieldConst
65 from bt2
.field
import _BitArrayFieldConst
66 from bt2
.field
import _IntegerFieldConst
67 from bt2
.field
import _UnsignedIntegerFieldConst
68 from bt2
.field
import _SignedIntegerFieldConst
69 from bt2
.field
import _RealFieldConst
70 from bt2
.field
import _SinglePrecisionRealFieldConst
71 from bt2
.field
import _DoublePrecisionRealFieldConst
72 from bt2
.field
import _EnumerationFieldConst
73 from bt2
.field
import _UnsignedEnumerationFieldConst
74 from bt2
.field
import _SignedEnumerationFieldConst
75 from bt2
.field
import _StringFieldConst
76 from bt2
.field
import _StructureFieldConst
77 from bt2
.field
import _OptionFieldConst
78 from bt2
.field
import _VariantFieldConst
79 from bt2
.field
import _ArrayFieldConst
80 from bt2
.field
import _StaticArrayFieldConst
81 from bt2
.field
import _DynamicArrayFieldConst
82 from bt2
.field_class
import IntegerDisplayBase
83 from bt2
.field_class
import _BoolFieldClass
84 from bt2
.field_class
import _BitArrayFieldClass
85 from bt2
.field_class
import _IntegerFieldClass
86 from bt2
.field_class
import _UnsignedIntegerFieldClass
87 from bt2
.field_class
import _SignedIntegerFieldClass
88 from bt2
.field_class
import _RealFieldClass
89 from bt2
.field_class
import _EnumerationFieldClass
90 from bt2
.field_class
import _UnsignedEnumerationFieldClass
91 from bt2
.field_class
import _SignedEnumerationFieldClass
92 from bt2
.field_class
import _StringFieldClass
93 from bt2
.field_class
import _StructureFieldClass
94 from bt2
.field_class
import _OptionFieldClass
95 from bt2
.field_class
import _VariantFieldClass
96 from bt2
.field_class
import _VariantFieldClassWithoutSelector
97 from bt2
.field_class
import _VariantFieldClassWithSelector
98 from bt2
.field_class
import _VariantFieldClassWithUnsignedSelector
99 from bt2
.field_class
import _VariantFieldClassWithSignedSelector
100 from bt2
.field_class
import _ArrayFieldClass
101 from bt2
.field_class
import _StaticArrayFieldClass
102 from bt2
.field_class
import _DynamicArrayFieldClass
103 from bt2
.field_class
import _BoolFieldClassConst
104 from bt2
.field_class
import _BitArrayFieldClassConst
105 from bt2
.field_class
import _IntegerFieldClassConst
106 from bt2
.field_class
import _UnsignedIntegerFieldClassConst
107 from bt2
.field_class
import _SignedIntegerFieldClassConst
108 from bt2
.field_class
import _RealFieldClassConst
109 from bt2
.field_class
import _EnumerationFieldClassConst
110 from bt2
.field_class
import _UnsignedEnumerationFieldClassConst
111 from bt2
.field_class
import _SignedEnumerationFieldClassConst
112 from bt2
.field_class
import _StringFieldClassConst
113 from bt2
.field_class
import _StructureFieldClassConst
114 from bt2
.field_class
import _OptionFieldClassConst
115 from bt2
.field_class
import _VariantFieldClassConst
116 from bt2
.field_class
import _VariantFieldClassWithoutSelectorConst
117 from bt2
.field_class
import _VariantFieldClassWithSelectorConst
118 from bt2
.field_class
import _VariantFieldClassWithUnsignedSelectorConst
119 from bt2
.field_class
import _VariantFieldClassWithSignedSelectorConst
120 from bt2
.field_class
import _ArrayFieldClassConst
121 from bt2
.field_class
import _StaticArrayFieldClassConst
122 from bt2
.field_class
import _DynamicArrayFieldClassConst
123 from bt2
.field_path
import FieldPathScope
124 from bt2
.field_path
import _IndexFieldPathItem
125 from bt2
.field_path
import _CurrentArrayElementFieldPathItem
126 from bt2
.field_path
import _CurrentOptionContentFieldPathItem
127 from bt2
.graph
import Graph
128 from bt2
.integer_range_set
import SignedIntegerRange
129 from bt2
.integer_range_set
import UnsignedIntegerRange
130 from bt2
.integer_range_set
import SignedIntegerRangeSet
131 from bt2
.integer_range_set
import UnsignedIntegerRangeSet
132 from bt2
.integer_range_set
import _SignedIntegerRangeConst
133 from bt2
.integer_range_set
import _UnsignedIntegerRangeConst
134 from bt2
.integer_range_set
import _SignedIntegerRangeSetConst
135 from bt2
.integer_range_set
import _UnsignedIntegerRangeSetConst
136 from bt2
.interrupter
import Interrupter
137 from bt2
.logging
import LoggingLevel
138 from bt2
.logging
import get_minimal_logging_level
139 from bt2
.logging
import get_global_logging_level
140 from bt2
.logging
import set_global_logging_level
141 from bt2
.message
import _EventMessage
142 from bt2
.message
import _PacketBeginningMessage
143 from bt2
.message
import _PacketEndMessage
144 from bt2
.message
import _StreamBeginningMessage
145 from bt2
.message
import _StreamEndMessage
146 from bt2
.message
import _MessageIteratorInactivityMessage
147 from bt2
.message
import _DiscardedEventsMessage
148 from bt2
.message
import _DiscardedPacketsMessage
149 from bt2
.message
import _EventMessageConst
150 from bt2
.message
import _PacketBeginningMessageConst
151 from bt2
.message
import _PacketEndMessageConst
152 from bt2
.message
import _StreamBeginningMessageConst
153 from bt2
.message
import _StreamEndMessageConst
154 from bt2
.message
import _MessageIteratorInactivityMessageConst
155 from bt2
.message
import _DiscardedEventsMessageConst
156 from bt2
.message
import _DiscardedPacketsMessageConst
157 from bt2
.message_iterator
import _UserMessageIterator
158 from bt2
.mip
import get_greatest_operative_mip_version
159 from bt2
.mip
import get_maximal_mip_version
160 from bt2
.plugin
import find_plugins_in_path
161 from bt2
.plugin
import find_plugins
162 from bt2
.plugin
import find_plugin
163 from bt2
.py_plugin
import plugin_component_class
164 from bt2
.py_plugin
import register_plugin
165 from bt2
.query_executor
import QueryExecutor
166 from bt2
.trace_collection_message_iterator
import AutoSourceComponentSpec
167 from bt2
.trace_collection_message_iterator
import ComponentSpec
168 from bt2
.trace_collection_message_iterator
import TraceCollectionMessageIterator
169 from bt2
.value
import create_value
170 from bt2
.value
import BoolValue
171 from bt2
.value
import _IntegerValue
172 from bt2
.value
import UnsignedIntegerValue
173 from bt2
.value
import SignedIntegerValue
174 from bt2
.value
import RealValue
175 from bt2
.value
import StringValue
176 from bt2
.value
import ArrayValue
177 from bt2
.value
import MapValue
178 from bt2
.value
import _BoolValueConst
179 from bt2
.value
import _IntegerValueConst
180 from bt2
.value
import _UnsignedIntegerValueConst
181 from bt2
.value
import _SignedIntegerValueConst
182 from bt2
.value
import _RealValueConst
183 from bt2
.value
import _StringValueConst
184 from bt2
.value
import _ArrayValueConst
185 from bt2
.value
import _MapValueConst
186 from bt2
.version
import __version__
188 if (sys
.version_info
.major
, sys
.version_info
.minor
) != (3, 4):
190 def _del_global_name(name
):
191 if name
in globals():
194 # remove private module names from the package
195 _del_global_name('_native_bt')
196 _del_global_name('clock_class')
197 _del_global_name('clock_snapshot')
198 _del_global_name('component')
199 _del_global_name('connection')
200 _del_global_name('error')
201 _del_global_name('event')
202 _del_global_name('event_class')
203 _del_global_name('field')
204 _del_global_name('field_class')
205 _del_global_name('field_path')
206 _del_global_name('graph')
207 _del_global_name('integer_range_set')
208 _del_global_name('interrupter')
209 _del_global_name('logging')
210 _del_global_name('message')
211 _del_global_name('message_iterator')
212 _del_global_name('native_bt')
213 _del_global_name('object')
214 _del_global_name('packet')
215 _del_global_name('plugin')
216 _del_global_name('port')
217 _del_global_name('py_plugin')
218 _del_global_name('query_executor')
219 _del_global_name('stream')
220 _del_global_name('stream_class')
221 _del_global_name('trace')
222 _del_global_name('trace_class')
223 _del_global_name('trace_collection_message_iterator')
224 _del_global_name('utils')
225 _del_global_name('value')
226 _del_global_name('version')
228 # remove private `_del_global_name` name from the package
232 # remove sys module name from the package
236 class _MemoryError(_Error
):
237 '''Raised when an operation fails due to memory issues.'''
240 class UnknownObject(Exception):
242 Raised when a component class handles a query for an object it doesn't
249 class _OverflowError(_Error
, OverflowError):
253 class TryAgain(Exception):
257 class Stop(StopIteration):
261 class _IncompleteUserClass(Exception):
265 def _init_and_register_exit():
266 from bt2
import native_bt
269 atexit
.register(native_bt
.bt2_exit_handler
)
270 native_bt
.bt2_init_from_bt2()
273 _init_and_register_exit()
275 # remove private `_init_and_register_exit` name from the package
276 del _init_and_register_exit