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
path: root/doc
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-04-29 20:20:49 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-04-29 20:20:49 +0400
commit9a269f3a1f55469f9db9618db4b911139c5f1230 (patch)
treef8f83fadee87040a280bce9f79fc13496e04b076 /doc
parent685e9b83c22aa3b2dc44bf34c82dbf751b407ab0 (diff)
update sphinx docgen
was missing context property attributes - context.mode for example. add RNA properties into context docs. also minor updates - exclude freestyle if its not enabled. - add missing context member.
Diffstat (limited to 'doc')
-rw-r--r--doc/python_api/sphinx_doc_gen.py60
1 files changed, 59 insertions, 1 deletions
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index d71c76b469c..d844b04dce5 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -70,6 +70,14 @@ except:
import rna_info # blender module
+
+def rna_info_BuildRNAInfo_cache():
+ if rna_info_BuildRNAInfo_cache.ret is None:
+ rna_info_BuildRNAInfo_cache.ret = rna_info.BuildRNAInfo()
+ return rna_info_BuildRNAInfo_cache.ret
+rna_info_BuildRNAInfo_cache.ret = None
+# --- end rna_info cache
+
# import rpdb2; rpdb2.start_embedded_debugger('test')
import os
import sys
@@ -302,6 +310,12 @@ except ImportError:
BPY_LOGGER.debug("Warning: Built without 'aud' module, docs incomplete...")
EXCLUDE_MODULES = list(EXCLUDE_MODULES) + ["aud"]
+try:
+ __import__("freestyle")
+except ImportError:
+ BPY_LOGGER.debug("Warning: Built without 'freestyle' module, docs incomplete...")
+ EXCLUDE_MODULES = list(EXCLUDE_MODULES) + ["freestyle"]
+
# examples
EXAMPLES_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "examples"))
EXAMPLE_SET = set()
@@ -986,6 +1000,7 @@ context_type_map = {
"texture": ("Texture", False),
"texture_slot": ("MaterialTextureSlot", False),
"texture_user": ("ID", False),
+ "texture_user_property": ("Property", False),
"vertex_paint_object": ("Object", False),
"visible_bases": ("ObjectBase", True),
"visible_bones": ("EditBone", True),
@@ -1009,6 +1024,47 @@ def pycontext2sphinx(basepath):
fw("\n")
fw("Note that all context values are readonly, but may be modified through the data api or by running operators\n\n")
+ def write_contex_cls():
+
+ fw(title_string("Global Context", "-"))
+ fw("These properties are avilable in any contexts.\n\n")
+
+ # very silly. could make these global and only access once.
+ # structs, funcs, ops, props = rna_info.BuildRNAInfo()
+ structs, funcs, ops, props = rna_info_BuildRNAInfo_cache()
+ struct = structs[("", "Context")]
+ struct_blacklist = RNA_BLACKLIST.get(struct.identifier, ())
+ del structs, funcs, ops, props
+
+ sorted_struct_properties = struct.properties[:]
+ sorted_struct_properties.sort(key=lambda prop: prop.identifier)
+
+ # First write RNA
+ for prop in sorted_struct_properties:
+ # support blacklisting props
+ if prop.identifier in struct_blacklist:
+ continue
+
+ type_descr = prop.get_type_description(class_fmt=":class:`%s`", collection_id=_BPY_PROP_COLLECTION_ID)
+ fw(".. data:: %s\n\n" % prop.identifier)
+ if prop.description:
+ fw(" %s\n\n" % prop.description)
+
+ # special exception, cant use genric code here for enums
+ if prop.type == "enum":
+ enum_text = pyrna_enum2sphinx(prop)
+ if enum_text:
+ write_indented_lines(" ", fw, enum_text)
+ fw("\n")
+ del enum_text
+ # end enum exception
+
+ fw(" :type: %s\n\n" % type_descr)
+
+ write_contex_cls()
+ del write_contex_cls
+ # end
+
# nasty, get strings directly from blender because there is no other way to get it
import ctypes
@@ -1079,7 +1135,9 @@ def pyrna_enum2sphinx(prop, use_empty_descriptions=False):
def pyrna2sphinx(basepath):
""" bpy.types and bpy.ops
"""
- structs, funcs, ops, props = rna_info.BuildRNAInfo()
+ # structs, funcs, ops, props = rna_info.BuildRNAInfo()
+ structs, funcs, ops, props = rna_info_BuildRNAInfo_cache()
+
if FILTER_BPY_TYPES is not None:
structs = {k: v for k, v in structs.items() if k[1] in FILTER_BPY_TYPES}