docs: Fix property extraction and add Scene documentation
Doc generator fixes (tools/generate_dynamic_docs.py): - Add types.GetSetDescriptorType detection for C++ extension properties - All 22 classes with properties now have documented Properties sections - Read-only detection via "read-only" docstring convention Scene class documentation (src/PySceneObject.h): - Expanded tp_doc with constructor, properties, lifecycle callbacks - Documents key advantage: on_key works on ANY scene - Includes usage examples for basic and subclass patterns CLAUDE.md additions: - New section "Adding Documentation for New Python Types" - Step-by-step guide for tp_doc, PyMethodDef, PyGetSetDef - Documentation extraction details and troubleshooting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
b863698f6e
commit
e64c5c147f
5 changed files with 835 additions and 5 deletions
|
|
@ -10,6 +10,7 @@ import inspect
|
|||
import datetime
|
||||
import html
|
||||
import re
|
||||
import types
|
||||
from pathlib import Path
|
||||
|
||||
def transform_doc_links(docstring, format='html', base_url=''):
|
||||
|
|
@ -214,11 +215,21 @@ def get_all_classes():
|
|||
"parsed": parse_docstring(method_doc)
|
||||
}
|
||||
elif isinstance(attr, property):
|
||||
# Pure Python property
|
||||
prop_doc = (attr.fget.__doc__ if attr.fget else "") or ""
|
||||
class_info["properties"][attr_name] = {
|
||||
"doc": prop_doc,
|
||||
"readonly": attr.fset is None
|
||||
}
|
||||
elif isinstance(attr, (types.GetSetDescriptorType, types.MemberDescriptorType)):
|
||||
# C++ extension property (PyGetSetDef or PyMemberDef)
|
||||
prop_doc = attr.__doc__ or ""
|
||||
# Check if docstring indicates read-only (convention: "read-only" in description)
|
||||
readonly = "read-only" in prop_doc.lower()
|
||||
class_info["properties"][attr_name] = {
|
||||
"doc": prop_doc,
|
||||
"readonly": readonly
|
||||
}
|
||||
except:
|
||||
pass
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue