From 10f40a6b5a2bdfbad9d013b42952b5abafa200e3 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Thu, 13 Mar 2008 16:43:17 +0000 Subject: [PATCH] Add 2-to-3 support for the itertools moved to builtins or renamed. --- Modules/itertoolsmodule.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c index 259b45a21fe..8dd3a65f43d 100644 --- a/Modules/itertoolsmodule.c +++ b/Modules/itertoolsmodule.c @@ -1445,6 +1445,11 @@ imap_new(PyTypeObject *type, PyObject *args, PyObject *kwds) imapobject *lz; Py_ssize_t numargs, i; + if (Py_Py3kWarningFlag && + PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, itertools.imap() was moved to builtin map()") < 0) + return NULL; + if (type == &imap_type && !_PyArg_NoKeywords("imap()", kwds)) return NULL; @@ -2536,6 +2541,11 @@ ifilter_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PyObject *it; ifilterobject *lz; + if (Py_Py3kWarningFlag && + PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, itertools.ifilter() was moved to builtin filter().") < 0) + return NULL; + if (type == &ifilter_type && !_PyArg_NoKeywords("ifilter()", kwds)) return NULL; @@ -2679,6 +2689,11 @@ ifilterfalse_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PyObject *it; ifilterfalseobject *lz; + if (Py_Py3kWarningFlag && + PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, ifilterfalse() was renamed to filterfalse().") < 0) + return NULL; + if (type == &ifilterfalse_type && !_PyArg_NoKeywords("ifilterfalse()", kwds)) return NULL; @@ -2985,6 +3000,11 @@ izip_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PyObject *result; Py_ssize_t tuplesize = PySequence_Length(args); + if (Py_Py3kWarningFlag && + PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, itertools.izip() was moved to builtin zip()") < 0) + return NULL; + if (type == &izip_type && !_PyArg_NoKeywords("izip()", kwds)) return NULL; @@ -3321,6 +3341,11 @@ izip_longest_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PyObject *fillvalue = Py_None; Py_ssize_t tuplesize = PySequence_Length(args); + if (Py_Py3kWarningFlag && + PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, izip_longest() is renamed to zip_longest().") < 0) + return NULL; + if (kwds != NULL && PyDict_CheckExact(kwds) && PyDict_Size(kwds) > 0) { fillvalue = PyDict_GetItemString(kwds, "fillvalue"); if (fillvalue == NULL || PyDict_Size(kwds) > 1) {