X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2F__init__.py;h=2dd7dc36b69ae1cace2ad37fd62ab5d6ce5a07ab;hb=HEAD;hp=9b23828eb8b3739fd7a874a3f47753a0e5de0a08;hpb=aae30e61f85f6654c37da7a5da3b22fbbe2dbd5c;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/__init__.py b/src/bindings/python/bt2/bt2/__init__.py index 9b23828e..2dd7dc36 100644 --- a/src/bindings/python/bt2/bt2/__init__.py +++ b/src/bindings/python/bt2/bt2/__init__.py @@ -1,200 +1,272 @@ -# The MIT License (MIT) +# SPDX-License-Identifier: MIT # # Copyright (c) 2017 Philippe Proulx + +import os +import sys + +# With Python ≥ 3.8 on Windows, the DLL lookup mechanism to load native +# modules doesn't search the `PATH` environment variable like everything +# else on this platform. # -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. +# See . # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Restore this behaviour by doing it manually. +if os.name == "nt" and sys.version_info >= (3, 8): + for path in os.getenv("PATH", "").split(os.pathsep): + if os.path.exists(path) and path != ".": + os.add_dll_directory(path) + +del os + + +from bt2.mip import get_maximal_mip_version, get_greatest_operative_mip_version +from bt2.error import ( + ComponentClassType, + _Error, + _ErrorCause, + _MemoryError, + _ComponentErrorCause, + _ComponentClassErrorCause, + _MessageIteratorErrorCause, +) +from bt2.field import ( + _BoolField, + _RealField, + _ArrayField, + _OptionField, + _StringField, + _IntegerField, + _VariantField, + _BitArrayField, + _BoolFieldConst, + _RealFieldConst, + _StructureField, + _ArrayFieldConst, + _EnumerationField, + _OptionFieldConst, + _StaticArrayField, + _StringFieldConst, + _DynamicArrayField, + _IntegerFieldConst, + _VariantFieldConst, + _BitArrayFieldConst, + _SignedIntegerField, + _StructureFieldConst, + _UnsignedIntegerField, + _EnumerationFieldConst, + _StaticArrayFieldConst, + _DynamicArrayFieldConst, + _SignedEnumerationField, + _SignedIntegerFieldConst, + _DoublePrecisionRealField, + _SinglePrecisionRealField, + _UnsignedEnumerationField, + _UnsignedIntegerFieldConst, + _SignedEnumerationFieldConst, + _DoublePrecisionRealFieldConst, + _SinglePrecisionRealFieldConst, + _UnsignedEnumerationFieldConst, +) +from bt2.graph import Graph +from bt2.utils import Stop, TryAgain, UnknownObject, _OverflowError +from bt2.value import ( + MapValue, + BoolValue, + RealValue, + ArrayValue, + StringValue, + SignedIntegerValue, + UnsignedIntegerValue, + create_value, + _IntegerValue, + _MapValueConst, + _BoolValueConst, + _RealValueConst, + _ArrayValueConst, + _StringValueConst, + _IntegerValueConst, + _SignedIntegerValueConst, + _UnsignedIntegerValueConst, +) +from bt2.plugin import find_plugin, find_plugins, find_plugins_in_path +from bt2.logging import ( + LoggingLevel, + get_global_logging_level, + set_global_logging_level, + get_minimal_logging_level, +) +from bt2.message import ( + _EventMessage, + _PacketEndMessage, + _StreamEndMessage, + _EventMessageConst, + _PacketEndMessageConst, + _StreamEndMessageConst, + _DiscardedEventsMessage, + _PacketBeginningMessage, + _StreamBeginningMessage, + _DiscardedPacketsMessage, + _DiscardedEventsMessageConst, + _PacketBeginningMessageConst, + _StreamBeginningMessageConst, + _DiscardedPacketsMessageConst, + _MessageIteratorInactivityMessage, + _MessageIteratorInactivityMessageConst, +) +from bt2.version import __version__ +from bt2.component import ( + _UserSinkComponent, + _SinkComponentConst, + _IncompleteUserClass, + _UserFilterComponent, + _UserSourceComponent, + _FilterComponentConst, + _SourceComponentConst, + _SinkComponentClassConst, + _FilterComponentClassConst, + _SourceComponentClassConst, +) +from bt2.py_plugin import register_plugin, plugin_component_class +from bt2.field_path import ( + FieldPathScope, + _IndexFieldPathItem, + _CurrentArrayElementFieldPathItem, + _CurrentOptionContentFieldPathItem, +) # import all public names from bt2.clock_class import ClockClassOffset -from bt2.clock_snapshot import _ClockSnapshot -from bt2.clock_snapshot import _UnknownClockSnapshot -from bt2.component import _SourceComponentClass -from bt2.component import _FilterComponentClass -from bt2.component import _SinkComponentClass -from bt2.component import _SourceComponent -from bt2.component import _FilterComponent -from bt2.component import _SinkComponent -from bt2.component import _UserSourceComponent -from bt2.component import _UserFilterComponent -from bt2.component import _UserSinkComponent -from bt2.component_descriptor import ComponentDescriptor -from bt2.error import ComponentClassType -from bt2.error import _ErrorCause -from bt2.error import _ComponentErrorCause -from bt2.error import _ComponentClassErrorCause -from bt2.error import _MessageIteratorErrorCause -from bt2.error import _Error from bt2.event_class import EventClassLogLevel -from bt2.field import _BoolField -from bt2.field import _IntegerField -from bt2.field import _UnsignedIntegerField -from bt2.field import _SignedIntegerField -from bt2.field import _RealField -from bt2.field import _EnumerationField -from bt2.field import _UnsignedEnumerationField -from bt2.field import _SignedEnumerationField -from bt2.field import _StringField -from bt2.field import _StructureField -from bt2.field import _VariantField -from bt2.field import _ArrayField -from bt2.field import _StaticArrayField -from bt2.field import _DynamicArrayField -from bt2.field_class import IntegerDisplayBase -from bt2.field_class import _BoolFieldClass -from bt2.field_class import _IntegerFieldClass -from bt2.field_class import _UnsignedIntegerFieldClass -from bt2.field_class import _SignedIntegerFieldClass -from bt2.field_class import _RealFieldClass -from bt2.field_class import _EnumerationFieldClass -from bt2.field_class import _UnsignedEnumerationFieldClass -from bt2.field_class import _SignedEnumerationFieldClass -from bt2.field_class import _StringFieldClass -from bt2.field_class import _StructureFieldClass -from bt2.field_class import _VariantFieldClass -from bt2.field_class import _VariantFieldClassWithoutSelector -from bt2.field_class import _VariantFieldClassWithSelector -from bt2.field_class import _VariantFieldClassWithUnsignedSelector -from bt2.field_class import _VariantFieldClassWithSignedSelector -from bt2.field_class import _ArrayFieldClass -from bt2.field_class import _StaticArrayFieldClass -from bt2.field_class import _DynamicArrayFieldClass -from bt2.field_path import FieldPathScope -from bt2.field_path import _IndexFieldPathItem -from bt2.field_path import _CurrentArrayElementFieldPathItem -from bt2.graph import Graph -from bt2.integer_range_set import SignedIntegerRange -from bt2.integer_range_set import UnsignedIntegerRange -from bt2.integer_range_set import SignedIntegerRangeSet -from bt2.integer_range_set import UnsignedIntegerRangeSet +from bt2.field_class import ( + IntegerDisplayBase, + _BoolFieldClass, + _RealFieldClass, + _ArrayFieldClass, + _OptionFieldClass, + _StringFieldClass, + _IntegerFieldClass, + _VariantFieldClass, + _BitArrayFieldClass, + _BoolFieldClassConst, + _RealFieldClassConst, + _StructureFieldClass, + _ArrayFieldClassConst, + _EnumerationFieldClass, + _OptionFieldClassConst, + _StaticArrayFieldClass, + _StringFieldClassConst, + _DynamicArrayFieldClass, + _IntegerFieldClassConst, + _VariantFieldClassConst, + _BitArrayFieldClassConst, + _SignedIntegerFieldClass, + _StructureFieldClassConst, + _UnsignedIntegerFieldClass, + _EnumerationFieldClassConst, + _StaticArrayFieldClassConst, + _DynamicArrayFieldClassConst, + _SignedEnumerationFieldClass, + _OptionWithSelectorFieldClass, + _SignedIntegerFieldClassConst, + _UnsignedEnumerationFieldClass, + _UnsignedIntegerFieldClassConst, + _OptionWithBoolSelectorFieldClass, + _SignedEnumerationFieldClassConst, + _VariantFieldClassWithoutSelector, + _OptionWithSelectorFieldClassConst, + _UnsignedEnumerationFieldClassConst, + _OptionWithIntegerSelectorFieldClass, + _VariantFieldClassWithIntegerSelector, + _DynamicArrayWithLengthFieldFieldClass, + _OptionWithBoolSelectorFieldClassConst, + _VariantFieldClassWithoutSelectorConst, + _OptionWithIntegerSelectorFieldClassConst, + _OptionWithSignedIntegerSelectorFieldClass, + _VariantFieldClassWithIntegerSelectorConst, + _DynamicArrayWithLengthFieldFieldClassConst, + _VariantFieldClassWithSignedIntegerSelector, + _OptionWithUnsignedIntegerSelectorFieldClass, + _VariantFieldClassWithUnsignedIntegerSelector, + _OptionWithSignedIntegerSelectorFieldClassConst, + _VariantFieldClassWithSignedIntegerSelectorConst, + _OptionWithUnsignedIntegerSelectorFieldClassConst, + _VariantFieldClassWithUnsignedIntegerSelectorConst, +) from bt2.interrupter import Interrupter -from bt2.logging import LoggingLevel -from bt2.logging import get_minimal_logging_level -from bt2.logging import get_global_logging_level -from bt2.logging import set_global_logging_level -from bt2.message import _EventMessage -from bt2.message import _PacketBeginningMessage -from bt2.message import _PacketEndMessage -from bt2.message import _StreamBeginningMessage -from bt2.message import _StreamEndMessage -from bt2.message import _MessageIteratorInactivityMessage -from bt2.message import _DiscardedEventsMessage -from bt2.message import _DiscardedPacketsMessage -from bt2.message_iterator import _UserMessageIterator -from bt2.mip import get_greatest_operative_mip_version -from bt2.mip import get_maximal_mip_version -from bt2.plugin import find_plugins_in_path -from bt2.plugin import find_plugins -from bt2.plugin import find_plugin -from bt2.py_plugin import plugin_component_class -from bt2.py_plugin import register_plugin +from bt2.clock_snapshot import _ClockSnapshotConst, _UnknownClockSnapshot from bt2.query_executor import QueryExecutor -from bt2.trace_collection_message_iterator import AutoSourceComponentSpec -from bt2.trace_collection_message_iterator import ComponentSpec -from bt2.trace_collection_message_iterator import TraceCollectionMessageIterator -from bt2.value import create_value -from bt2.value import BoolValue -from bt2.value import _IntegerValue -from bt2.value import UnsignedIntegerValue -from bt2.value import SignedIntegerValue -from bt2.value import RealValue -from bt2.value import StringValue -from bt2.value import ArrayValue -from bt2.value import MapValue -from bt2.version import __version__ - - -def _del_global_name(name): - if name in globals(): - del globals()[name] - - -# remove private module names from the package -_del_global_name('_native_bt') -_del_global_name('clock_class') -_del_global_name('clock_snapshot') -_del_global_name('component') -_del_global_name('connection') -_del_global_name('error') -_del_global_name('event') -_del_global_name('event_class') -_del_global_name('field') -_del_global_name('field_class') -_del_global_name('field_path') -_del_global_name('graph') -_del_global_name('integer_range_set') -_del_global_name('interrupter') -_del_global_name('logging') -_del_global_name('message') -_del_global_name('message_iterator') -_del_global_name('native_bt') -_del_global_name('object') -_del_global_name('packet') -_del_global_name('plugin') -_del_global_name('port') -_del_global_name('py_plugin') -_del_global_name('query_executor') -_del_global_name('stream') -_del_global_name('stream_class') -_del_global_name('trace') -_del_global_name('trace_class') -_del_global_name('trace_collection_message_iterator') -_del_global_name('utils') -_del_global_name('value') -_del_global_name('version') - -# remove private `_del_global_name` name from the package -del _del_global_name - - -class _MemoryError(_Error): - '''Raised when an operation fails due to memory issues.''' - - -class UnknownObject(Exception): - ''' - Raised when a component class handles a query for an object it doesn't - know about. - ''' - - pass - - -class _OverflowError(_Error, OverflowError): - pass +from bt2.message_iterator import _UserMessageIterator +from bt2.integer_range_set import ( + SignedIntegerRange, + UnsignedIntegerRange, + SignedIntegerRangeSet, + UnsignedIntegerRangeSet, + _SignedIntegerRangeConst, + _UnsignedIntegerRangeConst, + _SignedIntegerRangeSetConst, + _UnsignedIntegerRangeSetConst, +) +from bt2.component_descriptor import ComponentDescriptor +from bt2.trace_collection_message_iterator import ( + ComponentSpec, + AutoSourceComponentSpec, + TraceCollectionMessageIterator, +) +if (sys.version_info.major, sys.version_info.minor) != (3, 4): -class TryAgain(Exception): - pass + def _del_global_name(name): + if name in globals(): + del globals()[name] + # remove private module names from the package + _del_global_name("_native_bt") + _del_global_name("clock_class") + _del_global_name("clock_snapshot") + _del_global_name("component") + _del_global_name("connection") + _del_global_name("error") + _del_global_name("event") + _del_global_name("event_class") + _del_global_name("field") + _del_global_name("field_class") + _del_global_name("field_path") + _del_global_name("graph") + _del_global_name("integer_range_set") + _del_global_name("interrupter") + _del_global_name("logging") + _del_global_name("message") + _del_global_name("message_iterator") + _del_global_name("native_bt") + _del_global_name("object") + _del_global_name("packet") + _del_global_name("plugin") + _del_global_name("port") + _del_global_name("py_plugin") + _del_global_name("query_executor") + _del_global_name("stream") + _del_global_name("stream_class") + _del_global_name("trace") + _del_global_name("trace_class") + _del_global_name("trace_collection_message_iterator") + _del_global_name("utils") + _del_global_name("value") + _del_global_name("version") -class Stop(StopIteration): - pass + # remove private `_del_global_name` name from the package + del _del_global_name -class _IncompleteUserClass(Exception): - pass +# remove sys module name from the package +del sys def _init_and_register_exit(): - from bt2 import native_bt import atexit + from bt2 import native_bt + atexit.register(native_bt.bt2_exit_handler) native_bt.bt2_init_from_bt2()