Fix T88792: WindowManager.clipboard missing in Python API docs
Support RNA types using the Py/C-API PyGetSetDef defined properties. Currently `WindowManager.clipboard` is the only instance of this.
This commit is contained in:
parent
1fcdb1ea28
commit
136a06285f
|
@ -1474,6 +1474,12 @@ def pyrna2sphinx(basepath):
|
|||
pyprop2sphinx(" ", fw, identifier, py_prop)
|
||||
del py_properties, py_prop
|
||||
|
||||
# C/Python attributes: `GetSetDescriptorType`.
|
||||
key = descr = None
|
||||
for key, descr in sorted(struct.get_py_c_properties_getset()):
|
||||
py_descr2sphinx(" ", fw, descr, "bpy.types", struct_id, key)
|
||||
del key, descr
|
||||
|
||||
for func in struct.functions:
|
||||
args_str = ", ".join(prop.get_arg_default(force=False) for prop in func.args)
|
||||
|
||||
|
|
|
@ -206,6 +206,14 @@ class InfoStructRNA:
|
|||
functions.append((identifier, attr))
|
||||
return functions
|
||||
|
||||
def get_py_c_properties_getset(self):
|
||||
import types
|
||||
properties_getset = []
|
||||
for identifier, descr in self.py_class.__dict__.items():
|
||||
if type(descr) == types.GetSetDescriptorType:
|
||||
properties_getset.append((identifier, descr))
|
||||
return properties_getset
|
||||
|
||||
def __str__(self):
|
||||
|
||||
txt = ""
|
||||
|
|
|
@ -107,6 +107,7 @@ static struct PyMethodDef pyrna_text_methods[] = {
|
|||
* and creating the buffer, causing writes past the allocated length.
|
||||
* \{ */
|
||||
|
||||
PyDoc_STRVAR(pyrna_WindowManager_clipboard_doc, "Clipboard text storage.\n\n:type: string");
|
||||
static PyObject *pyrna_WindowManager_clipboard_get(PyObject *UNUSED(self), void *UNUSED(flag))
|
||||
{
|
||||
int text_len = 0;
|
||||
|
@ -154,7 +155,7 @@ static struct PyGetSetDef pyrna_windowmanager_getset[] = {
|
|||
{"clipboard",
|
||||
pyrna_WindowManager_clipboard_get,
|
||||
pyrna_WindowManager_clipboard_set,
|
||||
NULL,
|
||||
pyrna_WindowManager_clipboard_doc,
|
||||
NULL},
|
||||
{NULL, NULL, NULL, NULL, NULL} /* Sentinel */
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue