X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Fport.py;h=4206b3f0910694556372c3e9b6f23e54c122e60b;hp=418f215b8952162cc6cc98bda6aedc3aa6f33f60;hb=0235b0db7de5bcacdb3650c92461f2ce5eb2143d;hpb=6c373cc905e907ecbad698fee38db1d47a981b14 diff --git a/src/bindings/python/bt2/bt2/port.py b/src/bindings/python/bt2/bt2/port.py index 418f215b..4206b3f0 100644 --- a/src/bindings/python/bt2/bt2/port.py +++ b/src/bindings/python/bt2/bt2/port.py @@ -1,33 +1,17 @@ -# The MIT License (MIT) +# SPDX-License-Identifier: MIT # # Copyright (c) 2017 Philippe Proulx -# -# 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. -# -# 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. from bt2 import native_bt, object -from bt2 import component as bt2_component -from bt2 import connection as bt2_connection -from bt2 import message as bt2_message -import bt2 -def _create_from_ptr_and_get_ref(ptr, port_type): +def _bt2_connection(): + from bt2 import connection as bt2_connection + + return bt2_connection + + +def _create_from_const_ptr_and_get_ref(ptr, port_type): cls = _PORT_TYPE_TO_PYCLS.get(port_type, None) if cls is None: @@ -45,7 +29,7 @@ def _create_self_from_ptr_and_get_ref(ptr, port_type): return cls._create_from_ptr_and_get_ref(ptr) -class _Port(object._SharedObject): +class _PortConst(object._SharedObject): @classmethod def _get_ref(cls, ptr): ptr = cls._as_port_ptr(ptr) @@ -71,22 +55,22 @@ class _Port(object._SharedObject): if conn_ptr is None: return - return bt2_connection._Connection._create_from_ptr_and_get_ref(conn_ptr) + return _bt2_connection()._ConnectionConst._create_from_ptr_and_get_ref(conn_ptr) @property def is_connected(self): return self.connection is not None -class _InputPort(_Port): +class _InputPortConst(_PortConst): _as_port_ptr = staticmethod(native_bt.port_input_as_port_const) -class _OutputPort(_Port): +class _OutputPortConst(_PortConst): _as_port_ptr = staticmethod(native_bt.port_output_as_port_const) -class _UserComponentPort(_Port): +class _UserComponentPort(_PortConst): @classmethod def _as_port_ptr(cls, ptr): ptr = cls._as_self_port_ptr(ptr) @@ -100,7 +84,7 @@ class _UserComponentPort(_Port): if conn_ptr is None: return - return bt2_connection._Connection._create_from_ptr_and_get_ref(conn_ptr) + return _bt2_connection()._ConnectionConst._create_from_ptr_and_get_ref(conn_ptr) @property def user_data(self): @@ -108,21 +92,21 @@ class _UserComponentPort(_Port): return native_bt.self_component_port_get_data(ptr) -class _UserComponentInputPort(_UserComponentPort, _InputPort): +class _UserComponentInputPort(_UserComponentPort, _InputPortConst): _as_self_port_ptr = staticmethod( native_bt.self_component_port_input_as_self_component_port ) -class _UserComponentOutputPort(_UserComponentPort, _OutputPort): +class _UserComponentOutputPort(_UserComponentPort, _OutputPortConst): _as_self_port_ptr = staticmethod( native_bt.self_component_port_output_as_self_component_port ) _PORT_TYPE_TO_PYCLS = { - native_bt.PORT_TYPE_INPUT: _InputPort, - native_bt.PORT_TYPE_OUTPUT: _OutputPort, + native_bt.PORT_TYPE_INPUT: _InputPortConst, + native_bt.PORT_TYPE_OUTPUT: _OutputPortConst, }