From 15ca338693167373102f5a44c2694c0adc26d820 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Mon, 12 Oct 2020 00:13:57 +0200 Subject: Introduced access rights in the Python attributes documentation. --- plugins/pychrysalide/helpers.h | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/pychrysalide/helpers.h b/plugins/pychrysalide/helpers.h index 45b3083..428cf92 100644 --- a/plugins/pychrysalide/helpers.h +++ b/plugins/pychrysalide/helpers.h @@ -118,6 +118,15 @@ bool register_python_module_object(PyObject *, PyTypeObject *); #name "(" args ")\n--\n\n" doc \ } +/** + * Il ne semble pas exister de moyen de déterminer + * si un attribut est inscriptible de façon introspective... + * L'indication est donc placée dans la documentation. + */ +#define ATTRIB_RO "(ro) " +#define ATTRIB_WO "(wo) " +#define ATTRIB_RW "(rw) " + #define PYTHON_GETSET_DEF(name, get, set, doc, closure) \ { \ name, get, set, \ @@ -126,26 +135,26 @@ bool register_python_module_object(PyObject *, PyTypeObject *); } #define PYTHON_IS_DEF_FULL(name, base, doc) \ - PYTHON_GETSET_DEF("is_" #name, base ## _is_ ## name, NULL, doc, NULL) + PYTHON_GETSET_DEF("is_" #name, base ## _is_ ## name, NULL, ATTRIB_RO doc, NULL) #define PYTHON_HAS_DEF_FULL(name, base, doc) \ - PYTHON_GETSET_DEF(#name, base ## _has_ ## name, NULL, doc, NULL) + PYTHON_GETSET_DEF(#name, base ## _has_ ## name, NULL, ATTRIB_RO doc, NULL) #define PYTHON_RAWGET_DEF_FULL(name, base, doc) \ - PYTHON_GETSET_DEF(#name, base ## _ ## name, NULL, doc, NULL) + PYTHON_GETSET_DEF(#name, base ## _ ## name, NULL, ATTRIB_RO doc, NULL) #define PYTHON_GET_DEF_FULL(name, base, doc) \ - PYTHON_GETSET_DEF(#name, base ## _get_ ## name, NULL, doc, NULL) + PYTHON_GETSET_DEF(#name, base ## _get_ ## name, NULL, ATTRIB_RO doc, NULL) #define PYTHON_GETSET_DEF_FULL(name, base, doc) \ - PYTHON_GETSET_DEF(#name, base ## _get_ ## name, base ## _set_ ## name, doc, NULL) + PYTHON_GETSET_DEF(#name, base ## _get_ ## name, base ## _set_ ## name, ATTRIB_RW doc, NULL) #define PYTHON_GETTER_WRAPPER_DEF(name, doc) \ { \ #name, \ (getter)not_yet_implemented_getter, \ NULL, \ - doc, NULL \ + ATTRIB_RO doc, NULL \ } /** -- cgit v0.11.2-87-g4458