configure: disable -Wmaybe-uninitialized
[babeltrace.git] / src / bindings / python / bt2 / bt2 / component.py
index 4a7e6bf1541c513a04edd0a9fd2feebf3cbde11d..5395e0b6b59ccf11699d5a1c76461e928c5c0671 100644 (file)
@@ -327,17 +327,22 @@ def _create_component_class_from_const_ptr_and_get_ref(ptr, comp_cls_type):
 
 def _trim_docstring(docstring):
     lines = docstring.expandtabs().splitlines()
+
+    if len(lines) == 0:
+        return ''
+
     indent = sys.maxsize
 
-    for line in lines[1:]:
-        stripped = line.lstrip()
+    if len(lines) > 1:
+        for line in lines[1:]:
+            stripped = line.lstrip()
 
-        if stripped:
-            indent = min(indent, len(line) - len(stripped))
+            if stripped:
+                indent = min(indent, len(line) - len(stripped))
 
     trimmed = [lines[0].strip()]
 
-    if indent < sys.maxsize:
+    if indent < sys.maxsize and len(lines) > 1:
         for line in lines[1:]:
             trimmed.append(line[indent:].rstrip())
 
@@ -382,14 +387,19 @@ def _trim_docstring(docstring):
 #         ...
 #
 # A user-defined Python component class can have an __init__() method
-# which must at least accept the `params` and `name` arguments:
+# which must accept the following parameters:
 #
-#     def __init__(self, params, name, something_else):
+#     def __init__(self, config, params, obj):
 #         ...
 #
-# The user-defined component class can also have a _finalize() method
-# (do NOT use __del__()) to be notified when the component object is
-# finalized.
+# The value of the `obj` parameter is what was passed as the `obj`
+# parameter if the component was instantiated from Python with
+# Graph.add_component().  If the component was not instantiated from
+# Python, is is always `None`.
+#
+# The user-defined component class can also have a _user_finalize()
+# method (do NOT use __del__()) to be notified when the component object
+# is finalized.
 #
 # User-defined source and filter component classes must use the
 # `message_iterator_class` class parameter to specify the
@@ -402,14 +412,16 @@ def _trim_docstring(docstring):
 #                    message_iterator_class=MyMessageIterator):
 #         ...
 #
-# This message iterator class must inherit
-# bt2._UserMessageIterator, and it must define the _get() and
-# _next() methods. The message iterator class can also define an
-# __init__() method: this method has access to the original Python
-# component object which was used to create it as the `component`
-# property. The message iterator class can also define a
-# _finalize() method (again, do NOT use __del__()): this is called when
-# the message iterator is (really) destroyed.
+# This message iterator class must inherit bt2._UserMessageIterator.
+# It can implement the __init__() method, which must accept the
+# following parameters:
+#
+#     def __init__(self, config, port):
+#         ...
+#
+# It can also implement the __next__() and _user_finalize() methods
+# (again, do NOT use __del__()), which don't accept any parameters
+# other than `self`.
 #
 # When the user-defined class is destroyed, this metaclass's __del__()
 # method is called: the native BT component class pointer is put (not
This page took 0.024413 seconds and 4 git commands to generate.