home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / python-apt / examples / recommends.py < prev    next >
Encoding:
Python Source  |  2009-03-30  |  884 b   |  40 lines

  1. #!/usr/bin/python
  2.  
  3. import apt_pkg
  4. apt_pkg.init()
  5.  
  6. cache = apt_pkg.GetCache()
  7.  
  8.  
  9. class Wanted:
  10.  
  11.     def __init__(self, name):
  12.         self.name = name
  13.         self.recommended = []
  14.         self.suggested = []
  15.  
  16.  
  17. wanted = {}
  18.  
  19. for package in cache.Packages:
  20.     current = package.CurrentVer
  21.     if not current:
  22.         continue
  23.     depends = current.DependsList
  24.     for (key, attr) in (('Suggests', 'suggested'),
  25.                         ('Recommends', 'recommended')):
  26.         list = depends.get(key, [])
  27.         for dependency in list:
  28.             name = dependency[0].TargetPkg.Name
  29.             dep = cache[name]
  30.             if dep.CurrentVer:
  31.                 continue
  32.             getattr(wanted.setdefault(name, Wanted(name)),
  33.                     attr).append(package.Name)
  34.  
  35. ks = wanted.keys()
  36. ks.sort()
  37.  
  38. for want in ks:
  39.     print want, wanted[want].recommended, wanted[want].suggested
  40.