summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-02-19 02:44:01 +0000
committerRaymond Hettinger <python@rcn.com>2009-02-19 02:44:01 +0000
commitf4bb7f21000d28ef7aed350d2ce9113a4ae0817d (patch)
treeefceb1c8013b5315e63ce6f22fd7bb641f388bc1
parent15a4950da1a80b334ee4985c62e66a1e1071a951 (diff)
downloadcpython-git-f4bb7f21000d28ef7aed350d2ce9113a4ae0817d.tar.gz
Add keyword arg support to itertools.repeat().
-rw-r--r--Lib/test/test_itertools.py1
-rw-r--r--Modules/itertoolsmodule.c13
2 files changed, 7 insertions, 7 deletions
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
index 94159b5d0e..84924843a3 100644
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -640,6 +640,7 @@ class TestBasicOps(unittest.TestCase):
self.assertNotEqual(len(set(map(id, list(product('abc', 'def'))))), 1)
def test_repeat(self):
+ self.assertEqual(list(repeat(object='a', times=3)), ['a', 'a', 'a'])
self.assertEqual(lzip(range(3),repeat('a')),
[(0, 'a'), (1, 'a'), (2, 'a')])
self.assertEqual(list(repeat('a', 3)), ['a', 'a', 'a'])
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index e2ca9c74b7..48dffe5e6a 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -3106,11 +3106,10 @@ repeat_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
repeatobject *ro;
PyObject *element;
Py_ssize_t cnt = -1;
-
- if (type == &repeat_type && !_PyArg_NoKeywords("repeat()", kwds))
- return NULL;
-
- if (!PyArg_ParseTuple(args, "O|n:repeat", &element, &cnt))
+ static char *kwargs[] = {"object", "times", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:repeat", kwargs,
+ &element, &cnt))
return NULL;
if (PyTuple_Size(args) == 2 && cnt < 0)
@@ -3178,8 +3177,8 @@ static PyMethodDef repeat_methods[] = {
};
PyDoc_STRVAR(repeat_doc,
-"repeat(element [,times]) -> create an iterator which returns the element\n\
-for the specified number of times. If not specified, returns the element\n\
+"repeat(object [,times]) -> create an iterator which returns the object\n\
+for the specified number of times. If not specified, returns the object\n\
endlessly.");
static PyTypeObject repeat_type = {