Kaydet (Commit) dc782b55 authored tarafından Benjamin Peterson's avatar Benjamin Peterson

backport keyword argument support for bytearray.decode

üst 579a358e
...@@ -186,6 +186,8 @@ class BaseBytesTest(unittest.TestCase): ...@@ -186,6 +186,8 @@ class BaseBytesTest(unittest.TestCase):
b = self.type2test(sample, "latin1") b = self.type2test(sample, "latin1")
self.assertRaises(UnicodeDecodeError, b.decode, "utf8") self.assertRaises(UnicodeDecodeError, b.decode, "utf8")
self.assertEqual(b.decode("utf8", "ignore"), "Hello world\n") self.assertEqual(b.decode("utf8", "ignore"), "Hello world\n")
self.assertEqual(b.decode(errors="ignore", encoding="utf8"),
"Hello world\n")
def test_from_int(self): def test_from_int(self):
b = self.type2test(0) b = self.type2test(0)
......
...@@ -2942,12 +2942,13 @@ as well as any other name registered with codecs.register_error that is\n\ ...@@ -2942,12 +2942,13 @@ as well as any other name registered with codecs.register_error that is\n\
able to handle UnicodeDecodeErrors."); able to handle UnicodeDecodeErrors.");
static PyObject * static PyObject *
bytearray_decode(PyObject *self, PyObject *args) bytearray_decode(PyObject *self, PyObject *args, PyObject *kwargs)
{ {
const char *encoding = NULL; const char *encoding = NULL;
const char *errors = NULL; const char *errors = NULL;
static char *kwlist[] = {"encoding", "errors", 0};
if (!PyArg_ParseTuple(args, "|ss:decode", &encoding, &errors)) if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ss:decode", kwlist, &encoding, &errors))
return NULL; return NULL;
if (encoding == NULL) { if (encoding == NULL) {
#ifdef Py_USING_UNICODE #ifdef Py_USING_UNICODE
...@@ -3189,7 +3190,7 @@ bytearray_methods[] = { ...@@ -3189,7 +3190,7 @@ bytearray_methods[] = {
_Py_capitalize__doc__}, _Py_capitalize__doc__},
{"center", (PyCFunction)stringlib_center, METH_VARARGS, center__doc__}, {"center", (PyCFunction)stringlib_center, METH_VARARGS, center__doc__},
{"count", (PyCFunction)bytearray_count, METH_VARARGS, count__doc__}, {"count", (PyCFunction)bytearray_count, METH_VARARGS, count__doc__},
{"decode", (PyCFunction)bytearray_decode, METH_VARARGS, decode_doc}, {"decode", (PyCFunction)bytearray_decode, METH_VARARGS | METH_KEYWORDS, decode_doc},
{"endswith", (PyCFunction)bytearray_endswith, METH_VARARGS, endswith__doc__}, {"endswith", (PyCFunction)bytearray_endswith, METH_VARARGS, endswith__doc__},
{"expandtabs", (PyCFunction)stringlib_expandtabs, METH_VARARGS, {"expandtabs", (PyCFunction)stringlib_expandtabs, METH_VARARGS,
expandtabs__doc__}, expandtabs__doc__},
......
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