home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / python-apt / examples / all_deps.py < prev    next >
Encoding:
Python Source  |  2006-07-27  |  953 b   |  35 lines

  1. #!/usr/bin/env python
  2.  
  3. import sys
  4. import apt
  5.  
  6.  
  7. def dependencies(cache, pkg, deps, key="Depends"):
  8.     #print "pkg: %s (%s)" % (pkg.name, deps)
  9.     candver = cache._depcache.GetCandidateVer(pkg._pkg)
  10.     if candver == None:
  11.         return deps
  12.     dependslist = candver.DependsList
  13.     if dependslist.has_key(key):
  14.         for depVerList in dependslist[key]:
  15.             for dep in depVerList:
  16.                 if cache.has_key(dep.TargetPkg.Name):
  17.                     if pkg.name != dep.TargetPkg.Name and not dep.TargetPkg.Name in deps:
  18.                         deps.add(dep.TargetPkg.Name)
  19.                         dependencies(cache, cache[dep.TargetPkg.Name], deps, key)
  20.     return deps
  21.  
  22.  
  23. pkgname = sys.argv[1]
  24. c = apt.Cache()
  25. pkg = c[pkgname]
  26.  
  27. deps = set()
  28.  
  29. deps = dependencies(c,pkg, deps, "Depends")
  30. print " ".join(deps)
  31.  
  32. preDeps = set()
  33. preDeps = dependencies(c,pkg, preDeps, "PreDepends")
  34. print " ".join(preDeps)
  35.