#2353: raise Py3k warning in file.xreadlines().

This commit is contained in:
Georg Brandl 2008-05-17 22:11:54 +00:00
parent c76ffca2be
commit a9916b55de
3 changed files with 21 additions and 3 deletions

View file

@ -123,6 +123,13 @@ class TestPy3KWarnings(unittest.TestCase):
with catch_warning() as w:
self.assertWarning(buffer('a'), w, expected)
def test_file_xreadlines(self):
expected = ("f.xreadlines() not supported in 3.x, "
"try 'for line in f' instead")
with file(__file__) as f:
with catch_warning() as w:
self.assertWarning(f.xreadlines(), w, expected)
class TestStdlibRemovals(unittest.TestCase):

View file

@ -12,6 +12,8 @@ What's New in Python 2.6 beta 1?
Core and Builtins
-----------------
- Issue #2353: file.xreadlines() now emits a Py3k warning.
- Issue #2863: generators now have a ``gen.__name__`` attribute that
equals ``gen.gi_code.co_name``, like ``func.__name___`` that equals
``func.func_code.co_name``. The repr() of a generator now also

View file

@ -1735,6 +1735,15 @@ file_self(PyFileObject *f)
return (PyObject *)f;
}
static PyObject *
file_xreadlines(PyFileObject *f)
{
if (PyErr_WarnPy3k("f.xreadlines() not supported in 3.x, "
"try 'for line in f' instead", 1) < 0)
return NULL;
return file_self(f);
}
static PyObject *
file_exit(PyObject *f, PyObject *args)
{
@ -1850,8 +1859,8 @@ static PyMethodDef file_methods[] = {
#endif
{"tell", (PyCFunction)file_tell, METH_NOARGS, tell_doc},
{"readinto", (PyCFunction)file_readinto, METH_VARARGS, readinto_doc},
{"readlines", (PyCFunction)file_readlines,METH_VARARGS, readlines_doc},
{"xreadlines",(PyCFunction)file_self, METH_NOARGS, xreadlines_doc},
{"readlines", (PyCFunction)file_readlines, METH_VARARGS, readlines_doc},
{"xreadlines",(PyCFunction)file_xreadlines, METH_NOARGS, xreadlines_doc},
{"writelines",(PyCFunction)file_writelines, METH_O, writelines_doc},
{"flush", (PyCFunction)file_flush, METH_NOARGS, flush_doc},
{"close", (PyCFunction)file_close, METH_NOARGS, close_doc},