Commit 92c28cac authored by Petri Lehtinen's avatar Petri Lehtinen

#14897: Enhance error messages of struct.pack and struct.pack_into

Patch by Matti Mäki.
parent 1b863ebf
......@@ -710,6 +710,7 @@ Brian Merrell
Luke Mewburn
Carl Meyer
Mike Meyer
Piotr Meyer
Steven Miale
Trent Mick
Tom Middleton
......@@ -742,7 +743,7 @@ Sape Mullender
Michael Muller
Neil Muller
R. David Murray
Piotr Meyer
Matti Mäki
Dale Nagata
John Nagle
Takahiro Nakayama
......
......@@ -135,6 +135,9 @@ Core and Builtins
Library
-------
- Issue #14897: Enhance error messages of struct.pack and
struct.pack_into. Patch by Matti Mäki.
- Issue #12890: cgitb no longer prints spurious <p> tags in text
mode when the logdir option is specified.
......
......@@ -1575,7 +1575,7 @@ s_pack(PyObject *self, PyObject *args)
if (PyTuple_GET_SIZE(args) != soself->s_len)
{
PyErr_Format(StructError,
"pack requires exactly %zd arguments", soself->s_len);
"pack expected %zd items for packing (got %zd)", soself->s_len, PyTuple_GET_SIZE(args));
return NULL;
}
......@@ -1614,9 +1614,19 @@ s_pack_into(PyObject *self, PyObject *args)
assert(soself->s_codes != NULL);
if (PyTuple_GET_SIZE(args) != (soself->s_len + 2))
{
PyErr_Format(StructError,
"pack_into requires exactly %zd arguments",
(soself->s_len + 2));
if (PyTuple_GET_SIZE(args) == 0) {
PyErr_Format(StructError,
"pack_into expected buffer argument");
}
else if (PyTuple_GET_SIZE(args) == 1) {
PyErr_Format(StructError,
"pack_into expected offset argument");
}
else {
PyErr_Format(StructError,
"pack_into expected %zd items for packing (got %zd)",
soself->s_len, (PyTuple_GET_SIZE(args) - 2));
}
return NULL;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment