mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
Merged revisions 68484-68485 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68484 | antoine.pitrou | 2009-01-10 17:13:45 +0100 (sam., 10 janv. 2009) | 3 lines Issue #3860: GzipFile and BZ2File now support the context manager protocol. ........ r68485 | antoine.pitrou | 2009-01-10 17:15:24 +0100 (sam., 10 janv. 2009) | 1 line Add NEWS entry for r68484. ........
This commit is contained in:
parent
ab868311a5
commit
308705e4fa
5 changed files with 85 additions and 1 deletions
|
|
@ -1086,6 +1086,36 @@ BZ2File_close(BZ2FileObject *self)
|
|||
return ret;
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(BZ2File_enter_doc,
|
||||
"__enter__() -> self.");
|
||||
|
||||
static PyObject *
|
||||
BZ2File_enter(BZ2FileObject *self)
|
||||
{
|
||||
if (self->mode == MODE_CLOSED) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"I/O operation on closed file");
|
||||
return NULL;
|
||||
}
|
||||
Py_INCREF(self);
|
||||
return (PyObject *) self;
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(BZ2File_exit_doc,
|
||||
"__exit__(*excinfo) -> None. Closes the file.");
|
||||
|
||||
static PyObject *
|
||||
BZ2File_exit(BZ2FileObject *self, PyObject *args)
|
||||
{
|
||||
PyObject *ret = PyObject_CallMethod((PyObject *) self, "close", NULL);
|
||||
if (!ret)
|
||||
/* If error occurred, pass through */
|
||||
return NULL;
|
||||
Py_DECREF(ret);
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *BZ2File_getiter(BZ2FileObject *self);
|
||||
|
||||
static PyMethodDef BZ2File_methods[] = {
|
||||
|
|
@ -1097,6 +1127,8 @@ static PyMethodDef BZ2File_methods[] = {
|
|||
{"seek", (PyCFunction)BZ2File_seek, METH_VARARGS, BZ2File_seek__doc__},
|
||||
{"tell", (PyCFunction)BZ2File_tell, METH_NOARGS, BZ2File_tell__doc__},
|
||||
{"close", (PyCFunction)BZ2File_close, METH_NOARGS, BZ2File_close__doc__},
|
||||
{"__enter__", (PyCFunction)BZ2File_enter, METH_NOARGS, BZ2File_enter_doc},
|
||||
{"__exit__", (PyCFunction)BZ2File_exit, METH_VARARGS, BZ2File_exit_doc},
|
||||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue