summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-11-24 10:00:31 +0000
committerArch Librarian <arch@canonical.com>2004-11-24 10:00:31 +0000
commita39e7311cbc964b175efd1276fe8e428bab5523d (patch)
tree2310d752b493058726ccfa1c8e8e351ac7f810f8
parente71618ff4a8bc01093bb83406a9b26640d2e1e4d (diff)
downloadpython-apt-a39e7311cbc964b175efd1276fe8e428bab5523d.tar.gz
Add new examples
Author: mdz Date: 2002-08-27 23:20:42 GMT Add new examples
-rwxr-xr-xdoc/examples/checkstate.py31
-rwxr-xr-xdoc/examples/recommends.py41
-rw-r--r--doc/makefile3
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)