Cleanup: use doxygen sections in py_capi_rna.c
This commit is contained in:
@@ -37,6 +37,10 @@
|
|||||||
|
|
||||||
#include "MEM_guardedalloc.h"
|
#include "MEM_guardedalloc.h"
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------- */
|
||||||
|
/** \name Enum Utilities
|
||||||
|
* \{ */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert all items into a single comma separated string.
|
* Convert all items into a single comma separated string.
|
||||||
* Use for creating useful error messages.
|
* Use for creating useful error messages.
|
||||||
@@ -59,6 +63,12 @@ char *pyrna_enum_repr(const EnumPropertyItem *item)
|
|||||||
return cstring;
|
return cstring;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** \} */
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------- */
|
||||||
|
/** \name Enum Conversion Utilities
|
||||||
|
* \{ */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Same as #RNA_enum_value_from_id, but raises an exception.
|
* Same as #RNA_enum_value_from_id, but raises an exception.
|
||||||
*/
|
*/
|
||||||
@@ -78,47 +88,6 @@ int pyrna_enum_value_from_id(const EnumPropertyItem *item,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Use with #PyArg_ParseTuple's `O&` formatting.
|
|
||||||
*/
|
|
||||||
int pyrna_enum_value_parse_string(PyObject *o, void *p)
|
|
||||||
{
|
|
||||||
const char *identifier = PyUnicode_AsUTF8(o);
|
|
||||||
if (identifier == NULL) {
|
|
||||||
PyErr_Format(PyExc_TypeError, "expected a string enum, not %.200s", Py_TYPE(o)->tp_name);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
struct BPy_EnumProperty_Parse *parse_data = p;
|
|
||||||
if (pyrna_enum_value_from_id(
|
|
||||||
parse_data->items, identifier, &parse_data->value, "enum identifier") == -1) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_data->value_orig = o;
|
|
||||||
parse_data->is_set = true;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use with #PyArg_ParseTuple's `O&` formatting.
|
|
||||||
*/
|
|
||||||
int pyrna_enum_bitfield_parse_set(PyObject *o, void *p)
|
|
||||||
{
|
|
||||||
if (!PySet_Check(o)) {
|
|
||||||
PyErr_Format(PyExc_TypeError, "expected a set, not %.200s", Py_TYPE(o)->tp_name);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct BPy_EnumProperty_Parse *parse_data = p;
|
|
||||||
if (pyrna_enum_bitfield_from_set(
|
|
||||||
parse_data->items, o, &parse_data->value, "enum identifier set") == -1) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
parse_data->value_orig = o;
|
|
||||||
parse_data->is_set = true;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Takes a set of strings and map it to and array of booleans.
|
* Takes a set of strings and map it to and array of booleans.
|
||||||
*
|
*
|
||||||
@@ -247,3 +216,52 @@ PyObject *pyrna_enum_bitfield_as_set(const EnumPropertyItem *items, int value)
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** \} */
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------- */
|
||||||
|
/** \name Argument Parsing Helpers
|
||||||
|
* \{ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use with #PyArg_ParseTuple's `O&` formatting.
|
||||||
|
*/
|
||||||
|
int pyrna_enum_value_parse_string(PyObject *o, void *p)
|
||||||
|
{
|
||||||
|
const char *identifier = PyUnicode_AsUTF8(o);
|
||||||
|
if (identifier == NULL) {
|
||||||
|
PyErr_Format(PyExc_TypeError, "expected a string enum, not %.200s", Py_TYPE(o)->tp_name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
struct BPy_EnumProperty_Parse *parse_data = p;
|
||||||
|
if (pyrna_enum_value_from_id(
|
||||||
|
parse_data->items, identifier, &parse_data->value, "enum identifier") == -1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_data->value_orig = o;
|
||||||
|
parse_data->is_set = true;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use with #PyArg_ParseTuple's `O&` formatting.
|
||||||
|
*/
|
||||||
|
int pyrna_enum_bitfield_parse_set(PyObject *o, void *p)
|
||||||
|
{
|
||||||
|
if (!PySet_Check(o)) {
|
||||||
|
PyErr_Format(PyExc_TypeError, "expected a set, not %.200s", Py_TYPE(o)->tp_name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct BPy_EnumProperty_Parse *parse_data = p;
|
||||||
|
if (pyrna_enum_bitfield_from_set(
|
||||||
|
parse_data->items, o, &parse_data->value, "enum identifier set") == -1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
parse_data->value_orig = o;
|
||||||
|
parse_data->is_set = true;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** \} */
|
||||||
|
|||||||
@@ -32,6 +32,20 @@ int pyrna_enum_value_from_id(const struct EnumPropertyItem *item,
|
|||||||
int *value,
|
int *value,
|
||||||
const char *error_prefix);
|
const char *error_prefix);
|
||||||
|
|
||||||
|
unsigned int *pyrna_enum_bitmap_from_set(const struct EnumPropertyItem *items,
|
||||||
|
PyObject *value,
|
||||||
|
int type_size,
|
||||||
|
bool type_convert_sign,
|
||||||
|
int bitmap_size,
|
||||||
|
const char *error_prefix);
|
||||||
|
|
||||||
|
int pyrna_enum_bitfield_from_set(const struct EnumPropertyItem *items,
|
||||||
|
PyObject *value,
|
||||||
|
int *r_value,
|
||||||
|
const char *error_prefix);
|
||||||
|
|
||||||
|
PyObject *pyrna_enum_bitfield_as_set(const struct EnumPropertyItem *items, int value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data for #pyrna_enum_value_parse_string & #pyrna_enum_bitfield_parse_set parsing utilities.
|
* Data for #pyrna_enum_value_parse_string & #pyrna_enum_bitfield_parse_set parsing utilities.
|
||||||
* Use with #PyArg_ParseTuple's `O&` formatting.
|
* Use with #PyArg_ParseTuple's `O&` formatting.
|
||||||
@@ -50,17 +64,3 @@ struct BPy_EnumProperty_Parse {
|
|||||||
};
|
};
|
||||||
int pyrna_enum_value_parse_string(PyObject *o, void *p);
|
int pyrna_enum_value_parse_string(PyObject *o, void *p);
|
||||||
int pyrna_enum_bitfield_parse_set(PyObject *o, void *p);
|
int pyrna_enum_bitfield_parse_set(PyObject *o, void *p);
|
||||||
|
|
||||||
unsigned int *pyrna_enum_bitmap_from_set(const struct EnumPropertyItem *items,
|
|
||||||
PyObject *value,
|
|
||||||
int type_size,
|
|
||||||
bool type_convert_sign,
|
|
||||||
int bitmap_size,
|
|
||||||
const char *error_prefix);
|
|
||||||
|
|
||||||
int pyrna_enum_bitfield_from_set(const struct EnumPropertyItem *items,
|
|
||||||
PyObject *value,
|
|
||||||
int *r_value,
|
|
||||||
const char *error_prefix);
|
|
||||||
|
|
||||||
PyObject *pyrna_enum_bitfield_as_set(const struct EnumPropertyItem *items, int value);
|
|
||||||
|
|||||||
Reference in New Issue
Block a user