[Python-checkins] r69748 - in python/trunk: Lib/test/test_itertools.py Modules/itertoolsmodule.c
raymond.hettinger
python-checkins at python.org
Thu Feb 19 03:15:15 CET 2009
Author: raymond.hettinger
Date: Thu Feb 19 03:15:14 2009
New Revision: 69748
Log:
Add keyword arg support to itertools.compress().
Modified:
python/trunk/Lib/test/test_itertools.py
python/trunk/Modules/itertoolsmodule.c
Modified: python/trunk/Lib/test/test_itertools.py
==============================================================================
--- python/trunk/Lib/test/test_itertools.py (original)
+++ python/trunk/Lib/test/test_itertools.py Thu Feb 19 03:15:14 2009
@@ -306,6 +306,7 @@
self.assertEqual(comb, sorted(set(cwr) & set(perm))) # comb: both a cwr and a perm
def test_compress(self):
+ self.assertEqual(list(compress(data='ABCDEF', selectors=[1,0,1,0,1,1])), list('ACEF'))
self.assertEqual(list(compress('ABCDEF', [1,0,1,0,1,1])), list('ACEF'))
self.assertEqual(list(compress('ABCDEF', [0,0,0,0,0,0])), list(''))
self.assertEqual(list(compress('ABCDEF', [1,1,1,1,1,1])), list('ABCDEF'))
Modified: python/trunk/Modules/itertoolsmodule.c
==============================================================================
--- python/trunk/Modules/itertoolsmodule.c (original)
+++ python/trunk/Modules/itertoolsmodule.c Thu Feb 19 03:15:14 2009
@@ -2782,11 +2782,9 @@
PyObject *seq1, *seq2;
PyObject *data=NULL, *selectors=NULL;
compressobject *lz;
-
- if (type == &compress_type && !_PyArg_NoKeywords("compress()", kwds))
- return NULL;
-
- if (!PyArg_UnpackTuple(args, "compress", 2, 2, &seq1, &seq2))
+ static char *kwargs[] = {"data", "selectors", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO:compress", kwargs, &seq1, &seq2))
return NULL;
data = PyObject_GetIter(seq1);
@@ -2864,7 +2862,7 @@
}
PyDoc_STRVAR(compress_doc,
-"compress(data sequence, selector sequence) --> iterator over selected data\n\
+"compress(data, selectors) --> iterator over selected data\n\
\n\
Return data elements corresponding to true selector elements.\n\
Forms a shorter iterator from selected data elements using the\n\
More information about the Python-checkins
mailing list