summaryrefslogtreecommitdiff
path: root/doc/examples/recommends.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/recommends.py')
-rwxr-xr-xdoc/examples/recommends.py41
1 files changed, 41 insertions, 0 deletions
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
+
+
+
+