1#!/usr/bin/python 2 3import json 4import sys 5 6 7def process_section(name, section): 8 packages = set() 9 10 if "resolved" in section: 11 packages.add((name, section["resolved"])) 12 13 if "dependencies" in section: 14 for name in section["dependencies"]: 15 packages.add((name, section["dependencies"][name])) 16 17 return packages 18 19 20def main(): 21 with open(sys.argv[1], 'r') as f: 22 tree = json.loads(f.read()) 23 24 packages = set() 25 26 topDependencies = tree["dependencies"] 27 28 for area in topDependencies: 29 for name in topDependencies[area]: 30 packages = packages.union(process_section(name, topDependencies[area][name])) 31 32 for (name, version) in packages: 33 print("%s %s" % (name, version)) 34 35 36if __name__ == "__main__": 37 main()