- Issue 2379: Raise a Py3K warning for __getitem__ or __getslice__ on

exception instances.
This commit is contained in:
Guido van Rossum 2008-03-18 04:42:22 +00:00
parent 0bfc896979
commit 6d91be3758
2 changed files with 15 additions and 0 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 2.6 alpha 2?
Core and builtins 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 - Issue #2371: Add a Py3k warning when catching an exception that
doesn't derive from BaseException. Issue #2341: Add a Py3k warning doesn't derive from BaseException. Issue #2341: Add a Py3k warning
when raising an exception that doesn't derive from BaseException. when raising an exception that doesn't derive from BaseException.

View File

@ -189,6 +189,12 @@ static PyMethodDef BaseException_methods[] = {
static PyObject * static PyObject *
BaseException_getitem(PyBaseExceptionObject *self, Py_ssize_t index) 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); return PySequence_GetItem(self->args, index);
} }
@ -196,6 +202,12 @@ static PyObject *
BaseException_getslice(PyBaseExceptionObject *self, BaseException_getslice(PyBaseExceptionObject *self,
Py_ssize_t start, Py_ssize_t stop) 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); return PySequence_GetSlice(self->args, start, stop);
} }