From: Benjamin Peterson Date: Fri, 18 Sep 2009 21:46:21 +0000 (+0000) Subject: backport keyword argument support for bytearray.decode X-Git-Tag: v2.7a1~497 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dc782b55f2c7ede13c8c2bbc76662e8a9784d20c;p=python backport keyword argument support for bytearray.decode --- diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 615c955750..6257455c8a 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -186,6 +186,8 @@ class BaseBytesTest(unittest.TestCase): b = self.type2test(sample, "latin1") self.assertRaises(UnicodeDecodeError, b.decode, "utf8") 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): b = self.type2test(0) diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index b183cc1b62..0390c1d994 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -2942,12 +2942,13 @@ as well as any other name registered with codecs.register_error that is\n\ able to handle UnicodeDecodeErrors."); static PyObject * -bytearray_decode(PyObject *self, PyObject *args) +bytearray_decode(PyObject *self, PyObject *args, PyObject *kwargs) { const char *encoding = 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; if (encoding == NULL) { #ifdef Py_USING_UNICODE @@ -3189,7 +3190,7 @@ bytearray_methods[] = { _Py_capitalize__doc__}, {"center", (PyCFunction)stringlib_center, METH_VARARGS, center__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__}, {"expandtabs", (PyCFunction)stringlib_expandtabs, METH_VARARGS, expandtabs__doc__},