add python api docstring for 'bpy.types.Operator.bl_property'
authorCampbell Barton <ideasman42@gmail.com>
Tue, 5 Feb 2013 05:09:19 +0000 (05:09 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 5 Feb 2013 05:09:19 +0000 (05:09 +0000)
doc/python_api/sphinx_doc_gen.py
doc/python_api/sphinx_doc_gen_monkeypatch.py [new file with mode: 0644]
source/blender/python/intern/bpy_operator_wrap.c

index 7457ae0..d36f255 100644 (file)
@@ -696,6 +696,8 @@ def pyprop2sphinx(ident, fw, identifier, py_prop):
     write_indented_lines(ident + "   ", fw, py_prop.__doc__)
     if py_prop.fset is None:
         fw(ident + "   (readonly)\n\n")
+    else:
+        fw("\n")
 
 
 def pymodule2sphinx(basepath, module_name, module, title):
@@ -1814,8 +1816,19 @@ def refactor_sphinx_log(sphinx_logfile):
             refactored_logfile.write("%-12s %s\n             %s\n" % log)
 
 
+def monkey_patch():
+    filepath = os.path.join(SCRIPT_DIR, "sphinx_doc_gen_monkeypatch.py")
+    global_namespace = {"__file__": filepath, "__name__": "__main__"}
+    file = open(filepath, 'rb')
+    exec(compile(file.read(), filepath, 'exec'), global_namespace)
+    file.close()
+
+
 def main():
 
+    # first monkey patch to load in fake members
+    monkey_patch()
+
     # eventually, create the dirs
     for dir_path in [ARGS.output_dir, SPHINX_IN]:
         if not os.path.exists(dir_path):
diff --git a/doc/python_api/sphinx_doc_gen_monkeypatch.py b/doc/python_api/sphinx_doc_gen_monkeypatch.py
new file mode 100644 (file)
index 0000000..1167ece
--- /dev/null
@@ -0,0 +1,47 @@
+ # ***** BEGIN GPL LICENSE BLOCK *****
+ #
+ # This program is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU General Public License
+ # as published by the Free Software Foundation; either version 2
+ # of the License, or (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software Foundation,
+ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+ # Contributor(s): Campbell Barton
+ #
+ # #**** END GPL LICENSE BLOCK #****
+
+# <pep8 compliant>
+
+bpy_types_Operator_bl_property__doc__ = (
+"""
+The name of a property to use as this operators primary property.
+Currently this is only used to select the default property when
+expanding an operator into a menu.
+:type: string
+""")
+
+
+def main():
+    import bpy
+    from bpy.types import Operator
+
+    def dummy_func(test):
+        pass
+
+    kw_dummy = dict(fget=dummy_func, fset=dummy_func, fdel=dummy_func)
+
+    # bpy registration handles this,
+    # but its only checked for and not existing in the base class.
+    Operator.bl_property = property(doc=bpy_types_Operator_bl_property__doc__, **kw_dummy)
+
+
+if __name__ == "__main__":
+    main()
index e13dc6e..9d92ff5 100644 (file)
@@ -88,12 +88,12 @@ static void operator_properties_init(wmOperatorType *ot)
                        }
                }
                else {
+                       /* fallback to hard-coded string (pre 2.66, could be deprecated) */
                        prop_id = "type";
                        prop_raise_error = false;
                }
 
                if (prop_id) {
-                       /* fallback to hard-coded string */
                        PointerRNA ptr;
                        PropertyRNA *prop;