]> sigrok.org Git - libsigrok.git/blobdiff - bindings/swig/doc.py
bindings: Wrap enum sr_configcap as Capability class.
[libsigrok.git] / bindings / swig / doc.py
index ffde9331f6b045e0f253151f13669b5f114c2ab7..f71493d4d69993a81246970d6241a94a4e3cd6b2 100644 (file)
@@ -21,14 +21,16 @@ from __future__ import print_function
 from xml.etree import ElementTree
 import sys, os
 
-language, input_file = sys.argv[1:]
+language, input_file = sys.argv[1:3]
+if len(sys.argv) == 4:
+    mode = sys.argv[3]
 input_dir = os.path.dirname(input_file)
 
 index = ElementTree.parse(input_file)
 
 def get_text(node):
     paras = node.findall('para')
-    return str.join('\n\n', [p.text.rstrip() for p in paras if p.text])
+    return str.join('\n\n', [("".join(l)).rstrip() for l in [list(p.itertext()) for p in paras] if l])
 
 for compound in index.findall('compound'):
     if compound.attrib['kind'] != 'class':
@@ -88,7 +90,14 @@ for compound in index.findall('compound'):
                 trimmed_name, member_name))
         print('%}')
     elif language == 'python' and constants:
-        print('%%extend %s {\n%%pythoncode %%{' % class_name)
-        for member_name, brief in constants:
-            print('    ## @brief %s\n    %s = None' % (brief, member_name))
-        print('%}\n}')
+        if mode == 'start':
+            print('%%extend %s {\n%%pythoncode %%{' % class_name)
+            for member_name, brief in constants:
+                print('    ## @brief %s\n    %s = None' % (brief, member_name))
+            print('%}\n}')
+        elif mode == 'end':
+            print('%pythoncode %{')
+            for member_name, brief in constants:
+                print('%s.%s.__doc__ = """%s"""' % (
+                    trimmed_name, member_name, brief))
+            print('%}')