[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31259] trunk/blender/source/blender/ python/doc/sphinx_doc_gen.py: add support for documenting class methods

Campbell Barton ideasman42 at gmail.com
Wed Aug 11 19:13:39 CEST 2010


Revision: 31259
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31259
Author:   campbellbarton
Date:     2010-08-11 19:13:39 +0200 (Wed, 11 Aug 2010)

Log Message:
-----------
add support for documenting class methods

Modified Paths:
--------------
    trunk/blender/source/blender/python/doc/sphinx_doc_gen.py

Modified: trunk/blender/source/blender/python/doc/sphinx_doc_gen.py
===================================================================
--- trunk/blender/source/blender/python/doc/sphinx_doc_gen.py	2010-08-11 16:40:36 UTC (rev 31258)
+++ trunk/blender/source/blender/python/doc/sphinx_doc_gen.py	2010-08-11 17:13:39 UTC (rev 31259)
@@ -45,6 +45,7 @@
 reload(rna_info)
 
 # lame, python wont give some access
+ClassMethodDescriptorType = type(dict.__dict__['fromkeys'])
 MethodDescriptorType = type(dict.get)
 GetSetDescriptorType = type(int.real)
 
@@ -151,10 +152,10 @@
     if type(descr) == GetSetDescriptorType:
         fw(ident + ".. attribute:: %s\n\n" % identifier)
         write_indented_lines(ident + "   ", fw, doc, False)
-    elif type(descr) == MethodDescriptorType: # GetSetDescriptorType's are not documented yet
+    elif type(descr) in (MethodDescriptorType, ClassMethodDescriptorType):
         write_indented_lines(ident, fw, doc, False)
     else:
-        raise TypeError("type was not GetSetDescriptorType or MethodDescriptorType")
+        raise TypeError("type was not GetSetDescriptorType, MethodDescriptorType or ClassMethodDescriptorType")
 
     write_example_ref(ident, fw, module_name + "." + type_name + "." + identifier)
     fw("\n")
@@ -268,6 +269,10 @@
         descr_items = [(key, descr) for key, descr in sorted(value.__dict__.items()) if not key.startswith("__")]
 
         for key, descr in descr_items:
+            if type(descr) == ClassMethodDescriptorType: # GetSetDescriptorType's are not documented yet
+                py_descr2sphinx("   ", fw, descr, module_name, type_name, key)
+
+        for key, descr in descr_items:
             if type(descr) == MethodDescriptorType: # GetSetDescriptorType's are not documented yet
                 py_descr2sphinx("   ", fw, descr, module_name, type_name, key)
 





More information about the Bf-blender-cvs mailing list