Rename struct.unpack() 2nd parameter to "buffer"
Issue #29300: Rename struct.unpack() second parameter from "inputstr" to
"buffer", and use the Py_buffer type.
Fix also unit tests on struct.unpack() which passed a Unicode string instead of
a bytes string as struct.unpack() second parameter. The purpose of
test_trailing_counter() is to test invalid format strings, not to test the
buffer parameter.
diff --git a/Modules/_struct.c b/Modules/_struct.c
index 3626bad..78cd0f3 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -2162,7 +2162,7 @@
unpack
format: object
- inputstr: object
+ buffer: Py_buffer
/
Return a tuple containing values unpacked according to the format string.
@@ -2173,8 +2173,8 @@
[clinic start generated code]*/
static PyObject *
-unpack_impl(PyObject *module, PyObject *format, PyObject *inputstr)
-/*[clinic end generated code: output=06951d66eae6d63b input=4b81d54988890f5e]*/
+unpack_impl(PyObject *module, PyObject *format, Py_buffer *buffer)
+/*[clinic end generated code: output=f75ada02aaa33b3b input=654078e6660c2df0]*/
{
PyStructObject *s_object;
PyObject *result;
@@ -2182,7 +2182,7 @@
s_object = cache_struct(format);
if (s_object == NULL)
return NULL;
- result = Struct_unpack(s_object, inputstr);
+ result = Struct_unpack_impl(s_object, buffer);
Py_DECREF(s_object);
return result;
}