diff options
| author | Michael Vogt <egon@bottom> | 2008-02-19 19:26:32 +0100 |
|---|---|---|
| committer | Michael Vogt <egon@bottom> | 2008-02-19 19:26:32 +0100 |
| commit | 5c84be897a08247a5146cccbac7134cadfb43310 (patch) | |
| tree | ccffceb503eaa2d926cc75171dd3723a4a1de462 /apt/cache.py | |
| parent | 4d46ff50f061c4742713e906430d73fdc927b250 (diff) | |
| parent | 1bf52388c98e72768b8f883726ee7e2e2992e4ff (diff) | |
| download | python-apt-5c84be897a08247a5146cccbac7134cadfb43310.tar.gz | |
* use the new CacheFile::ListUpdate() code
* add example in doc/examples/update.py
* python/pkgrecords.cc:
- export the Homepage field
* python/tar.cc:
- fix .lzma extraction (thanks to bigjools)
* python/sourcelist.cc:
- support GetIndexes() GetAll argument to implement
something like --print-uris
* python/apt_pkgmodule.cc:
- add InstState{Ok,ReInstReq,Hold,HoldReInstReq} constants
* apt/cache.py:
- add reqReinstallPkgs property that lists all packages in
ReInstReq or HoldReInstReq
Diffstat (limited to 'apt/cache.py')
| -rw-r--r-- | apt/cache.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/apt/cache.py b/apt/cache.py index 65f3c9d9..a92bd5be 100644 --- a/apt/cache.py +++ b/apt/cache.py @@ -122,6 +122,17 @@ class Cache(object): self._depcache.Upgrade(distUpgrade) self.cachePostChange() + @property + def reqReinstallPkgs(self): + " return the packages not downloadable packages in reqreinst state " + reqreinst = set() + for pkg in self: + if (not pkg.candidateDownloadable and + (pkg._pkg.InstState == apt_pkg.InstStateReInstReq or + pkg._pkg.InstState == apt_pkg.InstStateHoldReInstReq)): + reqreinst.add(pkg.name) + return reqreinst + def _runFetcher(self, fetcher): # do the actual fetching res = fetcher.Run() @@ -166,6 +177,7 @@ class Cache(object): os.close(lock) def update(self, fetchProgress=None): + " run the equivalent of apt-get update " lockfile = apt_pkg.Config.FindDir("Dir::State::Lists") + "lock" lock = apt_pkg.GetLock(lockfile) if lock < 0: @@ -174,14 +186,7 @@ class Cache(object): try: if fetchProgress == None: fetchProgress = apt.progress.FetchProgress() - fetcher = apt_pkg.GetAcquire(fetchProgress) - # this can throw a exception - self._list.GetIndexes(fetcher) - # now run the fetcher, throw exception if something fails to be - # fetched - if self._runFetcher(fetcher) == fetcher.ResultContinue: - return True - return False + return self._cache.Update(fetchProgress, self._list) finally: os.close(lock) |
