| #!/usr/bin/python3 | |
| import apt_pkg | |
| apt_pkg.init() | |
| cache = apt_pkg.Cache() | |
| class Wanted: | |
| def __init__(self, name): | |
| self.name = name | |
| self.recommended = [] | |
| self.suggested = [] | |
| wanted = {} | |
| for package in cache.packages: | |
| current = package.current_ver | |
| if not current: | |
| continue | |
| depends = current.depends_list | |
| for (key, attr) in (('Suggests', 'suggested'), | |
| ('Recommends', 'recommended')): | |
| list = depends.get(key, []) | |
| for dependency in list: | |
| name = dependency[0].target_pkg.name | |
| dep = cache[name] | |
| if dep.current_ver: | |
| continue | |
| getattr(wanted.setdefault(name, Wanted(name)), | |
| attr).append(package.name) | |
| ks = list(wanted.keys()) | |
| ks.sort() | |
| for want in ks: | |
| print(want, wanted[want].recommended, wanted[want].suggested) | |