[Bf-blender-cvs] [c256faa] temp-pyapi-units: Minor cleanup/changes to api & docstrings

Campbell Barton noreply at git.blender.org
Tue Jun 17 06:52:47 CEST 2014


Commit: c256faa6a8b1a2c6f71a0e48f45d976a7b6be65d
Author: Campbell Barton
Date:   Tue Jun 17 14:48:13 2014 +1000
https://developer.blender.org/rBc256faa6a8b1a2c6f71a0e48f45d976a7b6be65d

Minor cleanup/changes to api & docstrings

===================================================================

M	source/blender/blenkernel/BKE_unit.h
M	source/blender/blenlib/BLI_string.h
M	source/blender/blenlib/intern/string.c
M	source/blender/python/generic/py_capi_utils.c
M	source/blender/python/intern/bpy_utils_units.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_unit.h b/source/blender/blenkernel/BKE_unit.h
index 853a8db..5988172 100644
--- a/source/blender/blenkernel/BKE_unit.h
+++ b/source/blender/blenkernel/BKE_unit.h
@@ -62,17 +62,17 @@ double      bUnit_GetScaler(void *usys_pt, int index);
 
 /* aligned with PropertyUnit */
 enum {
-	B_UNIT_NONE          = 0,
-	B_UNIT_LENGTH        = 1,
-	B_UNIT_AREA          = 2,
-	B_UNIT_VOLUME        = 3,
-	B_UNIT_MASS          = 4,
-	B_UNIT_ROTATION      = 5,
-	B_UNIT_TIME          = 6,
-	B_UNIT_VELOCITY      = 7,
-	B_UNIT_ACCELERATION  = 8,
-	B_UNIT_CAMERA        = 9,
-	B_UNIT_TYPE_TOT      = 10,
+	B_UNIT_NONE             = 0,
+	B_UNIT_LENGTH           = 1,
+	B_UNIT_AREA             = 2,
+	B_UNIT_VOLUME           = 3,
+	B_UNIT_MASS             = 4,
+	B_UNIT_ROTATION         = 5,
+	B_UNIT_TIME             = 6,
+	B_UNIT_VELOCITY         = 7,
+	B_UNIT_ACCELERATION     = 8,
+	B_UNIT_CAMERA           = 9,
+	B_UNIT_TYPE_TOT         = 10,
 };
 
 #ifdef __cplusplus
diff --git a/source/blender/blenlib/BLI_string.h b/source/blender/blenlib/BLI_string.h
index d3172fd..235147d 100644
--- a/source/blender/blenlib/BLI_string.h
+++ b/source/blender/blenlib/BLI_string.h
@@ -76,7 +76,8 @@ void BLI_ascii_strtolower(char *str, const size_t len) ATTR_NONNULL();
 void BLI_ascii_strtoupper(char *str, const size_t len) ATTR_NONNULL();
 int BLI_str_rstrip_float_zero(char *str, const char pad) ATTR_NONNULL();
 
-int BLI_str_index_in_array(const char *str, const char **str_array, const int len);
+int BLI_str_index_in_array_n(const char *__restrict str, const char **__restrict str_array, const int str_array_len) ATTR_NONNULL();
+int BLI_str_index_in_array(const char *__restrict str, const char **__restrict str_array) ATTR_NONNULL();
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c
index 8a4de00..4ab568e 100644
--- a/source/blender/blenlib/intern/string.c
+++ b/source/blender/blenlib/intern/string.c
@@ -642,33 +642,42 @@ int BLI_str_rstrip_float_zero(char *str, const char pad)
 
 /**
  * Return index of a string in a string array.
- * Note it accepts a 'null' len value (-1), in which case it expects str_array to be NULL terminated.
  *
  * \param str The string to find.
- * \param str_array The array of strings, must be NULL-terminated if len is -1.
- * \param len the length of the array, or -1 for a NULL-terminated array.
- * \return The index of str in str_array if found, else -1.
+ * \param str_array Array of strings.
+ * \param str_array_len The length of the array, or -1 for a NULL-terminated array.
+ * \return The index of str in str_array or -1.
  */
-int BLI_str_index_in_array(const char *str, const char **str_array, const int len)
+int BLI_str_index_in_array_n(const char *str, const char **str_array, const int str_array_len)
 {
-	int idx;
-	char **arr = str_array;
+	int index;
+	const char **str_iter = str_array;
 
-	if (len == -1) {
-		for (idx = 0; *arr; ++arr, ++idx) {
-			if (STREQ(str, *arr)) {
-				break;
-			}
+	for (index = 0; index < str_array_len; str_iter++, index++) {
+		if (STREQ(str, *str_iter)) {
+			return index;
 		}
-		return *arr ? idx : -1;
 	}
-	else {
-		for (idx = 0; idx < len; ++arr, ++idx) {
-			if (STREQ(str, *arr)) {
-				break;
-			}
+	return -1;
+}
+
+/**
+ * Return index of a string in a string array.
+ *
+ * \param str The string to find.
+ * \param str_array Array of strings, (must be NULL-terminated).
+ * \return The index of str in str_array or -1.
+ */
+int BLI_str_index_in_array(const char *str, const char **str_array)
+{
+	int index;
+	const char **str_iter = str_array;
+
+	for (index = 0; *str_iter; str_iter++, index++) {
+		if (STREQ(str, *str_iter)) {
+			return index;
 		}
-		return (idx == len) ? -1 : idx;
 	}
+	return -1;
 }
 
diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c
index d653cfb..8454f5b 100644
--- a/source/blender/python/generic/py_capi_utils.c
+++ b/source/blender/python/generic/py_capi_utils.c
@@ -906,8 +906,10 @@ PyObject *PyC_FlagSet_FromBitfield(PyC_FlagSet *items, int flag)
 }
 
 
-/* return -1 on error, else 0
- * Note it is caller's responsibility to acquire & release GIL!
+/**
+ * \return -1 on error, else 0
+ *
+ * \note it is caller's responsibility to acquire & release GIL!
  */
 int PyC_RunString_AsNumber(const char *expr, double *value, const char *filename)
 {
diff --git a/source/blender/python/intern/bpy_utils_units.c b/source/blender/python/intern/bpy_utils_units.c
index 3fef39c..7d50bc7 100644
--- a/source/blender/python/intern/bpy_utils_units.c
+++ b/source/blender/python/intern/bpy_utils_units.c
@@ -94,23 +94,23 @@ static const char *bpyunits_ucategories[] = {
  * This allows us to avoid many handwriting, and above all, to keep all systems/categories definition stuff in
  * BKE_unit.h!
  */
-static PyStructSequence_Field utils_units_systems_fields[ARRAY_SIZE(bpyunits_usystems)] = {{NULL}};
-static PyStructSequence_Field utils_units_categories_fields[ARRAY_SIZE(bpyunits_ucategories)] = {{NULL}};
+static PyStructSequence_Field bpyunits_systems_fields[ARRAY_SIZE(bpyunits_usystems)] = {{NULL}};
+static PyStructSequence_Field bpyunits_categories_fields[ARRAY_SIZE(bpyunits_ucategories)] = {{NULL}};
 
-static PyStructSequence_Desc utils_units_systems_desc = {
+static PyStructSequence_Desc bpyunits_systems_desc = {
 	(char *)"bpy.utils.units.systems",     /* name */
 	(char *)"This named tuple contains all pre-defined unit systems",    /* doc */
-	utils_units_systems_fields,    /* fields */
-	(sizeof(utils_units_systems_fields) / sizeof(PyStructSequence_Field)) - 1
+	bpyunits_systems_fields,    /* fields */
+	ARRAY_SIZE(bpyunits_systems_fields) - 1
 };
-static PyStructSequence_Desc utils_units_categories_desc = {
+static PyStructSequence_Desc bpyunits_categories_desc = {
 	(char *)"bpy.utils.units.categories",     /* name */
 	(char *)"This named tuple contains all pre-defined unit names",    /* doc */
-	utils_units_categories_fields,    /* fields */
-	(sizeof(utils_units_categories_fields) / sizeof(PyStructSequence_Field)) - 1
+	bpyunits_categories_fields,    /* fields */
+	ARRAY_SIZE(bpyunits_categories_fields) - 1
 };
 
-static PyObject *utils_units_systems_make(void)
+static PyObject *bpyunits_systems_make(void)
 {
 	PyObject *units_systems;
 	const char **sys;
@@ -128,7 +128,7 @@ static PyObject *utils_units_systems_make(void)
 	return units_systems;
 }
 
-static PyObject *utils_units_categories_make(void)
+static PyObject *bpyunits_categories_make(void)
 {
 	PyObject *units_categories;
 	const char **categories;
@@ -148,47 +148,53 @@ static PyObject *utils_units_categories_make(void)
 
 /***** Main BlenderAppTranslations Py object definition *****/
 
-PyDoc_STRVAR(utils_units_systems_doc, "A named tuple containing all pre-defined unit systems.\n");
-PyDoc_STRVAR(utils_units_categories_doc, "A named tuple containing all pre-defined unit categories.\n");
+PyDoc_STRVAR(bpyunits_systems_doc, "A named tuple containing all pre-defined unit systems.\n");
+PyDoc_STRVAR(bpyunits_categories_doc, "A named tuple containing all pre-defined unit categories.\n");
 
-static PyMemberDef utils_units_members[] = {
-	{(char *)"systems", T_OBJECT_EX, offsetof(BlenderUtilsUnits, systems), READONLY, utils_units_systems_doc},
-	{(char *)"categories", T_OBJECT_EX, offsetof(BlenderUtilsUnits, categories), READONLY, utils_units_categories_doc},
+static PyMemberDef bpyunits_members[] = {
+	{(char *)"systems", T_OBJECT_EX, offsetof(BlenderUtilsUnits, systems), READONLY, bpyunits_systems_doc},
+	{(char *)"categories", T_OBJECT_EX, offsetof(BlenderUtilsUnits, categories), READONLY, bpyunits_categories_doc},
 	{NULL},
 };
 
-static PyGetSetDef utils_units_getseters[] = {{NULL}};
+static PyGetSetDef bpyunits_getseters[] = {{NULL}};
 
-static bool utils_units_validate(const char *usys_str, const char *ucat_str, int *r_usys, int *r_ucat)
+static bool bpyunits_validate(const char *usys_str, const char *ucat_str, int *r_usys, int *r_ucat)
 {
-	*r_usys = BLI_str_index_in_array(usys_str, bpyunits_usystems, -1);
+	*r_usys = BLI_str_index_in_array(usys_str, bpyunits_usystems);
 	if (*r_usys < 0) {
-		PyErr_Format(PyExc_ValueError, "Unknown unit system specified: %s.", usys_str);
+		PyErr_Format(PyExc_ValueError,
+		             "Unknown unit system specified: %.200s.",
+		             usys_str);
 		return false;
 	}
 
-	*r_ucat = BLI_str_index_in_array(ucat_str, bpyunits_ucategories, -1);
+	*r_ucat = BLI_str_index_in_array(ucat_str, bpyunits_ucategories);
 	if (*r_ucat < 0) {
-		PyErr_Format(PyExc_ValueError, "Unknown unit category specified: %s.", ucat_str);
+		PyErr_Format(PyExc_ValueError,
+		             "Unknown unit category specified: %.200s.",
+		             ucat_str);
 		return false;
 	}
 
 	if (!bUnit_IsValid(*r_usys, *r_ucat)) {
-		PyErr_Format(PyExc_ValueError, "%s / %s unit system/category combination is not valid.", usys_str, ucat_str);
+		PyErr_Format(PyExc_ValueError,
+		             "%.200s / %.200s unit system/category combination is not valid.",
+		             usys_str, ucat_str);
 		return false;
 	}
 
 	return true;
 }
 
-PyDoc_STRVAR(utils_units_to_value_doc,
+PyDoc_STRVAR(bpyunits_to_value_doc,
 ".. method:: to_value(unit_system, unit_category, str_input, [str_ref_unit=None])\n"
 "\n"
 "   Convert a given input string into a float value.\n"
 "\n"
 "   :arg str unit_system: The unit system, from :attribute:`bpy.utils.units.systems`.\n"
 "   :arg str unit_category: The category of data we are converting (length, area, rotation, etc.), "
-"from :attribute:`bpy.utils.units.categories`.\n"
+"      from :attribute:`bpy.utils.units.categories`.\n"
 "   :arg str str_input: The string to convert to a float value.\n"
 "   :arg str_ref_unit: A reference string from which to extract a default unit, if none is found in :arg:`str_input`.\n"
 "   :type: string or None\n"
@@ -197,7 +203,7 @@ PyDoc_STRVAR(utils_units_to_value_doc,
 "   :raises ValueError: if conversion fails to generate a valid python float value.\n"
 "\n"
 );
-static PyObject *utils_units_to_value(BlenderUtilsUnits *UNUSED(self), PyObject *args, PyObject *kw)
+static PyObject *bpyunits_to_value(BlenderUt

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list