[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