diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-08-24 15:46:29 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-08-24 15:46:29 +0200 |
| commit | b564655353399acb70431b31c63f3df08c5d42ab (patch) | |
| tree | bc15346cc36d51e2c805617e31671da77ca80de2 /python | |
| parent | 0fcb7e9ad1ec729a08d93b133dda7d5df37a3fd8 (diff) | |
| download | python-apt-b564655353399acb70431b31c63f3df08c5d42ab.tar.gz | |
* python/depcache.cc:
- Make ActionGroups context managers so apt.Cache.actiongroup() has
the same behavior as in 0.7.92
Diffstat (limited to 'python')
| -rw-r--r-- | python/depcache.cc | 15 |
1 files changed, 15 insertions, 0 deletions
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<pkgDepCache::ActionGroup*>(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__()"}, {} }; |
