projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib: bt_plugin_find*(): return status code; add "fail on load error" param
[babeltrace.git]
/
src
/
bindings
/
python
/
bt2
/
bt2
/
plugin.py
diff --git
a/src/bindings/python/bt2/bt2/plugin.py
b/src/bindings/python/bt2/bt2/plugin.py
index 2d0d8b057303afa44d1e8cb0a832ac429c4b11c3..b32f8ce236b50853116a738e8e44d55f96f65936 100644
(file)
--- a/
src/bindings/python/bt2/bt2/plugin.py
+++ b/
src/bindings/python/bt2/bt2/plugin.py
@@
-27,29
+27,45
@@
import os.path
import bt2
import bt2
-def find_plugins(path, recurse=True):
+def _handle_status(status, gen_error_msg):
+ if status == native_bt.PLUGIN_STATUS_LOADING_ERROR:
+ raise bt2.PluginLoadingError
+ elif status < 0:
+ raise bt2.Error(gen_error_msg)
+
+
+def find_plugins(path, recurse=True, fail_on_load_error=False):
utils._check_str(path)
utils._check_bool(recurse)
utils._check_str(path)
utils._check_bool(recurse)
+ utils._check_bool(fail_on_load_error)
plugin_set_ptr = None
if os.path.isfile(path):
plugin_set_ptr = None
if os.path.isfile(path):
-
plugin_set_ptr = native_bt.plugin_find_all_from_file(path
)
+
status, plugin_set_ptr = native_bt.plugin_find_all_from_file_wrapper(path, fail_on_load_error
)
elif os.path.isdir(path):
elif os.path.isdir(path):
- plugin_set_ptr = native_bt.plugin_find_all_from_dir(path, int(recurse))
+ status, plugin_set_ptr = native_bt.plugin_find_all_from_dir_wrapper(path, int(recurse), int(fail_on_load_error))
+ else:
+ raise bt2.Error("invalid path: '{}'".format(path))
+
+ _handle_status(status, 'failed to find plugins')
- if
plugin_set_ptr is None
:
+ if
status == native_bt.PLUGIN_STATUS_NOT_FOUND
:
return
return
+ assert plugin_set_ptr is not None
return _PluginSet._create_from_ptr(plugin_set_ptr)
return _PluginSet._create_from_ptr(plugin_set_ptr)
-def find_plugin(name):
+def find_plugin(name
, fail_on_load_error=False
):
utils._check_str(name)
utils._check_str(name)
- ptr = native_bt.plugin_find(name)
+ utils._check_bool(fail_on_load_error)
+ status, ptr = native_bt.plugin_find_wrapper(name, int(fail_on_load_error))
+ _handle_status(status, 'failed to find plugin')
- if
ptr is None
:
+ if
status == native_bt.PLUGIN_STATUS_NOT_FOUND
:
return
return
+ assert ptr is not None
return _Plugin._create_from_ptr(ptr)
return _Plugin._create_from_ptr(ptr)
This page took
0.028155 seconds
and
4
git commands to generate.