#!/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)