diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2012-09-05 18:11:49 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2012-09-05 18:11:49 (GMT) |
commit | 1d857453b7065dafdc34a72c1bbb2a993782b383 (patch) | |
tree | e1ba8cd8fd1fb6d2b811e96632e8efefa97a2d51 /Modules/_io/stringio.c | |
parent | 397e5c98bc27416fe8a407e39e4c5aa4baf94423 (diff) | |
download | cpython-1d857453b7065dafdc34a72c1bbb2a993782b383.zip cpython-1d857453b7065dafdc34a72c1bbb2a993782b383.tar.gz cpython-1d857453b7065dafdc34a72c1bbb2a993782b383.tar.bz2 |
Issue #15841: The readable(), writable() and seekable() methods of BytesIO
and StringIO objects now raise ValueError when the object has been closed.
Patch by Alessandro Moura.
Diffstat (limited to 'Modules/_io/stringio.c')
-rw-r--r-- | Modules/_io/stringio.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c index c9d14b1..1f1fa40 100644 --- a/Modules/_io/stringio.c +++ b/Modules/_io/stringio.c @@ -650,10 +650,21 @@ stringio_init(stringio *self, PyObject *args, PyObject *kwds) } /* Properties and pseudo-properties */ + +PyDoc_STRVAR(stringio_readable_doc, +"readable() -> bool. Returns True if the IO object can be read."); + +PyDoc_STRVAR(stringio_writable_doc, +"writable() -> bool. Returns True if the IO object can be written."); + +PyDoc_STRVAR(stringio_seekable_doc, +"seekable() -> bool. Returns True if the IO object can be seeked."); + static PyObject * stringio_seekable(stringio *self, PyObject *args) { CHECK_INITIALIZED(self); + CHECK_CLOSED(self); Py_RETURN_TRUE; } @@ -661,6 +672,7 @@ static PyObject * stringio_readable(stringio *self, PyObject *args) { CHECK_INITIALIZED(self); + CHECK_CLOSED(self); Py_RETURN_TRUE; } @@ -668,6 +680,7 @@ static PyObject * stringio_writable(stringio *self, PyObject *args) { CHECK_INITIALIZED(self); + CHECK_CLOSED(self); Py_RETURN_TRUE; } @@ -835,9 +848,9 @@ static struct PyMethodDef stringio_methods[] = { {"seek", (PyCFunction)stringio_seek, METH_VARARGS, stringio_seek_doc}, {"write", (PyCFunction)stringio_write, METH_O, stringio_write_doc}, - {"seekable", (PyCFunction)stringio_seekable, METH_NOARGS}, - {"readable", (PyCFunction)stringio_readable, METH_NOARGS}, - {"writable", (PyCFunction)stringio_writable, METH_NOARGS}, + {"seekable", (PyCFunction)stringio_seekable, METH_NOARGS, stringio_seekable_doc}, + {"readable", (PyCFunction)stringio_readable, METH_NOARGS, stringio_readable_doc}, + {"writable", (PyCFunction)stringio_writable, METH_NOARGS, stringio_writable_doc}, {"__getstate__", (PyCFunction)stringio_getstate, METH_NOARGS}, {"__setstate__", (PyCFunction)stringio_setstate, METH_O}, |