[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25669] trunk/blender: sphinx support for documenting multiple return values

Campbell Barton ideasman42 at gmail.com
Sat Jan 2 19:55:07 CET 2010


Revision: 25669
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25669
Author:   campbellbarton
Date:     2010-01-02 19:55:07 +0100 (Sat, 02 Jan 2010)

Log Message:
-----------
sphinx support for documenting multiple return values

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rna_info.py
    trunk/blender/source/blender/python/sphinx_doc_gen.py

Modified: trunk/blender/release/scripts/modules/rna_info.py
===================================================================
--- trunk/blender/release/scripts/modules/rna_info.py	2010-01-02 17:33:44 UTC (rev 25668)
+++ trunk/blender/release/scripts/modules/rna_info.py	2010-01-02 18:55:07 UTC (rev 25669)
@@ -252,19 +252,22 @@
         self.description = rna_func.description.strip()
 
         self.args = []
-        self.return_value = None
+        self.return_values = ()
 
     def build(self):
         rna_func = self.bl_func
         parent_id = rna_func
+        self.return_values = []
 
         for rna_prop in rna_func.parameters.values():
             prop = GetInfoPropertyRNA(rna_prop, parent_id)
             if rna_prop.use_return:
-                self.return_value = prop
+                self.return_values.append(prop)
             else:
                 self.args.append(prop)
 
+        self.return_values = tuple(self.return_values)
+
     def __repr__(self):
         txt = ''
         txt += ' * ' + self.identifier + '('
@@ -566,8 +569,8 @@
             func.build()
             for prop in func.args:
                 prop.build()
-            if func.return_value:
-                func.return_value.build()
+            for prop in func.return_values:
+                prop.build()
 
     # now for operators
     op_mods = dir(bpy.ops)

Modified: trunk/blender/source/blender/python/sphinx_doc_gen.py
===================================================================
--- trunk/blender/source/blender/python/sphinx_doc_gen.py	2010-01-02 17:33:44 UTC (rev 25668)
+++ trunk/blender/source/blender/python/sphinx_doc_gen.py	2010-01-02 18:55:07 UTC (rev 25669)
@@ -115,8 +115,8 @@
         #if not struct.identifier.startswith("Sc") and not struct.identifier.startswith("I"):
         #    return
 
-        #if not struct.identifier.startswith("Bone"):
-        #    return
+        if not struct.identifier == "Object":
+            return
 
         filepath = os.path.join(BASEPATH, "bpy.types.%s.rst" % struct.identifier)
         file = open(filepath, "w")
@@ -182,8 +182,17 @@
             for prop in func.args:
                 write_param("      ", fw, prop)
 
-            if func.return_value:
-                write_param("      ", fw, func.return_value, is_return=True)
+            if len(func.return_values) == 1:
+                write_param("      ", fw, func.return_values[0], is_return=True)
+            else: # multiple return values
+                fw("         :return (%s):\n" % ", ".join([prop.identifier for prop in func.return_values]))
+                for prop in func.return_values:
+                    type_descr = prop.get_type_description(as_arg=True, class_fmt=":class:`%s`")
+                    descr = prop.description
+                    if not descr:
+                        descr = prop.name
+                    fw("            `%s`, %s, %s\n\n" % (prop.identifier, descr, type_descr))
+
             fw("\n")
 
 





More information about the Bf-blender-cvs mailing list