diff -r 6db9ffce83ef Lib/test/test_xml_etree.py --- a/Lib/test/test_xml_etree.py Wed Jan 02 12:31:26 2013 +0200 +++ b/Lib/test/test_xml_etree.py Thu Jan 03 12:57:04 2013 +0100 @@ -487,6 +487,8 @@ >>> elem.get("key") # 1.1 >>> elem.get("key", "default") # 1.2 'default' + >>> elem.get("key", default="default") + 'default' >>> elem.set("key", "value") >>> elem.get("key") # 1.3 'value' diff -r 6db9ffce83ef Misc/ACKS --- a/Misc/ACKS Wed Jan 02 12:31:26 2013 +0200 +++ b/Misc/ACKS Thu Jan 03 12:57:04 2013 +0100 @@ -794,6 +794,7 @@ Alexis Métaireau Steven Miale Trent Mick +Franck Michea Tom Middleton Stan Mihai Stefan Mihaila diff -r 6db9ffce83ef Modules/_elementtree.c --- a/Modules/_elementtree.c Wed Jan 02 12:31:26 2013 +0200 +++ b/Modules/_elementtree.c Thu Jan 03 12:57:04 2013 +0100 @@ -1031,13 +1031,17 @@ } static PyObject* -element_get(ElementObject* self, PyObject* args) +element_get(ElementObject* self, PyObject* args, PyObject* kwds) { PyObject* value; + static char* kwlist[] = {"key", "default", 0}; PyObject* key; PyObject* default_value = Py_None; - if (!PyArg_ParseTuple(args, "O|O:get", &key, &default_value)) + + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:get", kwlist, &key, + &default_value)) return NULL; if (!self->extra || self->extra->attrib == Py_None) @@ -1085,10 +1089,12 @@ static PyObject * -element_iter(ElementObject *self, PyObject *args) +element_iter(ElementObject *self, PyObject *args, PyObject *kwds) { PyObject* tag = Py_None; - if (!PyArg_ParseTuple(args, "|O:iter", &tag)) + static char* kwlist[] = {"tag", 0}; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:iter", kwlist, &tag)) return NULL; return create_elementiter(self, tag, 0); @@ -1555,7 +1561,7 @@ {"clear", (PyCFunction) element_clearmethod, METH_VARARGS}, - {"get", (PyCFunction) element_get, METH_VARARGS}, + {"get", (PyCFunction) element_get, METH_VARARGS | METH_KEYWORDS}, {"set", (PyCFunction) element_set, METH_VARARGS}, {"find", (PyCFunction) element_find, METH_VARARGS | METH_KEYWORDS}, @@ -1567,11 +1573,11 @@ {"insert", (PyCFunction) element_insert, METH_VARARGS}, {"remove", (PyCFunction) element_remove, METH_VARARGS}, - {"iter", (PyCFunction) element_iter, METH_VARARGS}, + {"iter", (PyCFunction) element_iter, METH_VARARGS | METH_KEYWORDS}, {"itertext", (PyCFunction) element_itertext, METH_VARARGS}, {"iterfind", (PyCFunction) element_iterfind, METH_VARARGS | METH_KEYWORDS}, - {"getiterator", (PyCFunction) element_iter, METH_VARARGS}, + {"getiterator", (PyCFunction) element_iter, METH_VARARGS | METH_KEYWORDS}, {"getchildren", (PyCFunction) element_getchildren, METH_VARARGS}, {"items", (PyCFunction) element_items, METH_VARARGS},