diff options
| author | Arch Librarian <arch@canonical.com> | 2004-11-24 10:00:31 +0000 |
|---|---|---|
| committer | Arch Librarian <arch@canonical.com> | 2004-11-24 10:00:31 +0000 |
| commit | a39e7311cbc964b175efd1276fe8e428bab5523d (patch) | |
| tree | 2310d752b493058726ccfa1c8e8e351ac7f810f8 | |
| parent | e71618ff4a8bc01093bb83406a9b26640d2e1e4d (diff) | |
| download | python-apt-a39e7311cbc964b175efd1276fe8e428bab5523d.tar.gz | |
Add new examples
Author: mdz
Date: 2002-08-27 23:20:42 GMT
Add new examples
| -rwxr-xr-x | doc/examples/checkstate.py | 31 | ||||
| -rwxr-xr-x | doc/examples/recommends.py | 41 | ||||
| -rw-r--r-- | doc/makefile | 3 |
3 files changed, 74 insertions, 1 deletions
diff --git a/doc/examples/checkstate.py b/doc/examples/checkstate.py new file mode 100755 index 00000000..a0bdb6e7 --- /dev/null +++ b/doc/examples/checkstate.py @@ -0,0 +1,31 @@ +#!/usr/bin/python + +import apt_pkg +apt_pkg.init() + +cache = apt_pkg.GetCache() +packages = cache.Packages + +uninstalled, updated, upgradable = {}, {}, {} + +for package in packages: + versions = package.VersionList + if not versions: + continue + version = versions[0] + for other_version in versions: + if apt_pkg.VersionCompare(version.VerStr, other_version.VerStr)<0: + version = other_version + if package.CurrentVer: + current = package.CurrentVer + if apt_pkg.VersionCompare(current.VerStr, version.VerStr)<0: + upgradable[package.Name] = version + break + else: + updated[package.Name] = current + else: + uninstalled[package.Name] = version + + +for l in (uninstalled, updated, upgradable): + print l.items()[0] diff --git a/doc/examples/recommends.py b/doc/examples/recommends.py new file mode 100755 index 00000000..b1094aee --- /dev/null +++ b/doc/examples/recommends.py @@ -0,0 +1,41 @@ +#!/usr/bin/python + +import apt_pkg +apt_pkg.init() + +cache = apt_pkg.GetCache() + +class Wanted: + + def __init__(self, name): + self.name = name + self.recommended = [] + self.suggested = [] + +wanted = {} + +for package in cache.Packages: + current = package.CurrentVer + if not current: + continue + depends = current.DependsList + for (key, attr) in (('Suggests', 'suggested'), + ('Recommends', 'recommended')): + list = depends.get(key, []) + for dependency in list: + name = dependency[0].TargetPkg.Name + dep = cache[name] + if dep.CurrentVer: + continue + getattr(wanted.setdefault(name, Wanted(name)), + attr).append(package.Name) + +ks = wanted.keys() +ks.sort() + +for want in ks: + print want, wanted[want].recommended, wanted[want].suggested + + + + diff --git a/doc/makefile b/doc/makefile index 5f8fc182..7f9dff2b 100644 --- a/doc/makefile +++ b/doc/makefile @@ -7,6 +7,7 @@ include ../buildlib/defaults.mak # Examples SOURCE = examples/config.py examples/configisc.py examples/tagfile.py \ - examples/versiontest.py + examples/versiontest.py examples/checkstate.py \ + examples/recommends.py TO = $(DOC) include $(COPY_H) |
