diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-08-24 18:10:20 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-08-24 18:10:20 (GMT) |
commit | 712ee923092ef1b47c72914c5e2950be2f05f527 (patch) | |
tree | 9d6052ea7c1f7dc65c45568f847f762de71f8871 /Objects | |
parent | a403e4141afb5dfff41d5844e32d94bc7d341c17 (diff) | |
download | cpython-712ee923092ef1b47c72914c5e2950be2f05f527.zip cpython-712ee923092ef1b47c72914c5e2950be2f05f527.tar.gz cpython-712ee923092ef1b47c72914c5e2950be2f05f527.tar.bz2 |
generate py3k warnings on __getslice__, __delslice__, and __setslice__
Reviewer: Brett Cannon
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/classobject.c | 27 | ||||
-rw-r--r-- | Objects/typeobject.c | 28 |
2 files changed, 47 insertions, 8 deletions
diff --git a/Objects/classobject.c b/Objects/classobject.c index caf6b3e..7d3d048 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -1174,8 +1174,15 @@ instance_slice(PyInstanceObject *inst, Py_ssize_t i, Py_ssize_t j) if (func == NULL) return NULL; arg = Py_BuildValue("(N)", _PySlice_FromIndices(i, j)); - } else + } + else { + if (PyErr_WarnPy3k("in 3.x, __getslice__ has been removed; " + "use __getitem__", 1) < 0) { + Py_DECREF(func); + return NULL; + } arg = Py_BuildValue("(nn)", i, j); + } if (arg == NULL) { Py_DECREF(func); @@ -1257,8 +1264,15 @@ instance_ass_slice(PyInstanceObject *inst, Py_ssize_t i, Py_ssize_t j, PyObject arg = Py_BuildValue("(N)", _PySlice_FromIndices(i, j)); - } else + } + else { + if (PyErr_WarnPy3k("in 3.x, __delslice__ has been " + "removed; use __delitem__", 1) < 0) { + Py_DECREF(func); + return -1; + } arg = Py_BuildValue("(nn)", i, j); + } } else { if (setslicestr == NULL) { @@ -1284,8 +1298,15 @@ instance_ass_slice(PyInstanceObject *inst, Py_ssize_t i, Py_ssize_t j, PyObject arg = Py_BuildValue("(NO)", _PySlice_FromIndices(i, j), value); - } else + } + else { + if (PyErr_WarnPy3k("in 3.x, __setslice__ has been " + "removed; use __setitem__", 1) < 0) { + Py_DECREF(func); + return -1; + } arg = Py_BuildValue("(nnO)", i, j, value); + } } if (arg == NULL) { Py_DECREF(func); diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 42974f8..02b5012 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4897,7 +4897,17 @@ slot_sq_item(PyObject *self, Py_ssize_t i) return NULL; } -SLOT2(slot_sq_slice, "__getslice__", Py_ssize_t, Py_ssize_t, "nn") +static PyObject* +slot_sq_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j) +{ + static PyObject *getslice_str; + + if (PyErr_WarnPy3k("in 3.x, __getslice__ has been removed; " + "use __getitem__", 1) < 0) + return NULL; + return call_method(self, "__getslice__", &getslice_str, + "nn", i, j); +} static int slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value) @@ -4922,13 +4932,21 @@ slot_sq_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value) { PyObject *res; static PyObject *delslice_str, *setslice_str; - - if (value == NULL) + + if (value == NULL) { + if (PyErr_WarnPy3k("in 3.x, __delslice__ has been removed; " + "use __delitem__", 1) < 0) + return -1; res = call_method(self, "__delslice__", &delslice_str, "(nn)", i, j); - else + } + else { + if (PyErr_WarnPy3k("in 3.x, __setslice__ has been removed; " + "use __setitem__", 1) < 0) + return -1; res = call_method(self, "__setslice__", &setslice_str, - "(nnO)", i, j, value); + "(nnO)", i, j, value); + } if (res == NULL) return -1; Py_DECREF(res); |