From b564655353399acb70431b31c63f3df08c5d42ab Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 24 Aug 2009 15:46:29 +0200 Subject: * python/depcache.cc: - Make ActionGroups context managers so apt.Cache.actiongroup() has the same behavior as in 0.7.92 --- python/depcache.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'python/depcache.cc') diff --git a/python/depcache.cc b/python/depcache.cc index 0e83c956..7edb7b59 100644 --- a/python/depcache.cc +++ b/python/depcache.cc @@ -794,9 +794,24 @@ static PyObject *PkgActionGroupRelease(PyObject *Self,PyObject *Args) return HandleErrors(Py_None); } +static PyObject *PkgActionGroupEnter(PyObject *Self,PyObject *Args) { + if (PyArg_ParseTuple(Args,"") == 0) + return 0; + Py_INCREF(Self); + return Self; +} +static PyObject *PkgActionGroupExit(PyObject *Self,PyObject *Args) { + pkgDepCache::ActionGroup *ag = GetCpp(Self); + ag->release(); + Py_RETURN_FALSE; +} + + static PyMethodDef PkgActionGroupMethods[] = { {"release", PkgActionGroupRelease, METH_VARARGS, "release()"}, + {"__enter__", PkgActionGroupEnter, METH_VARARGS, "__enter__() -> self"}, + {"__exit__", PkgActionGroupExit, METH_VARARGS, "__exit__()"}, {} }; -- cgit v1.2.3