X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Fplugin.py;h=cb169f484a36ee317ab2cc22011051522f514407;hb=0530003ff4f693e0a582a0ed4a15245455398b4a;hp=5198bdf32abfa3bb8e9ba9a86e397af5f9bc1154;hpb=3b2be7085899350a58fe836dc5e1a9650ce369b2;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/plugin.py b/src/bindings/python/bt2/bt2/plugin.py index 5198bdf3..cb169f48 100644 --- a/src/bindings/python/bt2/bt2/plugin.py +++ b/src/bindings/python/bt2/bt2/plugin.py @@ -22,12 +22,11 @@ from bt2 import native_bt, object, utils import collections.abc -import bt2.component +from bt2 import component as bt2_component import os.path -import bt2 -def find_plugins(path, recurse=True, fail_on_load_error=False): +def find_plugins_in_path(path, recurse=True, fail_on_load_error=False): utils._check_str(path) utils._check_bool(recurse) utils._check_bool(fail_on_load_error) @@ -52,10 +51,54 @@ def find_plugins(path, recurse=True, fail_on_load_error=False): return _PluginSet._create_from_ptr(plugin_set_ptr) -def find_plugin(name, fail_on_load_error=False): +def find_plugins( + find_in_std_env_var=True, + find_in_user_dir=True, + find_in_sys_dir=True, + find_in_static=True, + fail_on_load_error=False, +): + utils._check_bool(find_in_std_env_var) + utils._check_bool(find_in_user_dir) + utils._check_bool(find_in_sys_dir) + utils._check_bool(find_in_static) + utils._check_bool(fail_on_load_error) + plugin_set_ptr = None + + status, plugin_set_ptr = native_bt.bt2_plugin_find_all( + int(find_in_std_env_var), + int(find_in_user_dir), + int(find_in_sys_dir), + int(find_in_static), + int(fail_on_load_error), + ) + + if status == native_bt.__BT_FUNC_STATUS_NOT_FOUND: + return + + utils._handle_func_status(status, 'failed to find plugins') + assert plugin_set_ptr is not None + return _PluginSet._create_from_ptr(plugin_set_ptr) + + +def find_plugin( + name, + find_in_std_env_var=True, + find_in_user_dir=True, + find_in_sys_dir=True, + find_in_static=True, + fail_on_load_error=False, +): utils._check_str(name) utils._check_bool(fail_on_load_error) - status, ptr = native_bt.bt2_plugin_find(name, int(fail_on_load_error)) + status, ptr = native_bt.bt2_plugin_find( + name, + int(find_in_std_env_var), + int(find_in_user_dir), + int(find_in_sys_dir), + int(find_in_static), + int(fail_on_load_error), + ) if status == native_bt.__BT_FUNC_STATUS_NOT_FOUND: return @@ -136,7 +179,7 @@ class _PluginComponentClassesIterator(collections.abc.Iterator): self._at += 1 comp_cls_type = self._plugin_comp_cls._comp_cls_type - comp_cls_pycls = bt2.component._COMP_CLS_TYPE_TO_GENERIC_COMP_CLS_PYCLS[ + comp_cls_pycls = bt2_component._COMP_CLS_TYPE_TO_GENERIC_COMP_CLS_PYCLS[ comp_cls_type ] comp_cls_ptr = comp_cls_pycls._bt_as_component_class_ptr(comp_cls_ptr) @@ -156,7 +199,7 @@ class _PluginComponentClasses(collections.abc.Mapping): if cc_ptr is None: raise KeyError(key) - return bt2.component._create_component_class_from_ptr_and_get_ref( + return bt2_component._create_component_class_from_const_ptr_and_get_ref( cc_ptr, self._comp_cls_type )