From: Guido van Rossum Date: Tue, 18 Mar 2008 04:42:22 +0000 (+0000) Subject: - Issue 2379: Raise a Py3K warning for __getitem__ or __getslice__ on X-Git-Tag: v2.6a2~285 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d91be37586ba93cb7c5fa6d5da15cf5b9a19892;p=thirdparty%2FPython%2Fcpython.git - Issue 2379: Raise a Py3K warning for __getitem__ or __getslice__ on exception instances. --- diff --git a/Misc/NEWS b/Misc/NEWS index 5436c252130d..2975c1530b1a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 2.6 alpha 2? Core and builtins ----------------- +- Issue 2379: Raise a Py3K warning for __getitem__ or __getslice__ on + exception instances. + - Issue #2371: Add a Py3k warning when catching an exception that doesn't derive from BaseException. Issue #2341: Add a Py3k warning when raising an exception that doesn't derive from BaseException. diff --git a/Objects/exceptions.c b/Objects/exceptions.c index b1d5d0b6d509..aa9f51692161 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -189,6 +189,12 @@ static PyMethodDef BaseException_methods[] = { static PyObject * BaseException_getitem(PyBaseExceptionObject *self, Py_ssize_t index) { + if (Py_Py3kWarningFlag) { + if (PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, __getitem__ is not supported for exception " + "classes, use args attribute") == -1) + return NULL; + } return PySequence_GetItem(self->args, index); } @@ -196,6 +202,12 @@ static PyObject * BaseException_getslice(PyBaseExceptionObject *self, Py_ssize_t start, Py_ssize_t stop) { + if (Py_Py3kWarningFlag) { + if (PyErr_Warn(PyExc_DeprecationWarning, + "In 3.x, __getslice__ is not supported for exception " + "classes, use args attribute") == -1) + return NULL; + } return PySequence_GetSlice(self->args, start, stop); }