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:
authorCampbell Barton <ideasman42@gmail.com>2019-03-28 03:19:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-28 03:40:17 +0300
commitcd92f8ea4626dc93c2b5d822cb0b6358d0b2e507 (patch)
treef0fe53756805b8cd2e02c0846d99fc4de2311e74 /source/blender/python/intern/bpy_msgbus.c
parenta58a4f48bef4686ebb4088b78ba750a88151bff4 (diff)
Fix bpy.msgbus.subscribe_rna argument parsing
Also enforce all arguments are keywords and update docstring.
Diffstat (limited to 'source/blender/python/intern/bpy_msgbus.c')
-rw-r--r--source/blender/python/intern/bpy_msgbus.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/source/blender/python/intern/bpy_msgbus.c b/source/blender/python/intern/bpy_msgbus.c
index 0fedb379a49..08ed60b5073 100644
--- a/source/blender/python/intern/bpy_msgbus.c
+++ b/source/blender/python/intern/bpy_msgbus.c
@@ -215,11 +215,16 @@ static void bpy_msgbus_subscribe_value_free_data(
* \{ */
PyDoc_STRVAR(bpy_msgbus_subscribe_rna_doc,
-".. function:: subscribe_rna(data, owner, args, notify)\n"
+".. function:: subscribe_rna(data, owner, args, notify, options=set())\n"
"\n"
BPY_MSGBUS_RNA_MSGKEY_DOC
" :arg owner: Handle for this subscription (compared by identity).\n"
" :type owner: Any type.\n"
+" :arg options: Change the behavior of the subscriber.\n"
+"\n"
+" - ``PERSISTENT`` when set, the subscriber will be kept when remapping ID data.\n"
+"\n"
+" :type options: set of str.\n"
"\n"
" Returns a new vector int property definition.\n"
);
@@ -241,6 +246,13 @@ static PyObject *bpy_msgbus_subscribe_rna(PyObject *UNUSED(self), PyObject *args
};
int options = 0;
+ if (PyTuple_GET_SIZE(args) != 0) {
+ PyErr_Format(
+ PyExc_TypeError,
+ "%s: only keyword arguments are supported",
+ error_prefix);
+ return NULL;
+ }
static const char *_keywords[] = {
"key",
"owner",
@@ -249,7 +261,7 @@ static PyObject *bpy_msgbus_subscribe_rna(PyObject *UNUSED(self), PyObject *args
"options",
NULL,
};
- static _PyArg_Parser _parser = {"$OOO!O|O!:subscribe_rna", _keywords, 0};
+ static _PyArg_Parser _parser = {"OOO!O|O!:subscribe_rna", _keywords, 0};
if (!_PyArg_ParseTupleAndKeywordsFast(
args, kw, &_parser,
&py_sub, &py_owner,
@@ -330,11 +342,18 @@ static PyObject *bpy_msgbus_publish_rna(PyObject *UNUSED(self), PyObject *args,
const char *error_prefix = "publish_rna";
PyObject *py_sub = NULL;
+ if (PyTuple_GET_SIZE(args) != 0) {
+ PyErr_Format(
+ PyExc_TypeError,
+ "%s: only keyword arguments are supported",
+ error_prefix);
+ return NULL;
+ }
static const char *_keywords[] = {
"key",
NULL,
};
- static _PyArg_Parser _parser = {"$O:publish_rna", _keywords, 0};
+ static _PyArg_Parser _parser = {"O:publish_rna", _keywords, 0};
if (!_PyArg_ParseTupleAndKeywordsFast(
args, kw, &_parser,
&py_sub))