Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/python_api/sphinx_doc_gen.py13
-rw-r--r--doc/python_api/sphinx_doc_gen_monkeypatch.py47
-rw-r--r--source/blender/python/intern/bpy_operator_wrap.c2
3 files changed, 61 insertions, 1 deletions
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index 7457ae02d6c..d36f25553ea 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -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
index 00000000000..1167ece05b7
--- /dev/null
+++ b/doc/python_api/sphinx_doc_gen_monkeypatch.py
@@ -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()
diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c
index e13dc6ecddd..9d92ff51213 100644
--- a/source/blender/python/intern/bpy_operator_wrap.c
+++ b/source/blender/python/intern/bpy_operator_wrap.c
@@ -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;