From 6d91be37586ba93cb7c5fa6d5da15cf5b9a19892 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 18 Mar 2008 04:42:22 +0000 Subject: - Issue 2379: Raise a Py3K warning for __getitem__ or __getslice__ on exception instances. --- Misc/NEWS | 3 +++ Objects/exceptions.c | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index 5436c25..2975c15 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 b1d5d0b..aa9f516 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); } -- cgit v0.12