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

  1. #!/usr/bin/env python
  2. import sys
  3.  
  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 is None:
  11.         return deps
  12.     dependslist = candver.DependsList
  13.     if key in dependslist:
  14.         for depVerList in dependslist[key]:
  15.             for dep in depVerList:
  16.                 if dep.TargetPkg.Name in cache:
  17.                     if pkg.name != dep.TargetPkg.Name and \
  18.                         not dep.TargetPkg.Name in deps:
  19.                         deps.add(dep.TargetPkg.Name)
  20.                         dependencies(
  21.                             cache, cache[dep.TargetPkg.Name], deps, key)
  22.     return deps
  23.  
  24.  
  25. pkgname = sys.argv[1]
  26. c = apt.Cache()
  27. pkg = c[pkgname]
  28.  
  29. deps = set()
  30.  
  31. deps = dependencies(c, pkg, deps, "Depends")
  32. print " ".join(deps)
  33.  
  34. preDeps = set()
  35. preDeps = dependencies(c, pkg, preDeps, "PreDepends")
  36. print " ".join(preDeps)
  37.