diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-03-28 03:19:48 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-03-28 03:40:17 +0300 |
commit | cd92f8ea4626dc93c2b5d822cb0b6358d0b2e507 (patch) | |
tree | f0fe53756805b8cd2e02c0846d99fc4de2311e74 /source/blender | |
parent | a58a4f48bef4686ebb4088b78ba750a88151bff4 (diff) |
Fix bpy.msgbus.subscribe_rna argument parsing
Also enforce all arguments are keywords and update docstring.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/python/intern/bpy_msgbus.c | 25 |
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)) |